Compiler Coaching

Lead PI

Abstract

The “Compiler Coaching” (Dialog) project represents an investment in programming language tools and technology. Software engineers use high-level programming languages on a daily basis to produce the apps and applications that everyone uses and that control everybody’s lives. Once a programming language translator accepts a program as grammatically correct, it creates impenetrable computer codes without informing the programmer how well (fast or slow, small or large, energy hogging or efficient) these codes will work. Indeed, modern programming languages employ increasingly sophisticated translation techniques and have become obscure black boxes to the working engineer. The goal of the Dialog project is to create channels of communication between these translation processes and software engineers, with the expectation that the latter can use this new source of information to improve the speed, size, or energy consumption of their software.

The PIs will explore the Dialog idea in two optimizing compiler settings, one on the conventional side and one on the modern one: for the Racket language, a teaching and research vehicle that they can modify as needed to create the desired channel, and the JavaScript programming language, the standardized tool for existing Web applications. The intellectual merits concern the fundamental principles of creating such communication channels and frameworks for gathering empirical evidence on how these channels benefit the working software engineer. These results should enable the developers of any programming language to implement similar channels of communication to help their clients. The broader impacts are twofold. On one hand, the project is likely to positively impact the lives of working software engineers as industrial programming language creators adapt the Dialog idea. On the other hand, the project will contribute to a two-decades old, open-source programming language project with a large and longstanding history of educational outreach at multiple levels. The project has influenced hundreds of thousands of high school students in the past and is likely to do so in the future.

Funding

NSF

Related Publications