Research

Write, Execute, Assess: Program Synthesis with a REPL

Program Synthesis

Authors

Published on

06/09/2019

Categories

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.

Please cite our work using the BibTeX below.

@article{DBLP:journals/corr/abs-1906-04604,
  author    = {Kevin Ellis and
               Maxwell I. Nye and
               Yewen Pu and
               Felix Sosa and
               Josh Tenenbaum and
               Armando Solar{-}Lezama},
  title     = {Write, Execute, Assess: Program Synthesis with a {REPL}},
  journal   = {CoRR},
  volume    = {abs/1906.04604},
  year      = {2019},
  url       = {http://arxiv.org/abs/1906.04604},
  archivePrefix = {arXiv},
  eprint    = {1906.04604},
  timestamp = {Wed, 19 Feb 2020 18:55:53 +0100},
  biburl    = {https://dblp.org/rec/journals/corr/abs-1906-04604.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}
Close Modal