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.

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/papers/uist/42053/2020

AdRecommended

Learn AI Coding at CodeNow

open_in_newOpen DOI Link
DOI: https://dl.acm.org/doi/10.1145/3379337.3415869
At a Glance

Paper Snapshot

fact_check
dataset
Source
UIST
calendar_month
Year
2020
emoji_events
Award
No award tagged
group
Authors
5 authors
sell
Subtopics
Computational Methods in HCI
work
Professions
Software Engineers & Developers, HCI Researchers
article
Content Status
Abstract only
hub
Related Papers
10 related papers