DeepDelta: learning to repair compilation errors

By Ali Mesbah, Andrew Colin Rice, Emily Johnston, Nick Glorioso, Edward Aftandilian. 2019

116 citations recorded by the source corpus.

Programmers spend a substantial amount of time manually repairing code that does not compile. We observe that the repairs for any particular error class typically follow a pattern and are highly mechanical. We propose a novel approach that automatically learns these patterns with a deep neural network and suggests program repairs for the most costly classes of build-time compilation failures. We describe how we collect all build errors and the human-authored, in-progress code changes that cause those failing builds to transition to successful builds at Google. We generate an AST diff from the textual code changes and transform it into a domain-specific language called Delta that encodes the change that must be made to make the code compile. We then feed the compiler diagnostic information (as source) and the Delta changes that resolved the diagnostic (as target) into a Neural Machine Translation network for training. For the two most prevalent and costly classes of Java compilation errors, namely missing symbols and mismatched method signatures, our system called DeepDelta, generates the correct repair changes for 19,314 out of 38,788 (50%) of unseen compilation errors. The correct changes are in the top three suggested fixes 86% of the time on average.

Subfields: Computer Networks and Communications, Information Systems, Software, Program Analysis & Verification

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

In Computer Networks and Communications

  1. Michihiro Yasunaga
  2. Percy Liang
  3. Armando Solar-Lezama
  4. Uri Alon
  5. Eran Yahav
  6. Shaked Brody
  7. Denys Poshyvanyk
  8. Daniel Tarlow

In Information Systems

  1. Uri Alon
  2. Eran Yahav
  3. Charles Sutton
  4. Percy Liang
  5. Miltiadis Allamanis
  6. Michihiro Yasunaga
  7. Shaked Brody
  8. Michele Tufano

In Software

  1. Percy Liang
  2. Michihiro Yasunaga
  3. Uri Alon
  4. Charles Sutton
  5. Armando Solar-Lezama
  6. Eran Yahav
  7. Gabriele Bavota
  8. Michele Tufano

In Program Analysis & Verification

  1. Eran Yahav
  2. Uri Alon
  3. Shaked Brody
  4. Armando Solar-Lezama
  5. Percy Liang
  6. Denys Poshyvanyk
  7. Daniel Tarlow
  8. Gabriele Bavota

Citations in the corpus