Graph-based, Self-Supervised Program Repair from Diagnostic Feedback
- URL: http://arxiv.org/abs/2005.10636v2
- Date: Tue, 30 Jun 2020 05:30:33 GMT
- Title: Graph-based, Self-Supervised Program Repair from Diagnostic Feedback
- Authors: Michihiro Yasunaga, Percy Liang
- Abstract summary: We introduce a program-feedback graph, which connects symbols relevant to program repair in source code and diagnostic feedback.
We then apply a graph neural network on top to model the reasoning process.
We present a self-supervised learning paradigm for program repair that leverages unlabeled programs available online.
- Score: 108.48853808418725
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: We consider the problem of learning to repair programs from diagnostic
feedback (e.g., compiler error messages). Program repair is challenging for two
reasons: First, it requires reasoning and tracking symbols across source code
and diagnostic feedback. Second, labeled datasets available for program repair
are relatively small. In this work, we propose novel solutions to these two
challenges. First, we introduce a program-feedback graph, which connects
symbols relevant to program repair in source code and diagnostic feedback, and
then apply a graph neural network on top to model the reasoning process.
Second, we present a self-supervised learning paradigm for program repair that
leverages unlabeled programs available online to create a large amount of extra
program repair examples, which we use to pre-train our models. We evaluate our
proposed approach on two applications: correcting introductory programming
assignments (DeepFix dataset) and correcting the outputs of program synthesis
(SPoC dataset). Our final system, DrRepair, significantly outperforms prior
work, achieving 68.2% full repair rate on DeepFix (+22.9% over the prior best),
and 48.4% synthesis success rate on SPoC (+3.7% over the prior best).
Related papers
- Multi-Task Program Error Repair and Explanatory Diagnosis [28.711745671275477]
We present a novel machine-learning approach for Multi-task Program Error Repair and Explanatory Diagnosis (mPRED)
A pre-trained language model is used to encode the source code, and a downstream model is specifically designed to identify and repair errors.
To aid in visualizing and analyzing the program structure, we use a graph neural network for program structure visualization.
arXiv Detail & Related papers (2024-10-09T05:09:24Z) - VDebugger: Harnessing Execution Feedback for Debugging Visual Programs [103.61860743476933]
We introduce V Debugger, a critic-refiner framework trained to localize and debug visual programs by tracking execution step by step.
V Debugger identifies and corrects program errors leveraging detailed execution feedback, improving interpretability and accuracy.
Evaluations on six datasets demonstrate V Debugger's effectiveness, showing performance improvements of up to 3.2% in downstream task accuracy.
arXiv Detail & Related papers (2024-06-19T11:09:16Z) - Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignments [26.236420215606238]
We develop a framework called PaR that is powered by the Large Language Model.
PaR works in three phases: Peer Solution Selection, Multi-Source Prompt Generation, and Program Repair.
The evaluation on Defects4DS and another well-investigated ITSP dataset reveals that PaR achieves a new state-of-the-art performance.
arXiv Detail & Related papers (2024-04-02T09:12:21Z) - Flexible Control Flow Graph Alignment for Delivering Data-Driven
Feedback to Novice Programming Learners [0.847136673632881]
We present several modifications to CLARA, a data-driven automated repair approach that is open source.
We extend CLARA's abstract syntax tree processor to handle common introductory programming constructs.
We modify an incorrect program's control flow graph to match the correct programs to apply CLARA's original repair process.
arXiv Detail & Related papers (2024-01-02T19:56:50Z) - Graph Neural Networks For Mapping Variables Between Programs -- Extended
Version [0.0]
We propose using graph neural networks (GNNs) to map the set of variables between two programs based on both programs' abstract syntax trees (ASTs)
To demonstrate the strength of variable mappings, we present three use-cases of these mappings on the task of program repair.
arXiv Detail & Related papers (2023-07-24T16:14:32Z) - Giving Feedback on Interactive Student Programs with Meta-Exploration [74.5597783609281]
Developing interactive software, such as websites or games, is a particularly engaging way to learn computer science.
Standard approaches require instructors to manually grade student-implemented interactive programs.
Online platforms that serve millions, like Code.org, are unable to provide any feedback on assignments for implementing interactive programs.
arXiv Detail & Related papers (2022-11-16T10:00:23Z) - Learning from Self-Sampled Correct and Partially-Correct Programs [96.66452896657991]
We propose to let the model perform sampling during training and learn from both self-sampled fully-correct programs and partially-correct programs.
We show that our use of self-sampled correct and partially-correct programs can benefit learning and help guide the sampling process.
Our proposed method improves the pass@k performance by 3.1% to 12.3% compared to learning from a single reference program with MLE.
arXiv Detail & Related papers (2022-05-28T03:31:07Z) - Leveraging Causal Inference for Explainable Automatic Program Repair [24.146216081282798]
This paper presents an interpretable approach for program repair based on sequence-to-sequence models with causal inference.
Our method is called CPR, short for causal program repair.
Experiments on four programming languages show that CPR can generate causal graphs for reasonable interpretations.
arXiv Detail & Related papers (2022-05-26T13:25:33Z) - ProtoTransformer: A Meta-Learning Approach to Providing Student Feedback [54.142719510638614]
In this paper, we frame the problem of providing feedback as few-shot classification.
A meta-learner adapts to give feedback to student code on a new programming question from just a few examples by instructors.
Our approach was successfully deployed to deliver feedback to 16,000 student exam-solutions in a programming course offered by a tier 1 university.
arXiv Detail & Related papers (2021-07-23T22:41:28Z) - Break-It-Fix-It: Unsupervised Learning for Program Repair [90.55497679266442]
We propose a new training approach, Break-It-Fix-It (BIFI), which has two key ideas.
We use the critic to check a fixer's output on real bad inputs and add good (fixed) outputs to the training data.
Based on these ideas, we iteratively update the breaker and the fixer while using them in conjunction to generate more paired data.
BIFI outperforms existing methods, obtaining 90.5% repair accuracy on GitHub-Python and 71.7% on DeepFix.
arXiv Detail & Related papers (2021-06-11T20:31:04Z)
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.