Write, Execute, Assess: Program Synthesis with a REPL
arXiv:1906.04604
Abstract
We present a neural program synthesis approach integrating components which write, execute, and assess code to navigate the search space of possible programs. We equip the search process with an interpreter or a read-eval-print-loop (REPL), which immediately executes partially written programs, exposing their semantics. The REPL addresses a basic challenge of program synthesis: tiny changes in syntax can lead to huge changes in semantics. We train a pair of models, a policy that proposes the new piece of code to write, and a value function that assesses the prospects of the code written so-far. At test time we can combine these models with a Sequential Monte Carlo algorithm. We apply our approach to two domains: synthesizing text editing programs and inferring 2D and 3D graphics programs.
The first four authors contributed equally to this work
References in corpus (8)
- Synthesizing Programs for Images using Reinforced Adversarial Learning
- RobustFill: Neural Program Learning under Noisy I/O
- Learning to Infer and Execute 3D Shape Programs
- Neural-Guided Deductive Search for Real-Time Program Synthesis from Examples
- Automatic Program Synthesis of Long Programs with a Learned Garbage Collector
- SyGuS-Comp 2016: Results and Analysis
- Selecting Representative Examples for Program Synthesis
- Program Synthesis Through Reinforcement Learning Guided Tree Search
Cited by in corpus (19)
- Reconstructing editable prismatic CAD from rounded voxel models
- Learning Compositional Rules via Neural Program Synthesis
- ShapeMOD: Macro Operation Discovery for 3D Shape Programs
- Synthesize, Execute and Debug: Learning to Repair for Neural Program Synthesis
- Quantum Software Engineering Challenges from Developers' Perspective: Mapping Research Challenges to the Proposed Workflow Model
- Learning to Synthesize Programs as Interpretable and Generalizable Policies
- Fusion 360 Gallery: A Dataset and Environment for Programmatic CAD Construction from Human Design Sequences
- Learned Garbage Collection
- Learning Differentiable Programs with Admissible Neural Heuristics
- Latent Programmer: Discrete Latent Codes for Program Synthesis
- Program Synthesis with Pragmatic Communication
- BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration
- Program Synthesis Guided Reinforcement Learning for Partially Observed Environments
- Creating Synthetic Datasets via Evolution for Neural Program Synthesis
- Optimal Neural Program Synthesis from Multimodal Specifications
- Learning to Combine Per-Example Solutions for Neural Program Synthesis
- Latent Execution for Neural Program Synthesis
- Structured Outdoor Architecture Reconstruction by Exploration and Classification
- Using Program Synthesis and Inductive Logic Programming to solve Bongard Problems