Christopher Schuster (University of California, Santa Cruz)

Live Programming by Example: Using Direct Manipulation for Live Program Synthesis

Christopher Schuster, Cormac Flanagan

LIVE workshop on live programming systems (LIVE 2016). July 2016. Rome, Italy.

To provide a better programming experience, live programming environments allow changes to the code of running programs. These changes are usually made by editing the source code. In this paper, we introduce live programming by example which enables updates to the code by direct manipulation of the program’s user interface. Besides a formal definition of live programming by example, we also present a concrete prototype implementation for JavaScript that enables the programmer to change string literals in the source code by direct manipulation of the HTML output based on a dynamic string origin analysis. While this prototype only supports light-weight synthesis, future live program synthesis algorithms could support a wider range of program edits.