Leveraging Grammar and Reinforcement Learning for Neural Program Synthesis
Rudy Bunel, Matthew Hausknecht, Jacob Devlin, Rishabh Singh, Pushmeet, Kohli

TL;DR
This paper introduces a neural program synthesis method that combines grammar constraints and reinforcement learning to generate syntactically correct and semantically accurate programs, especially effective with limited training data.
Contribution
It proposes a novel training approach that explicitly maximizes the likelihood of semantically correct and syntactically valid programs using reinforcement learning and grammar-based constraints.
Findings
Improved accuracy in program synthesis with limited data
Effective enforcement of syntax correctness during training
Enhanced semantic correctness of generated programs
Abstract
Program synthesis is the task of automatically generating a program consistent with a specification. Recent years have seen proposal of a number of neural approaches for program synthesis, many of which adopt a sequence generation paradigm similar to neural machine translation, in which sequence-to-sequence models are trained to maximize the likelihood of known reference programs. While achieving impressive results, this strategy has two key limitations. First, it ignores Program Aliasing: the fact that many different programs may satisfy a given specification (especially with incomplete specifications such as a few input-output examples). By maximizing the likelihood of only a single reference program, it penalizes many semantically correct programs, which can adversely affect the synthesizer performance. Second, this strategy overlooks the fact that programs have a strict syntax that…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Ferroelectric and Negative Capacitance Devices
