Neural Program Repair by Jointly Learning to Localize and Repair
Marko Vasic, Aditya Kanade, Petros Maniatis, David Bieber, Rishabh, Singh

TL;DR
This paper introduces a neural network model that jointly localizes and repairs variable-misuse bugs in programs, significantly improving over previous enumerative approaches by directly learning both tasks simultaneously.
Contribution
It proposes a multi-headed pointer network that jointly learns to localize and repair variable-misuse bugs, advancing automated program repair techniques.
Findings
Joint model outperforms enumerative solutions
Significant improvement in bug localization accuracy
Enhanced repair prediction quality
Abstract
Due to its potential to improve programmer productivity and software quality, automated program repair has been an active topic of research. Newer techniques harness neural networks to learn directly from examples of buggy programs and their fixes. In this work, we consider a recently identified class of bugs called variable-misuse bugs. The state-of-the-art solution for variable misuse enumerates potential fixes for all possible bug locations in a program, before selecting the best prediction. We show that it is beneficial to train a model that jointly and directly localizes and repairs variable-misuse bugs. We present multi-headed pointer networks for this purpose, with one head each for localization and repair. The experimental results show that the joint model significantly outperforms an enumerative solution that uses a pointer based model for repair alone.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Memory and Neural Computing · Software Engineering Research · Neural Networks and Applications
MethodsRepair
