Skip navigation
Please use this identifier to cite or link to this item: http://arks.princeton.edu/ark:/88435/dsp01vq27zr711
Title: Designing, implementing, and evaluating approaches to automating development of polylingual software
Authors: Sudarsky, Nicholas Alexander
Advisors: Kaplan, Alan
Department: Computer Science
Class Year: 2023
Abstract: Recent 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.
URI: http://arks.princeton.edu/ark:/88435/dsp01vq27zr711
Type of Material: Princeton University Senior Theses
Language: en
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.