Deep Reinforcement Learning for Programming Language Correction
By Rahul Gupta, Aditya Kanade, Shirish K. Shevade. 2018
34 citations recorded by the source corpus.
Novice programmers often struggle with the formal syntax of programming languages. To assist them, we design a novel programming language correction framework amenable to reinforcement learning. The framework allows an agent to mimic human actions for text navigation and editing. We demonstrate that the agent can be trained through self-exploration directly from the raw input, that is, program text itself, without any knowledge of the formal syntax of the programming language. We leverage expert demonstrations for one tenth of the training data to accelerate training. The proposed technique is evaluated on 6975 erroneous C programs with typographic errors, written by students during an introductory programming course. Our technique fixes 14% more programs and 29% more compiler error messages relative to those fixed by a state-of-the-art tool, DeepFix, which uses a fully supervised neural machine translation approach.
Subfields: Artificial Intelligence, Control and Systems Engineering, Information Systems, Natural Language Processing, Reinforcement Learning
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Michihiro Yasunaga
- Percy Liang
- Mario Fritz
- Michele Tufano
- Hossein Hajipour
- Aditya Kanade
- Denys Poshyvanyk
- Luke S. Zettlemoyer
In Control and Systems Engineering
In Information Systems
- Michihiro Yasunaga
- Percy Liang
- Michele Tufano
- Denys Poshyvanyk
- Gabriele Bavota
- Mario Fritz
- Aditya Kanade
- Hossein Hajipour
In Natural Language Processing
- Michihiro Yasunaga
- Percy Liang
- Mario Fritz
- Michele Tufano
- Gabriele Bavota
- Denys Poshyvanyk
- Aditya Kanade
- Massimiliano Di Penta
In Reinforcement Learning
- Michihiro Yasunaga
- Percy Liang
- Mario Fritz
- Shirish K. Shevade
- Rahul Gupta
- Aditya Kanade
- Hossein Hajipour
Citations in the corpus
- Break-It-Fix-It: Unsupervised Learning for Program Repair (2021, background): “As labeled data is costly to prepare, various works study learning code fixers from unlabeled or synthetic data (Pu et al., 2016; Parihar et al., 2017; Ahmed et al., 2018; Pradel & Sen, 2018; Wang et al., 2018; Vasic et al., 2019; Gupta et al., 2019; Hajipour et al., 2019; Hellendoorn et al., 2020).”
- Graph-based, Self-Supervised Program Repair from Diagnostic Feedback (2020, methodology): “RLAssist (Gupta et al., 2019b), SampleFix (Hajipour et al., 2019) improve on it by introducing reinforcement learning or better sampling methods.”
- A Survey of Machine Learning for Big Code and Naturalness (2017, neutral): “[80] Tokens Code Fix Distributed Code Fixing”
- An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation (2018, background): “arn task-specific repair strategies [8, 66]. This goal has been achieved successfully in contexts such as in massively open online courses (MOOC), where the programs are generally small and synthetic [27]. Finally, one of the first approaches able to learn code transformation templates from humanwri”
- Neural Attribution for Semantic Bug-Localization in Student Programs (2019, background): “Several recent works proposed deep learning based techniques for automated syntactic error repair in student programs [11, 6, 3, 13].”
- SampleFix: Learning to Correct Programs by Sampling Diverse Fixes (2019, background): “RLAssist repairs the programs by employing a reinforcement learning approach.”