• Home
  • Search
  • LooPy: interactive program synthesis with control structures
  • Cite Icon16
  • https://doi.org/10.1145/3485530Copy DOI Icon

LooPy: interactive program synthesis with control structures

Show More
  • Abstract
  • Highlights & Summary
  • PDF
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

One vision for program synthesis, and specifically for programming by example (PBE), is an interactive programmer's assistant, integrated into the development environment. To make program synthesis practical for interactive use, prior work on Small-Step Live PBE has proposed to limit the scope of synthesis to small code snippets, and enable the users to provide local specifications for those snippets. This paradigm, however, does not work well in the presence of loops. We present LooPy, a synthesizer integrated into a live programming environment, which extends Small-Step Live PBE to work inside loops and scales it up to synthesize larger code snippets, while remaining fast enough for interactive use. To allow users to effectively provide examples at various loop iterations, even when the loop body is incomplete, LooPy makes use of live execution , a technique that leverages the programmer as an oracle to step over incomplete parts of the loop. To enable synthesis of loop bodies at interactive speeds, LooPy introduces Intermediate State Graph , a new data structure, which compactly represents a large space of code snippets composed of multiple assignment statements and conditionals. We evaluate LooPy empirically using benchmarks from competitive programming and previous synthesizers, and show that it can solve a wide variety of synthesis tasks at interactive speeds. We also perform a small qualitative user study which shows that LooPy's block-level specifications are easy for programmers to provide.

Loading PDF

Similar Papers
  • Conference Article
  • Citations5

Live, synchronized, and mental map preserving visualization for data structure programming

  • Oct 24, 2018
  • Akio Oka +2
  • Research Article
  • Citations11

Toward Semantic Foundations for Program Editors.

  • Jan 01, 2017
  • DROPS (Schloss Dagstuhl – Leibniz Center for Informatics)
  • Cyrus Omar +6
  • PDF
  • Research Article
  • Citations3

Neural Network Approach to Program Synthesis for Tabular Transformation by Example

  • Jan 01, 2022
  • IEEE Access
  • Yoshifumi Ujibashi +1
  • Research Article
  • Citations120

Synthesizing data structure transformations from input-output examples

  • Jun 03, 2015
  • ACM SIGPLAN Notices
  • John K Feser +2
  • Conference Article
  • Citations9

Live Programming and Software Evolution: Questions During a Programming Change Task

  • May 01, 2019
  • Juraj Kubelka +2
  • Dissertation

A Live Programming Environment for Python

  • Nov 01, 2017
  • Noah Negrey
  • Conference Article
  • Citations54

URPR—An extension of URCR for software pipelining

  • Dec 01, 1986
  • B Su +2
  • Conference Article
  • Citations258

Dimensions in program synthesis

  • Jul 26, 2010
  • Sumit Gulwani
  • Conference Article
  • Citations49

Creating interactive web data applications with spreadsheets

  • Oct 05, 2014
  • Kerry Shih-Ping Chang +1
  • Book Chapter
  • Citations38

Static Detection of Loop-Invariant Data Structures

  • Jan 01, 2012
  • Guoqing Xu +2
  • Conference Article
  • Citations11

High-level Programming via Generalized Planning and LTL Synthesis

  • Jul 01, 2020
  • Blai Bonet +4
  • Research Article
  • Citations21

Effective jump-pointer prefetching for linked data structures

  • May 01, 1999
  • ACM SIGARCH Computer Architecture News
  • Amir Roth +1
  • Book Chapter
  • Citations12

Automated Synthesis of Functional Programs with Auxiliary Functions

  • Jan 01, 2018
  • Shingo Eguchi +2
  • Research Article
  • Citations5

Unifying Fixed Code Mapping, Communication, Synchronization and Scheduling Algorithms for Efficient and Scalable Loop Pipelining

  • Sep 01, 2018
  • IEEE Transactions on Parallel and Distributed Systems
  • Aristeidis Mastoras +1
  • Conference Article
  • Citations214

Type-and-example-directed program synthesis

  • Jun 03, 2015
  • Peter-Michael Osera +1
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.