GGrantIndex
← Search

CAREER: Synthesis in a Live Programming Environment

$463,272FY2016CSENSF

Yale University, New Haven CT

Investigators

Abstract

A live programming environment allows a programmer to immediately see the effects of changes to a program on its outputs and effectively eliminates the edit-run-debug cycle that dominates programming work flows today. Live programming is an emerging paradigm that is promising a vast change in the techniques used to develop modern software. This project combines live programming and software synthesis. By generating representative examples to illustrate code behavior, the user can more easily understand the code. If the user notices examples that do not match the intended behavior, the user can either modify the source code, or change the examples to correctly convey the behavior. Invoking a programming by example synthesis algorithm on those updated examples will automatically generate code, which is then merged with the original source code. We call this concept cooperative programming. The intellectual merits of this project include: devising novel real-time algorithms to synthesize code, investigating new fault localization techniques, and developing code repair that is intuitive and natural for the user. In addition, the project is focused on establishing a formal theoretical framework for synthesis in a feedback loop. These ideas will be evaluated in a modern, major programming language, thus making it readily accessible to programmers. In this way, the broader impact of cooperative programming is to increase programmer productivity while simultaneously lowering the barriers to entry for novice programmers, such as secondary school students.

View original record on NSF Award Search →