Small-Step Live Programming by Example
Authors
Live programming is a paradigm in which the programming environment continually displays runtime values. Program synthesis is a technique that can generate programs or program snippets from examples. Previous works that combine the two have taken a holistic approach to the way examples describe the behavior of functions and programs. This paper presents a new programming paradigm called Small-Step Live Programming by Example that lets the user apply Programming by Example locally. When using Small-Step Live Programming by Example, programmers can change the runtime values displayed by the live visualization to generate local program snippets. We implemented this new paradigm in a tool called SNIPPY, and performed a user study on 13 programmers. Our study fnds that Small-Step Live Programming by Example with SNIPPY helps users solve harder problems faster, and that for certain types of queries, users prefer it to searching the web. Additionally, we identify the user-synthesizer gap, in which users’ mental models of the tool do not match its ability, and needs to be taken into account in the design of future synthesis tools.
Research Questions / Practical Problems
Question signals indexed for this paper.
- 100%
Computational Interaction: Theory and Practice
CHI '18· Computational Methods in HCI
- 100%
Model-based Evaluation of Recall-based Interaction Techniques
CHI '24· Computational Methods in HCI
- 75%
Visualizing API Usage Examples at Scale
CHI '18· Interactive Data Visualization +1
- 75%
Observations on Typing from 136 Million Keystrokes
CHI '18· User Research Methods (Interviews, Surveys, Observation) +1
- 75%
Interactive Extraction of Examples from Existing Code
CHI '18· Open-Source Collaboration & Code Review +1
- 75%
How Users Interpret Bugs in Trigger-Action Programming
CHI '19· Prototyping & User Testing +1
- 75%
To Write Code: The Cultural Fabrication of Programming Notation and Practice
CHI '20· Reproductive & Women's Health +1
- 75%
Understanding Visual Investigation Patterns Through Digital "Field" Observations
CHI '22· Interactive Data Visualization +1
- 75%
Dynamics of eye-hand coordination are flexibly preserved in eye-cursor coordination during an online, digital, object interaction task
CHI '23· Eye Tracking & Gaze Interaction +1
- 75%
Varying Subjective Speed-accuracy Biases to Evaluate the Generalizability of Experimental Findings on Pointing-facilitation Techniques
CHI '23· Voice User Interface (VUI) Design +1
Based on Jaccard similarity of research subtopics & professions (≥60%)