Lune

ICML2020Top-tier venue

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

Michihiro Yasunaga, Percy Liang

2020Year
198Citations
51Top-tier citations

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 programfeedback 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). line 9:error: request for member 'size' in 'a', which is of non-class type 'char' Evaluator (compiler) Feedback Goal 1. Localize error: line 5 2. Edit char tmp, a, b; → string tmp, a, b; Dr Repair (our model) 1. Error localized line 5 2. Repair char tmp, a, b; → string tmp, a, b; Sourc 4 in 5 c 6 m 7 c 8 i 9 f 10 11 . line 9:error: request for member 'size' in 'a', which is of non-class type 'char' Evaluator (compiler) Feedback Dr Repair (our model) 1. Error localized line 5 2. Repair char tmp, a, b; → string tmp, a, b;

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext b96abe70-8dca-4ac9-9986-9f67bc2cafb0

Cited by top-tier papers51

Ask how each one uses it

Builds on2

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines