Program synthesis is a formal technique that promises to decrease software development costs, decrease the risk of software bugs, and make programming skills more accessible to a broader audience. Yet for all the development of theory and techniques in this area, the adoption of program synthesis by users has been limited. A key hurdle in expanding the impact of synthesis is that fully automated software synthesis does not match the iterative software design process that is used in practice. The majority of existing techniques strive to be fully automated, acting as black-boxes for users: the user provides a specification and the tool returns complete program code. The investigators propose to overcome this hurdle through human-in-the-loop synthesis which allows a user to incrementally refine specifications and code through interaction with the synthesis engine.

This project focuses on developing techniques and theories that increase the adoption of program synthesis in real-world systems. They use a performative practice from the computer-music community, called Live Coding, in which users write code that generates music (or other media) in real-time. This project formalizes human-in-the-loop Program Synthesis and its intersection with Live Coding, and develops new human-in-the-loop program-synthesis techniques. The investigators explore the use of these techniques in Live Coding and other settings. This project will also provide the opportunity for female undergraduates to participate in computer-science research - many for the first time.

This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

Project Start
Project End
Budget Start
2021-05-01
Budget End
2023-04-30
Support Year
Fiscal Year
2021
Total Cost
$173,341
Indirect Cost
Name
Barnard College
Department
Type
DUNS #
City
New York
State
NY
Country
United States
Zip Code
10027