Synthesize, Execute and Debug: Learning to Repair for Neural Program Synthesis

07/16/2020
by   Kavi Gupta, et al.
9

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 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 at least 7.5 outperforms the standard beam search for decoding.

READ FULL TEXT
research
06/29/2021

Latent Execution for Neural Program Synthesis Beyond Domain-Specific Languages

Program synthesis from input-output examples has been a long-standing ch...
research
07/13/2017

On Repair with Probabilistic Attribute Grammars

Program synthesis and repair have emerged as an exciting area of researc...
research
07/13/2021

Bottom-up Synthesis of Recursive Functional Programs using Angelic Execution

We present a novel bottom-up method for the synthesis of functional recu...
research
06/19/2020

Neural Program Synthesis with a Differentiable Fixer

We present a new program synthesis approach that combines an encoder-dec...
research
04/20/2023

Fully Autonomous Programming with Large Language Models

Current approaches to program synthesis with Large Language Models (LLMs...
research
10/24/2021

Scaling Neural Program Synthesis with Distribution-based Search

We consider the problem of automatically constructing computer programs ...
research
11/11/2020

GRCNN: Graph Recognition Convolutional Neural Network for Synthesizing Programs from Flow Charts

Program synthesis is the task to automatically generate programs based o...

Please sign up or login with your details

Forgot password? Click here to reset