Graph-based, Self-Supervised Program Repair from Diagnostic Feedback

05/20/2020
by   Michihiro Yasunaga, et al.
0

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 and 48.4

READ FULL TEXT
research
04/17/2023

A study on Prompt Design, Advantages and Limitations of ChatGPT for Deep Learning Program Repair

ChatGPT has revolutionized many research and industrial fields. ChatGPT ...
research
07/24/2023

Graph Neural Networks For Mapping Variables Between Programs – Extended Version

Automated program analysis is a pivotal research domain in many areas of...
research
05/16/2019

Inferring Javascript types using Graph Neural Networks

The recent use of `Big Code' with state-of-the-art deep learning methods...
research
06/16/2023

Demystifying GPT Self-Repair for Code Generation

Large Language Models (LLMs) have shown remarkable aptitude in code gene...
research
11/04/2019

Learning to Fix Build Errors with Graph2Diff Neural Networks

Professional software developers spend a significant amount of time fixi...
research
08/17/2022

Input Repair via Synthesis and Lightweight Error Feedback

Often times, input data may ostensibly conform to a given input format, ...
research
06/11/2021

Break-It-Fix-It: Unsupervised Learning for Program Repair

We consider repair tasks: given a critic (e.g., compiler) that assesses ...

Please sign up or login with your details

Forgot password? Click here to reset