Cited by 426Software Engineering ResearchSoftware Testing and Debugging TechniquesTeaching and Learning Programming

DeepFix: Fixing Common C Language Errors by Deep Learning

Open access
Gupta, Rahul, Pal, Soham, Kanade, Aditya, Shevade, Shirish·2017·Proceedings of the AAAI Conference on Artificial Intelligence

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.

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Integrity signals

Registry

Crossref · 10.1609/aaai.v31i1.10742

Cites

2 of 2 references verified0 citation errors · 0 not checkable

Statistics

Claims the paper makes

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Claims other papers make about this one

Each is checked against this paper’s own text: does it say what the citing paper says it does?

  • Artificial intelligence and machine learning approaches have been used for finding and repairing errors in programs, but only very fundamental approaches have been applied to researching programming error messages.

    “Artificial intelligence and machine learning approaches have been used for finding and repairing errors in programs [1,20,21] but only very fundamental approaches have been applied to researching PEMs [11].”

Self-check

Percentages, sums and reported differences re-computed from the paper’s own numbers.

The self-check needs the paper’s full text.

Cites

Flagged first, then by citations

Research works printed but not linked: 14

  1. Arcuri, A. 2008. On the automation of fixing software bugs. In ICSE Companion , 1003-1006.
  2. Bahdanau, D.; Cho, K.; and Bengio, Y. 2014. Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473 . · arXiv
  3. Bhatia, S., and Singh, R. 2016. Automated correction for syntax errors in programming assignments using recurrent neural networks. arXiv preprint arXiv:1603.06129 . · arXiv
  4. Cho, K.; Van Merri¨ enboer, B.; Gulcehre, C.; Bahdanau, D.; Bougares, F.; Schwenk, H.; and Bengio, Y. 2014. Learning phrase representations using RNN encoder-decoder for statistical machine translation. In EMNLP , 1724-1734.
  5. Das, R.; Ahmed, U. Z.; Karkare, A.; and Gulwani, S. 2016. Prutor: A system for tutoring CS1 and collecting student programs for analysis. CoRR abs/1608.03828. · arXiv
  6. Hindle, A.; Barr, E. T.; Su, Z.; Gabel, M.; and Devanbu, P. 2012. On the naturalness of software. In ICSE , 837-847.
  7. Le Goues, C.; N., T.; Forrest, S.; and Weimer, W. 2012. GenProg: A generic method for automatic software repair. IEEE Trans. Software Eng. 54 -72.
  8. Long, F., and Rinard, M. 2016. Automatic patch generation by learning correct code. In POPL , 298-312.
  9. Piech, C.; Huang, J.; Nguyen, A.; Phulsuksombati, M.; Sahami, M.; and Guibas, L. J. 2015. Learning program embeddings to propagate feedback on student code. In ICML , 1093-1102.
  10. Pu, Y.; Narasimhan, K.; Solar-Lezama, A.; and Barzilay, R. 2016. sk p: a neural program corrector for moocs. arXiv preprint arXiv:1607.02902 . · arXiv
  11. Seo, H.; Sadowski, C.; Elbaum, S.; Aftandilian, E.; and Bowdidge, R. 2014. Programmers' build errors: a case study (at Google). In ICSE , 724-734.
  12. Srivastava, N.; Hinton, G.; Krizhevsky, A.; Sutskever, I.; and Salakhutdinov, R. 2014. Dropout: A simple way to prevent neural networks from overfitting. J. Mach. Learn. Res. 15(1):1929-1958.
  13. Sutskever, I.; Vinyals, O.; and Le, Q. V. 2014. Sequence to sequence learning with neural networks. In NIPS , 31043112.
  14. Xie, Z.; Avati, A.; Arivazhagan, N.; Jurafsky, D.; and Ng, A. Y. 2016. Neural language correction with character-based attention. arXiv preprint arXiv:1603.09727 . · arXiv

Cited by

Sorted by citations

Authors
Gupta, R., Pal, S., Kanade, A., & Shevade, S.
Affiliations
Indian Institute of Science Bangalore (IN)
Venue
Proceedings of the AAAI Conference on Artificial Intelligence
Published
2017-02-12
Volume
31
Issue
1
ISSN
  • 2159-5399 (ISSN-L)
  • 2374-3468
OpenAlex
W2605202003
Cited by
426
References
2
Citations by year
2026: 16 · 2025: 38 · 2024: 50 · 2023: 66 · 2022: 53 · 2021: 62 · 2020: 49 · 2019: 54 · 2018: 28 · 2017: 10
FWCI
29.62
Type
conference paper
Language
en
Open access
Locations
  • Proceedings of the AAAI Conference on Artificial Intelligence (publishedVersion)
  • NOT FOUND REPOSITORY (Indian Institute of Science Bangalore) (acceptedVersion)
  • AAAI Publications (The Association for the Advancement of Artificial Intelligence (AAAI)) (submittedVersion)
Topics
  • Physical Sciences › Computer Science › Information Systems › Software Engineering Research
  • Physical Sciences › Computer Science › Software › Software Testing and Debugging Techniques
  • Physical Sciences › Computer Science › Computer Science Applications › Teaching and Learning Programming
Keywords
common programming errors, C programming language, sequence-to-sequence models, attention mechanism, student programming, compiler error messages

About these checks

Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.

Statistics and arithmetic are recomputed, not judged.

Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.

What counts as a claim ›How we measure confidence ›How we check this ›

Are you an author, or do you see a problem with this page? Request a review