DeepFix: Fixing Common C Language Errors by Deep Learning

Authors

  • Rahul Gupta Indian Institute of Science Bangalore
  • Soham Pal Indian Institute of Science Bangalore
  • Aditya Kanade Indian Institute of Science Bangalore
  • Shirish Shevade Indian Institute of Science Bangalore

DOI:

https://doi.org/10.1609/aaai.v31i1.10742

Keywords:

common programming errors, program repair, deep learning, fault localization, programming education

Abstract

The problem of automatically fixing programming errors is a very active research topic in software engineering. This is a challenging problem as fixing even a single error may require analysis of the entire program. In practice, a number of errors arise due to programmer's inexperience with the programming language or lack of attention to detail. We call these common programming errors. These are analogous to grammatical errors in natural languages. Compilers detect such errors, but their error messages are usually inaccurate. In this work, we present an end-to-end solution, called DeepFix, that can fix multiple such errors in a program without relying on any external tool to locate or fix them. At the heart of DeepFix is a multi-layered sequence-to-sequence neural network with attention which is trained to predict erroneous program locations along with the required correct statements. On a set of 6971 erroneous C programs written by students for 93 programming tasks, DeepFix could fix 1881 (27%) programs completely and 1338 (19%) programs partially.

Downloads

Published

2017-02-12

How to Cite

Gupta, R., Pal, S., Kanade, A., & Shevade, S. (2017). DeepFix: Fixing Common C Language Errors by Deep Learning. Proceedings of the AAAI Conference on Artificial Intelligence, 31(1). https://doi.org/10.1609/aaai.v31i1.10742

Issue

Section

Main Track: Machine Learning Applications