Patching as Translation: the Data and the Metaphor
Not on the map. Why?
Abstract (arXiv)
Machine Learning models from other fields, like Computational Linguistics, have been transplanted to Software Engineering tasks, often quite successfully. Yet a transplanted model's initial success at a given task does not necessarily mean it is well-suited for the task. In this work, we examine a common example of this phenomenon: the conceit that "software patching is like language translation". We demonstrate empirically that there are subtle, but critical distinctions between sequence-to-sequence models and translation model: while program repair benefits greatly from the former, general modeling architecture, it actually suffers from design decisions built into the latter, both in terms of translation accuracy and diversity. Given these findings, we demonstrate how a more principled approach to model design, based on our empirical findings and general knowledge of software development, can lead to better solutions. Our findings also lend strong support to the recent trend towards synthesizing edits of code conditional on the buggy context, to repair bugs. We implement such models ourselves as "proof-of-concept" tools and empirically confirm that they behave in a fundamentally different, more effective way than the studied translation-based architectures. Overall, our results demonstrate the merit of studying the intricacies of machine learned models in software engineering: not only can this help elucidate potential issues that may be overshadowed by increases in accuracy; it can also help innovate on these models to raise the state-of-the-art further. We will publicly release our replication data and materials at https://github.com/ARiSE-Lab/Patch-as-translation.
Key facts. Cited by 18 papers in the map (data through 7 Oct 2026). First posted on arXiv 24 Aug 2020.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 6; 2022: 3; 2023: 4; 2024: 3; 2025: 1; 2026: 1.
18 papers.
Sort:
- 2021CURE: Code-Aware Neural Machine Translation for Automatic Program Repaircited by 85
- 2021Break-It-Fix-It: Unsupervised Learning for Program Repaircited by 71
- 2022CoditT5: Pretraining for Source Code and Natural Language Editingcited by 45
- 2024CYCLE: Learning to Self-Refine the Code Generationcited by 39
- 2023InstructCoder: Instruction Tuning Large Language Models for Code Editingcited by 28
- 2021On Multi-Modal Learning of Editing Source Codecited by 25
- 2021VELVET: a noVel Ensemble Learning approach to automatically locate VulnErable sTatementscited by 20
- 2021Towards Learning (Dis)-Similarity of Source Code from Program Contrastscited by 17
- 2022FixEval: Execution-based Evaluation of Program Fixes for Programming Problemscited by 17
- 2022Detect-Localize-Repair: A Unified Framework for Learning to Debug with CodeT5cited by 9
- 2023Multilingual Code Co-Evolution Using Large Language Modelscited by 9
- 2023Pitfalls in Language Models for Code Intelligence: A Taxonomy and Surveycited by 9
6 more
- 2021SYNFIX: Automatically Fixing Syntax Errors using Compiler Diagnosticscited by 8
- 2024Automated Program Repair: Emerging trends pose and expose problems for benchmarkscited by 7
- 2024Towards Reliable Evaluation of Neural Program Repair with Natural Robustness Testingcited by 5
- 2023ARIST: An Effective API Argument Recommendation Approachcited by 2
- 2025A Multi-Dataset Evaluation of Models for Automated Vulnerability Repaircited by 1
- 2026MobileDev-Bench: A Benchmark for Issue Resolution in Mobile Application Developmentcited by 0
- 2026MobileDev-Bench: A Benchmark for Issue Resolution in Mobile Application Development26 Mar 2026
- 2025A Multi-Dataset Evaluation of Models for Automated Vulnerability Repair5 Jun 2025
- 2024Automated Program Repair: Emerging trends pose and expose problems for benchmarks8 May 2024
- 2024CYCLE: Learning to Self-Refine the Code Generation27 Mar 2024
- 2024Towards Reliable Evaluation of Neural Program Repair with Natural Robustness Testing19 Feb 2024
- 2023InstructCoder: Instruction Tuning Large Language Models for Code Editing31 Oct 2023
- 2023Pitfalls in Language Models for Code Intelligence: A Taxonomy and Survey27 Oct 2023
- 2023Multilingual Code Co-Evolution Using Large Language Models27 Jul 2023
- 2023ARIST: An Effective API Argument Recommendation Approach11 Jun 2023
- 2022Detect-Localize-Repair: A Unified Framework for Learning to Debug with CodeT527 Nov 2022
- 2022CoditT5: Pretraining for Source Code and Natural Language Editing10 Aug 2022
- 2022FixEval: Execution-based Evaluation of Program Fixes for Programming Problems15 Jun 2022
6 more
- 2021VELVET: a noVel Ensemble Learning approach to automatically locate VulnErable sTatements20 Dec 2021
- 2021Towards Learning (Dis)-Similarity of Source Code from Program Contrasts8 Oct 2021
- 2021On Multi-Modal Learning of Editing Source Code15 Aug 2021
- 2021Break-It-Fix-It: Unsupervised Learning for Program Repair11 Jun 2021
- 2021SYNFIX: Automatically Fixing Syntax Errors using Compiler Diagnostics29 Apr 2021
- 2021CURE: Code-Aware Neural Machine Translation for Automatic Program Repair26 Feb 2021
- 2021CURE: Code-Aware Neural Machine Translation for Automatic Program Repaircited by 85
- 2021Break-It-Fix-It: Unsupervised Learning for Program Repaircited by 71
- 2022CoditT5: Pretraining for Source Code and Natural Language Editingcited by 45
- 2024CYCLE: Learning to Self-Refine the Code Generationcited by 39
- 2023InstructCoder: Instruction Tuning Large Language Models for Code Editingcited by 28
- 2021On Multi-Modal Learning of Editing Source Codecited by 25
- 2021VELVET: a noVel Ensemble Learning approach to automatically locate VulnErable sTatementscited by 20
- 2021Towards Learning (Dis)-Similarity of Source Code from Program Contrastscited by 17
- 2022FixEval: Execution-based Evaluation of Program Fixes for Programming Problemscited by 17
- 2022Detect-Localize-Repair: A Unified Framework for Learning to Debug with CodeT5cited by 9
- 2023Multilingual Code Co-Evolution Using Large Language Modelscited by 9
- 2023Pitfalls in Language Models for Code Intelligence: A Taxonomy and Surveycited by 9
12 most cited of 18 All 18 (JSON)
- 2026MobileDev-Bench: A Benchmark for Issue Resolution in Mobile Application Development26 Mar 2026
- 2025A Multi-Dataset Evaluation of Models for Automated Vulnerability Repair5 Jun 2025
- 2024Automated Program Repair: Emerging trends pose and expose problems for benchmarks8 May 2024
- 2024CYCLE: Learning to Self-Refine the Code Generation27 Mar 2024
- 2024Towards Reliable Evaluation of Neural Program Repair with Natural Robustness Testing19 Feb 2024
- 2023InstructCoder: Instruction Tuning Large Language Models for Code Editing31 Oct 2023
- 2023Pitfalls in Language Models for Code Intelligence: A Taxonomy and Survey27 Oct 2023
- 2023Multilingual Code Co-Evolution Using Large Language Models27 Jul 2023
- 2023ARIST: An Effective API Argument Recommendation Approach11 Jun 2023
- 2022Detect-Localize-Repair: A Unified Framework for Learning to Debug with CodeT527 Nov 2022
- 2022CoditT5: Pretraining for Source Code and Natural Language Editing10 Aug 2022
- 2022FixEval: Execution-based Evaluation of Program Fixes for Programming Problems15 Jun 2022
12 newest of 18 All 18 (JSON)