PLAILGSEJun 9, 2019

Write, Execute, Assess: Program Synthesis with a REPL

arXiv:1906.04604v1185 citations
Originality Incremental advance
AI Analysis

This work addresses the problem of efficient and accurate program synthesis for developers and AI researchers, presenting an incremental improvement by combining existing methods with a REPL for better semantic navigation.

The authors tackled the challenge of program synthesis by integrating a REPL to execute partially written programs, addressing the issue where small syntax changes cause large semantic shifts, and they applied this approach to text editing and graphics program synthesis.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes