CODIT: Code Editing With Tree-Based Neural Models
By Saikat Chakraborty, Yangruibo Ding, Miltiadis Allamanis, Baishakhi Ray. 2018
131 citations recorded by the source corpus.
The way developers edit day-to-day code tends to be repetitive, often using existing code elements. Many researchers have tried to automate repetitive code changes by learning from specific change templates which are applied to limited scope. The advancement of deep neural networks and the availability of vast open-source evolutionary data opens up the possibility of automatically learning those templates from the wild. However, deep neural network based modeling for code changes and code in general introduces some specific problems that needs specific attention from research community. For instance, compared to natural language, source code vocabulary can be significantly larger. Further, good changes in code do not break its syntactic structure. Thus, deploying state-of-the-art neural network models without adapting the methods to the source code domain yields sub-optimal results. To this end, we propose a novel tree-based neural network system to model source code changes and learn code change patterns from the wild. Specifically, we propose a tree-based neural machine translation model to learn the probability distribution of changes in code. We realize our model with a change suggestion engine, Codit, and train the model with more than 24k real-world changes and evaluate it on 5k patches. Our evaluation shows the effectiveness of Codit in learning and suggesting patches. Codit can also learn specific bug fix pattern from bug fixing patches and can fix 25 bugs out of 80 bugs in Defects4J.
Subfields: Information Systems, Software, Model Architectures, Code Generation & Program Synthesis
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Information Systems
- Prem Devanbu
- Yangruibo Ding
- Baishakhi Ray
- Vincent J. Hellendoorn
- Miltiadis Allamanis
- Charles Sutton
- Rafael-Michael Karampatsis
- Premkumar T. Devanbu
In Software
- Prem Devanbu
- Vincent J. Hellendoorn
- Yangruibo Ding
- Baishakhi Ray
- Charles Sutton
- Premkumar T. Devanbu
In Model Architectures
In Code Generation & Program Synthesis
- Prem Devanbu
- Yangruibo Ding
- Baishakhi Ray
- Vincent J. Hellendoorn
- Charles Sutton
- Miltiadis Allamanis
- Rafael-Michael Karampatsis
- Premkumar T. Devanbu
Citations in the corpus
- Patching as Translation: the Data and the Metaphor (2020, methodology): “ a typical example of this phenomenon. A range of recent work has adopted neural machine translation (NMT) models to learn to repair programs by “translating" the buggy code to the repaired code [5, 6, 22, 30]. We argue that there are three general concernswiththistypeofapproach,andshowconcrete”