Write, Execute, Assess: Program Synthesis with a REPL

Program Synthesis


Published on



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.

  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       = {},
  archivePrefix = {arXiv},
  eprint    = {1906.04604},
  timestamp = {Wed, 19 Feb 2020 18:55:53 +0100},
  biburl    = {},
  bibsource = {dblp computer science bibliography,}
Close Modal