Small-Step Live Programming by Example
Kasra Ferdowsifard, Allen Ordookhanians, Hila Peleg, Sorin Lerner, Nadia Polikarpova
Abstract
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. paper presents a new programming paradigm called Synthesis-Aided Live Programming that combines these two prior ideas in a synergistic way. When using Synthesis-Aided Live Programming, programmers can change the runtime values displayed by the live 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. % Live programming and program % synthesis work perfectly together because the live programming environment % reifies values, which makes it easy for programmers to provide the examples % needed by the synthesizer. We implemented this new paradigm in a tool called , and performed a user study on programmers. Our study finds that Small-Step Live Programming by Example with helps users solve harder problems faster, and that for certain types of queries, users prefer it to searching the web. Additionally, we identify the , 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.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Your agent calls
Lunesearch_papers
Free to start. No credit card required.
Terminal
Install the CLIlune papers get 4be0cbd0-2dce-492f-b6ce-d624a3ea228bCited by top-tier papers17
- Grounded Copilot: How Programmers Interact with Code-Generating ModelsShraddha Barke, Michael B. James, Nadia PolikarpovaOOPSLA 2023 · 408 citations
- The Metacognitive Demands and Opportunities of Generative AILev Tankelevitch, Viktor Kewenig, Auste Simkute, Ava Elizabeth Scott et al.CHI 2024 · 279 citations
- A Large-Scale Survey on the Usability of AI Programming Assistants: Successes and ChallengesJenny T. Liang, Chenyang Yang, Brad A. MyersICSE 2024 · 126 citations
- On the Design of AI-powered Code Assistants for NotebooksAndrew M. McNutt, Chenglong Wang, Robert A. DeLine, Steven Mark DruckerCHI 2023 · 78 citations
- Discovering the Syntax and Strategies of Natural Language Programming with Generative Language ModelsEllen Jiang, Edwin Toh, Alejandra Molina, Kristen Olson et al.CHI 2022 · 76 citations
Related papers
- LooPy: interactive program synthesis with control structuresKasra Ferdowsifard, Shraddha Barke, Hila Peleg, Sorin Lerner et al.OOPSLA 2021 · 18 citations
- Focused Live Programming with Loop SeedsSorin LernerUIST 2020 · 6 citations
- Projection Boxes: On-the-fly Reconfigurable Visualization for Live ProgrammingSorin LernerCHI 2020 · 52 citations
- Programming with a read-eval-synth loopHila Peleg, Roi Gabay, Shachar Itzhaky, Eran YahavOOPSLA 2020 · 15 citations
- Validating AI-Generated Code with Live ProgrammingKasra Ferdowsi, Ruanqianqian (Lisa) Huang, Michael B. James, Nadia Polikarpova et al.CHI 2024 · 27 citations
