Write, Execute, Assess: Program Synthesis with a REPL
Author(s)
Ellis, Kevin; Nye, Maxwell; Pu, Yewen; Sosa, Felix; Tenenbaum, Joshua B.; Solar-Lezama, Armando; ... Show more Show less
DownloadPublished version (3.896Mb)
Publisher Policy
Publisher Policy
Article is made available in accordance with the publisher's policy and may be subject to US copyright law. Please refer to the publisher's site for terms of use.
Terms of use
Metadata
Show full item recordAbstract
© 2019 Neural information processing systems foundation. All rights reserved. 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.
Date issued
2019Department
Center for Brains, Minds, and Machines; Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory; Massachusetts Institute of Technology. Department of Brain and Cognitive SciencesJournal
Advances in Neural Information Processing Systems
Citation
Ellis, Kevin, Nye, Maxwell, Pu, Yewen, Sosa, Felix, Tenenbaum, Joshua B. et al. 2019. "Write, Execute, Assess: Program Synthesis with a REPL." Advances in Neural Information Processing Systems, 32.
Version: Final published version