Learning to Infer Program Sketches
Maxwell Nye, Luke Hewitt, Joshua Tenenbaum, Armando Solar-Lezama

TL;DR
This paper introduces a hybrid program synthesis system that combines pattern recognition and symbolic reasoning, enabling automatic code generation from natural language and examples, with state-of-the-art results on simple English-to-code tasks.
Contribution
It presents a novel intermediate representation and training algorithm that dynamically balances pattern recognition and explicit reasoning without direct supervision.
Findings
Matches neural synthesis memorization performance
Matches symbolic search generalization performance
Achieves state-of-the-art on English description-to-code dataset
Abstract
Our goal is to build systems which write code automatically from the kinds of specifications humans can most easily provide, such as examples and natural language instruction. The key idea of this work is that a flexible combination of pattern recognition and explicit reasoning can be used to solve these complex programming problems. We propose a method for dynamically integrating these types of information. Our novel intermediate representation and training algorithm allow a program synthesis system to learn, without direct supervision, when to rely on pattern recognition and when to perform symbolic search. Our model matches the memorization and generalization performance of neural synthesis and symbolic search, respectively, and achieves state-of-the-art performance on a dataset of simple English description-to-code programming problems.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Topic Modeling · Software Testing and Debugging Techniques
