Skip navigation
Please use this identifier to cite or link to this item: http://arks.princeton.edu/ark:/88435/dsp01vq27zr711
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorKaplan, Alan-
dc.contributor.authorSudarsky, Nicholas Alexander-
dc.date.accessioned2023-07-27T16:46:02Z-
dc.date.available2023-07-27T16:46:02Z-
dc.date.created2023-04-29-
dc.date.issued2023-07-27-
dc.identifier.urihttp://arks.princeton.edu/ark:/88435/dsp01vq27zr711-
dc.description.abstractRecent years have seen continued interest in the development of polylingual software, using two or more programming languages [41]. Such software has a wide variety of applications, including interfacing with legacy codebases, taking advantage of well understood and documented packages, and utilising interfaces provided by certain platforms. One such case is Princeton University’s COS 126 Java-based CS1 course, which uses the Raspberry Pi platform as part of a precept for advanced students. However, the majority of modules that exist and are officially supported for the Raspberry Pi do not provide Java interfaces: rather, Python interfaces are near-ubiquitous for the Raspberry Pi and its associated peripherals. Hence, this the is aims to explore and evaluate novel approaches to supporting the development of polylingual programs. In doing so, a system is developed, automating the generation of polylingual Java interfaces for any given Python module. This system approaches this using concepts from Aspect Oriented programming, alongside injecting CPython into the Java Virtual Machine via the Java Native Interface, to provide polylingual interoperability. Hereafter, the system successfully generates Java packages providing interfaces for two official, production Python modules, both of which serve as interfaces to individual hardware peripherals for the Raspberry Pi: the Sense HAT and RPi camera. These generated polylingual packages serve to provide seamless Java interoperability with their underlying Python libraries, and hence their corresponding hardware components. The generated packages are evaluated, both qualitatively in terms of functional correctness and quantitatively in terms of performance, comparing them to existing Java interfaces for these Raspberry Pi peripherals. Evaluation finds these generated packages to have a high degree of correctness, often outperforming the existing Java interfaces.en_US
dc.format.mimetypeapplication/pdf
dc.language.isoenen_US
dc.titleDesigning, implementing, and evaluating approaches to automating development of polylingual softwareen_US
dc.typePrinceton University Senior Theses
pu.date.classyear2023en_US
pu.departmentComputer Scienceen_US
pu.pdf.coverpageSeniorThesisCoverPage
pu.contributor.authorid920226846
pu.mudd.walkinNoen_US
Appears in Collections:Computer Science, 1987-2023

Files in This Item:
File Description SizeFormat 
SUDARSKY-NICHOLASALEXANDER-THESIS.pdf1.47 MBAdobe PDF    Request a copy


Items in Dataspace are protected by copyright, with all rights reserved, unless otherwise indicated.