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

  1. Prem Devanbu
  2. Yangruibo Ding
  3. Baishakhi Ray
  4. Vincent J. Hellendoorn
  5. Miltiadis Allamanis
  6. Charles Sutton
  7. Rafael-Michael Karampatsis
  8. Premkumar T. Devanbu

In Software

  1. Prem Devanbu
  2. Vincent J. Hellendoorn
  3. Yangruibo Ding
  4. Baishakhi Ray
  5. Charles Sutton
  6. Premkumar T. Devanbu

In Model Architectures

  1. Prem Devanbu
  2. Yangruibo Ding
  3. Vincent J. Hellendoorn
  4. Baishakhi Ray

In Code Generation & Program Synthesis

  1. Prem Devanbu
  2. Yangruibo Ding
  3. Baishakhi Ray
  4. Vincent J. Hellendoorn
  5. Charles Sutton
  6. Miltiadis Allamanis
  7. Rafael-Michael Karampatsis
  8. Premkumar T. Devanbu

Citations in the corpus