Synthesize, Execute and Debug: Learning to Repair for Neural Program
Synthesis
- URL: http://arxiv.org/abs/2007.08095v2
- Date: Thu, 22 Oct 2020 07:23:09 GMT
- Title: Synthesize, Execute and Debug: Learning to Repair for Neural Program
Synthesis
- Authors: Kavi Gupta, Peter Ebert Christensen, Xinyun Chen, Dawn Song
- Abstract summary: We propose SED, a neural program generation framework that incorporates synthesis, execution, and debug stages.
SED first produces initial programs using the neural program synthesizer component, then utilizes a neural program debugger to iteratively repair the generated programs.
On Karel, a challenging input-output program synthesis benchmark, SED reduces the error rate of the neural program synthesizer itself by a considerable margin, and outperforms the standard beam search for decoding.
- Score: 81.54148730967394
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: The use of deep learning techniques has achieved significant progress for
program synthesis from input-output examples. However, when the program
semantics become more complex, it still remains a challenge to synthesize
programs that are consistent with the specification. In this work, we propose
SED, a neural program generation framework that incorporates synthesis,
execution, and debugging stages. Instead of purely relying on the neural
program synthesizer to generate the final program, SED first produces initial
programs using the neural program synthesizer component, then utilizes a neural
program debugger to iteratively repair the generated programs. The integration
of the debugger component enables SED to modify the programs based on the
execution results and specification, which resembles the coding process of
human programmers. On Karel, a challenging input-output program synthesis
benchmark, SED reduces the error rate of the neural program synthesizer itself
by a considerable margin, and outperforms the standard beam search for
decoding.
Related papers
- Hierarchical Neural Program Synthesis [19.94176152035497]
Program synthesis aims to automatically construct human-readable programs that satisfy given task specifications.
We present a scalable program synthesis framework that instead synthesizes a program by hierarchically composing programs.
We extensively evaluate our proposed framework in a string transformation domain with input/output pairs.
arXiv Detail & Related papers (2023-03-09T18:20:07Z) - A Conversational Paradigm for Program Synthesis [110.94409515865867]
We propose a conversational program synthesis approach via large language models.
We train a family of large language models, called CodeGen, on natural language and programming language data.
Our findings show the emergence of conversational capabilities and the effectiveness of the proposed conversational program synthesis paradigm.
arXiv Detail & Related papers (2022-03-25T06:55:15Z) - Latent Execution for Neural Program Synthesis Beyond Domain-Specific
Languages [97.58968222942173]
We take the first step to synthesize C programs from input-output examples.
In particular, we propose La Synth, which learns the latent representation to approximate the execution of partially generated programs.
We show that training on these synthesized programs further improves the prediction performance for both Karel and C program synthesis.
arXiv Detail & Related papers (2021-06-29T02:21:32Z) - Representing Partial Programs with Blended Abstract Semantics [62.20775388513027]
We introduce a technique for representing partially written programs in a program synthesis engine.
We learn an approximate execution model implemented as a modular neural network.
We show that these hybrid neuro-symbolic representations enable execution-guided synthesizers to use more powerful language constructs.
arXiv Detail & Related papers (2020-12-23T20:40:18Z) - Latent Programmer: Discrete Latent Codes for Program Synthesis [56.37993487589351]
In many sequence learning tasks, such as program synthesis and document summarization, a key problem is searching over a large space of possible output sequences.
We propose to learn representations of the outputs that are specifically meant for search: rich enough to specify the desired output but compact enough to make search more efficient.
We introduce the emphLatent Programmer, a program synthesis method that first predicts a discrete latent code from input/output examples, and then generates the program in the target language.
arXiv Detail & Related papers (2020-12-01T10:11:35Z) - Optimal Neural Program Synthesis from Multimodal Specifications [45.35689345004124]
Multimodal program synthesis is an attractive way to scale program synthesis to challenging settings.
This paper proposes an optimal neural synthesis approach where the goal is to find a program that satisfies user-provided constraints.
arXiv Detail & Related papers (2020-10-04T20:51:21Z) - Type-driven Neural Programming by Example [0.0]
We look into programming by example (PBE), which is about finding a program mapping given inputs to given outputs.
We propose a way to incorporate programming types into a neural program synthesis approach for PBE.
arXiv Detail & Related papers (2020-08-28T12:30:05Z) - Neural Program Synthesis with a Differentiable Fixer [44.48509453344902]
We present a new program synthesis approach that combines an encoder-decoder based synthesis architecture with a differentiable program fixer.
We train our architecture end-to-end on the RobustFill domain, and show that the addition of the fixer module leads to a significant improvement on synthesis accuracy.
arXiv Detail & Related papers (2020-06-19T01:49:46Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.