On Multi-Modal Learning of Editing Source Code
Not on the map. Why?
Abstract (arXiv)
In recent years, Neural Machine Translator (NMT) has shown promise in automatically editing source code. Typical NMT based code editor only considers the code that needs to be changed as input and suggests developers with a ranked list of patched code to choose from - where the correct one may not always be at the top of the list. While NMT based code editing systems generate a broad spectrum of plausible patches, the correct one depends on the developers' requirement and often on the context where the patch is applied. Thus, if developers provide some hints, using natural language, or providing patch context, NMT models can benefit from them. As a proof of concept, in this research, we leverage three modalities of information: edit location, edit code context, commit messages (as a proxy of developers' hint in natural language) to automatically generate edits with NMT models. To that end, we build MODIT, a multi-modal NMT based code editing engine. With in-depth investigation and analysis, we show that developers' hint as an input modality can narrow the search space for patches and outperform state-of-the-art models to generate correctly patched code in top-1 position.
Key facts. Cited by 25 papers in the map (data through 7 Oct 2026). Builds on 36 of its 59 references that are in the map. First posted on arXiv 15 Aug 2021.
Builds on
36 of 59 references.
References · 36
- 2017Attention Is All You Needcited by 59,932
- 2019RoBERTa: A Robustly Optimized BERT Pretraining Approachcited by 13,266
- 2019BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehensioncited by 5,874
- 2014Neural Machine Translation by Jointly Learning to Align and Translatecited by 4,530
- 2015Neural Machine Translation of Rare Words with Subword Unitscited by 2,898
- 2018SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processingcited by 1,973
- 2020CodeBERT: A Pre-Trained Model for Programming and Natural Languagescited by 1,286
- 2019When Does Label Smoothing Help?cited by 985
- 2021CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generationcited by 732
- 2019Unified Language Model Pre-training for Natural Language Understanding and Generationcited by 668
- 2020GraphCodeBERT: Pre-training Code Representations with Data Flowcited by 600
- 2021Unified Pre-training for Program Understanding and Generationcited by 361
24 more
- 2019Devign: Effective Vulnerability Identification by Learning Comprehensive Program Semantics via Graph Neural Networkscited by 266
- 2018code2vec: Learning Distributed Representations of Codecited by 249
- 2020IntelliCode Compose: Code Generation Using Transformercited by 225
- 2018SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repaircited by 144
- 2020Deep Learning based Vulnerability Detection: Are We There Yet?cited by 142
- 2020A Transformer-based Approach for Source Code Summarizationcited by 129
- 2018An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translationcited by 106
- 2021CURE: Code-Aware Neural Machine Translation for Automatic Program Repaircited by 85
- 2020Code Prediction by Feeding Trees to Transformerscited by 70
- 2020Detecting Code Clones with Graph Neural Networkand Flow-Augmented Abstract Syntax Treecited by 68
- 2019Code Generation as a Dual Task of Code Summarizationcited by 62
- 2021Towards Automating Code Review Activitiescited by 54
- 2020Big Code != Big Vocabulary: Open-Vocabulary Models for Source Codecited by 53
- 2019On Learning Meaningful Code Changes via Neural Machine Translationcited by 50
- 2018CODIT: Code Editing with Tree-Based Neural Modelscited by 40
- 2015On the "Naturalness" of Buggy Codecited by 35
- 2019How Often Do Single-Statement Bugs Occur? The ManySStuBs4J Datasetcited by 35
- 2019Learning and Evaluating Contextual Embedding of Source Codecited by 33
- 2019Learning to Fix Build Errors with Graph2Diff Neural Networkscited by 26
- 2020Patching as Translation: the Data and the Metaphorcited by 18
- 2016Learning Syntactic Program Transformations from Examplescited by 17
- 2021Learning Structural Edits via Incremental Tree Transformationscited by 16
- 2018Building Language Models for Text with Named Entitiescited by 15
- 2021Modular Tree Network for Source Code Representation Learningcited by 8
Built on by
Citing papers per year: 2021: 2; 2022: 5; 2023: 11; 2024: 3; 2025: 3; 2026: 1.
25 papers.
Sort:
By area:
- 2023SWE-bench: Can Language Models Resolve Real-World GitHub Issues?cited by 3,193
- 2024Lingma SWE-GPT: An Open Development-Process-Centric Language Model for Automated Software Improvementcited by 57
- 2022NatGen: Generative pre-training by "Naturalizing" source codecited by 53
- 2022CoditT5: Pretraining for Source Code and Natural Language Editingcited by 45
- 2023Learning Deep Semantics for Test Completioncited by 31
- 2023Better patching using LLM prompting, via Self-Consistencycited by 29
- 2021A Survey on Machine Learning Techniques for Source Code Analysiscited by 23
- 2024Unsupervised Evaluation of Code LLMs with Round-Trip Correctnesscited by 23
- 2023Deep Learning for Code Intelligence: Survey, Benchmark and Toolkitcited by 22
- 2023ITER: Iterative Neural Repair for Multi-Location Patchescited by 16
- 2023GrACE: Generation using Associated Code Editscited by 16
- 2023Towards Generating Functionally Correct Code Edits from Natural Language Issue Descriptionscited by 14
13 more
- 2024CigaR: Cost-efficient Program Repair with LLMscited by 14
- 2022CodeEditor: Learning to Edit Source Code with Pre-trained Modelscited by 12
- 2023Multilingual Code Co-Evolution Using Large Language Modelscited by 9
- 2023Automating Code-Related Tasks Through Transformers: The Impact of Pre-trainingcited by 8
- 2023LExecutor: Learning-Guided Executioncited by 7
- 2022CommitBART: A Large Pre-trained Model for GitHub Commitscited by 6
- 2021Learning to Describe Solutions for Bug Reports Based on Developer Discussionscited by 5
- 2023Do Language Models Learn Semantics of Code? A Case Study in Vulnerability Detectioncited by 4
- 2022Using Developer Discussions to Guide Fixing Bugs in Softwarecited by 3
- 2025Next Edit Prediction: Learning to Predict Code Edits from Context and Interaction Historycited by 2
- 2025DSBC : Data Science task Benchmarking with Context engineeringcited by 1
- 2025Smart Paste: Automatically Fixing Copy/Paste for Google Developerscited by 0
- 2026On the Impact of Code Comments for Automated Bug-Fixing: An Empirical Studycited by 0
- 2026On the Impact of Code Comments for Automated Bug-Fixing: An Empirical Study30 Jan 2026
- 2025Smart Paste: Automatically Fixing Copy/Paste for Google Developers4 Oct 2025
- 2025Next Edit Prediction: Learning to Predict Code Edits from Context and Interaction History13 Aug 2025
- 2025DSBC : Data Science task Benchmarking with Context engineering31 Jul 2025
- 2024Lingma SWE-GPT: An Open Development-Process-Centric Language Model for Automated Software Improvement1 Nov 2024
- 2024Unsupervised Evaluation of Code LLMs with Round-Trip Correctness13 Feb 2024
- 2024CigaR: Cost-efficient Program Repair with LLMs9 Feb 2024
- 2023Deep Learning for Code Intelligence: Survey, Benchmark and Toolkit30 Dec 2023
- 2023Do Language Models Learn Semantics of Code? A Case Study in Vulnerability Detection7 Nov 2023
- 2023SWE-bench: Can Language Models Resolve Real-World GitHub Issues?10 Oct 2023
- 2023Multilingual Code Co-Evolution Using Large Language Models27 Jul 2023
- 2023Better patching using LLM prompting, via Self-Consistency31 May 2023
13 more
- 2023GrACE: Generation using Associated Code Edits23 May 2023
- 2023ITER: Iterative Neural Repair for Multi-Location Patches24 Apr 2023
- 2023Towards Generating Functionally Correct Code Edits from Natural Language Issue Descriptions7 Apr 2023
- 2023Learning Deep Semantics for Test Completion20 Feb 2023
- 2023Automating Code-Related Tasks Through Transformers: The Impact of Pre-training8 Feb 2023
- 2023LExecutor: Learning-Guided Execution5 Feb 2023
- 2022Using Developer Discussions to Guide Fixing Bugs in Software11 Nov 2022
- 2022CodeEditor: Learning to Edit Source Code with Pre-trained Models31 Oct 2022
- 2022CommitBART: A Large Pre-trained Model for GitHub Commits17 Aug 2022
- 2022CoditT5: Pretraining for Source Code and Natural Language Editing10 Aug 2022
- 2022NatGen: Generative pre-training by "Naturalizing" source code15 Jun 2022
- 2021A Survey on Machine Learning Techniques for Source Code Analysis18 Oct 2021
- 2021Learning to Describe Solutions for Bug Reports Based on Developer Discussions8 Oct 2021
- 2023Better patching using LLM prompting, via Self-Consistencycited by 29
- 2023Better patching using LLM prompting, via Self-Consistency31 May 2023
- 2023SWE-bench: Can Language Models Resolve Real-World GitHub Issues?cited by 3,193
- 2022NatGen: Generative pre-training by "Naturalizing" source codecited by 53
- 2022CoditT5: Pretraining for Source Code and Natural Language Editingcited by 45
- 2023Learning Deep Semantics for Test Completioncited by 31
- 2021A Survey on Machine Learning Techniques for Source Code Analysiscited by 23
- 2024Unsupervised Evaluation of Code LLMs with Round-Trip Correctnesscited by 23
- 2023Deep Learning for Code Intelligence: Survey, Benchmark and Toolkitcited by 22
- 2023ITER: Iterative Neural Repair for Multi-Location Patchescited by 16
- 2023GrACE: Generation using Associated Code Editscited by 16
- 2023Towards Generating Functionally Correct Code Edits from Natural Language Issue Descriptionscited by 14
- 2024CigaR: Cost-efficient Program Repair with LLMscited by 14
- 2022CodeEditor: Learning to Edit Source Code with Pre-trained Modelscited by 12
12 most cited of 22 All 22 (JSON)
- 2026On the Impact of Code Comments for Automated Bug-Fixing: An Empirical Study30 Jan 2026
- 2025Smart Paste: Automatically Fixing Copy/Paste for Google Developers4 Oct 2025
- 2025Next Edit Prediction: Learning to Predict Code Edits from Context and Interaction History13 Aug 2025
- 2024Unsupervised Evaluation of Code LLMs with Round-Trip Correctness13 Feb 2024
- 2024CigaR: Cost-efficient Program Repair with LLMs9 Feb 2024
- 2023Deep Learning for Code Intelligence: Survey, Benchmark and Toolkit30 Dec 2023
- 2023Do Language Models Learn Semantics of Code? A Case Study in Vulnerability Detection7 Nov 2023
- 2023SWE-bench: Can Language Models Resolve Real-World GitHub Issues?10 Oct 2023
- 2023Multilingual Code Co-Evolution Using Large Language Models27 Jul 2023
- 2023GrACE: Generation using Associated Code Edits23 May 2023
- 2023ITER: Iterative Neural Repair for Multi-Location Patches24 Apr 2023
- 2023Towards Generating Functionally Correct Code Edits from Natural Language Issue Descriptions7 Apr 2023
12 newest of 22 All 22 (JSON)