ePrints@IIScePrints@IISc Home | About | Browse | Latest Additions | Advanced Search | Contact | Help

DeepFix: Fixing Common C language errors by deep learning

Gupta, R and Pal, S and Kanade, A and Shevade, S (2017) DeepFix: Fixing Common C language errors by deep learning. In: 31st AAAI Conference on Artificial Intelligence, AAAI 2017, 4 - 10 February 2017, San Francisco, pp. 1345-1351.

[img] PDF
AAAI 2017_1345-1351_2017.pdf - Published Version
Restricted to Registered users only

Download (694kB) | Request a copy
Official URL: https://doi.org/10.1609/aaai.v31i1.10742


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.

Item Type: Conference Paper
Publication: 31st AAAI Conference on Artificial Intelligence, AAAI 2017
Publisher: AAAI press
Additional Information: The copyright for this article belongs to the AAAI press.
Keywords: Artificial intelligence; Costs; Deep learning; Education; Errors; Problem oriented languages; Software engineering, Attention to details; End-to-end solutions; External tools; Grammatical errors; Natural languages; Programming errors; Programming tasks; Research topics, C (programming language)
Department/Centre: Division of Electrical Sciences > Computer Science & Automation
Date Deposited: 22 Jul 2022 11:50
Last Modified: 22 Jul 2022 11:50
URI: https://eprints.iisc.ac.in/id/eprint/74745

Actions (login required)

View Item View Item