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.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
1421652
Program Officer
Anindya Banerjee
Project Start
Project End
Budget Start
2014-07-01
Budget End
2017-06-30
Support Year
Fiscal Year
2014
Total Cost
$136,247
Indirect Cost
Name
Indiana University
Department
Type
DUNS #
City
Bloomington
State
IN
Country
United States
Zip Code
47401