The DOI matches its Crossref record; 11 of the 11 references it cites were found in a registry or an index.
CURE: Code-Aware Neural Machine Translation for Automatic Program Repair
Open accessAbstract
Automatic program repair (APR) is crucial to improve software reliability. Recently, neural machine translation (NMT) techniques have been used to automatically fix software bugs. While promising, these approaches have two major limitations. Their search space often does not contain the correct fix, and their search strategy ignores software knowledge such as strict code syntax. Due to these limitations, existing NMT-based techniques underperform the best template-based approaches. We propose CURE, a new NMT-based APR technique with three major novelties. First, CURE pre-trains a programming language (PL) model on a large software codebase to learn developer-like source code before the APR task. Second, CURE designs a new code-aware search strategy that finds more correct fixes by focusing on searching for compilable patches and patches that are close in length to the buggy code. Finally, CURE uses a subword tokenization technique to generate a smaller search space that contains more correct fixes. Our evaluation on two widely-used benchmarks shows that CURE correctly fixes 57 Defects4J bugs and 26 QuixBugs bugs, outperforming all existing APR techniques on both benchmarks.
Overview
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.
Integrity signals
Registry
Cites
Statistics
Verification
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.
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Citations
Cites
Convolutional Sequence to Sequence Learning
Gehring, J., Auli, M., Grangier, D., Yarats, D., & Dauphin, Y. N. (2017) · arXiv · doi:10.48550/arxiv.1705.03122 · Cited by 2,850
Defects4J: a database of existing faults to enable controlled testing studies for Java programs
Just, R., Jalali, D., & Ernst, M. D. (2014) · Proceedings of the 2014 International Symposium on Software Testing and Analysis · doi:10.1145/2610384.2628055 · Cited by 1,447
Neural Machine Translation of Rare Words with Subword Units
Sennrich, R., Haddow, B., & Birch, A. (2016) · Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) · doi:10.18653/v1/p16-1162 · Cited by 974
Neural Machine Translation of Rare Words with Subword Units
Sennrich, R., Haddow, B., & Birch, A. (2015) · arXiv · doi:10.48550/arxiv.1508.07909 · Cited by 950
An analysis of patch plausibility and correctness for generate-and-validate patch generation systems
Qi, Z., Long, F., Achour, S., & Rinard, M. (2015) · Proceedings of the 2015 International Symposium on Software Testing and Analysis · doi:10.1145/2771783.2771791 · Cited by 420
An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation
Tufano, M., Watson, C., Bavota, G., Penta, M. D., White, M., & Poshyvanyk, D. (2019) · ACM Transactions on Software Engineering and Methodology · doi:10.1145/3340544 · Cited by 370
Shaping program repair space with existing patches and similar code
Jiang, J., Xiong, Y., Zhang, H., Gao, Q., & Chen, X. (2018) · Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis · doi:10.1145/3213846.3213871 · Cited by 329
Latent Predictor Networks for Code Generation
Ling, W., Blunsom, P., Grefenstette, E., Hermann, K. M., Kočiský, T., Wang, F., & Senior, A. (2016) · Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) · doi:10.18653/v1/p16-1057 · Cited by 307
Are deep neural networks the best choice for modeling source code?
Hellendoorn, V. J., & Devanbu, P. (2017) · Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering · doi:10.1145/3106237.3106290 · Cited by 292
Multi-task Learning based Pre-trained Language Model for Code Completion
Liu, F., Li, G., Zhao, Y., & Jin, Z. (2020) · Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering · doi:10.1145/3324884.3416591 · Cited by 188
Research works printed but not linked: 78
- murali, 2018, Neural Sketch Learning for Conditional Program Generation, ICLRE
- wang, 2017, Software reliability prediction using a deep learning model based on the RNN encoder–decoder, RESS
- 10.1109/QRS.2017.42 · DOI · Paper page
- 10.1145/3212695 · DOI · Paper page
- radford, 2019, Language Models are Unsupervised Multitask Learners, OpenAIRE blog, 1, 9
- 10.1109/MSR.2015.38 · DOI
- 10.1109/TSE.2020.3020502 · DOI
- 10.1145/3290353 · DOI · Paper page
- 10.1145/3293882.3330577 · DOI · Paper page
- 10.1613/jair.1.12007 · DOI · Paper page
- sutskever, 2014, Sequence to Sequence Learning with Neural Networks, NeurIPS, 3104
- radford, 2018, Improving Language Understanding by Generative Pre-Training, OpenAIRE blog
- vaswani, 2017, Attention Is All You Need, NeurIPS, 5998
- 10.1109/ICCIS.2013.490 · doi:10.1109/iccis.2013.490
- dinella, 2019, Hoppity: Learning Graph Transformations to Detect and Fix Bugs in Programs, ICLRE
- 10.1109/ICSME.2019.00050 · DOI
- tian, 2020, Evaluating Representation Learning of Code Changes for Predicting Patch Correctness in Program Repair, ASE
- 10.1145/3385412.3386005 · DOI
- 10.18653/v1/D19-5611 · DOI
- ghanbari, 2019, Practical Program Repair via Bytecode Mutation, ISSTA
- ding, 2020, Patching as Translation: the Data and the Metaphor, ASE
- 10.1145/3180155.3180167 · DOI · Paper page
- skorokhodov, 2018, Semi-Supervised Neural Machine Translation with Language Models, LoResMT AMTA, 37
- allamanis, 2016, A Convolutional Attention Network for Extreme Summarization of Source Code, ICML, 2091
- 10.1145/2970276.2970326 · DOI · Paper page
- 10.1109/ICSME.2017.46 · DOI
- 10.1145/2786805.2786811 · DOI · Paper page
- 10.1109/TSE.2011.104 · DOI · Paper page
- 10.1109/TSE.2019.2940179 · DOI · Paper page
- santos, 2017, Finding and Correcting Syntax Errors Using Recurrent Neural Networks, PeerJ PrePrints, 5, e3123v1
- 10.1145/3338906.3340455 · DOI
- gupta, 2017, Deepfix: Fixing Common C Language Errors by Deep Learning, AAAI, 1345
- 10.1145/2884781.2884872 · DOI · Paper page
- 10.1145/3238147.3240732 · DOI
- 10.1109/TSE.2018.2874648 · DOI
- 10.1007/978-3-319-99241-9_3 · DOI
- 10.1109/SANER.2019.8667991 · DOI
- 10.1145/3196398.3196473 · DOI · Paper page
- 10.1145/3377811.3380338 · DOI
- 10.1109/APSEC.2018.00085 · DOI
- 10.1007/s10664-019-09780-z · DOI · Paper page
- 10.1109/SANER.2019.8667970 · DOI · Paper page
- 10.1109/ICST.2019.00020 · DOI
- 10.1145/2896921.2896931 · DOI
- 10.1145/3236024.3264600 · DOI
- 10.1145/3106237.3106274 · DOI
- 10.1145/3180155.3180233 · DOI · Paper page
- 10.1109/SANER.2018.8330202 · DOI
- 10.1109/ASE.2017.8115674 · DOI
- 10.1109/SANER.2016.76 · DOI · Paper page
- 10.1109/TSE.2020.2979701 · DOI
- 10.1109/ICSE.2013.6606626 · DOI · Paper page
- henkel, 2018, Code Vectors: Under-standing Programs through Embedded Abstracted Symbolic Traces, ESEC/FSE, 163
- 10.1145/2884781.2884804 · DOI · Paper page
- 10.1007/978-3-030-36808-1_42 · DOI
- 10.1145/3377811.3380345 · DOI · Paper page
- 10.1145/3377811.3380361 · DOI · Paper page
- 10.1145/3395363.3397369 · DOI · Paper page
- alon, 2019, code2seq: Generating Sequences from Structured Representations of Code, ICLRE
- 10.1109/ASE.2019.00062 · DOI
- 10.1145/2568225.2568257 · DOI
- 10.1109/ASE.2017.8115675 · DOI · Paper page
- 10.1145/2931037.2948705 · DOI
- 10.1109/TSE.2016.2560811 · DOI · Paper page
- 10.1145/3385412.3385999 · DOI
- 10.1109/ASE.2017.8115676 · DOI
- wang, 2020, Learning Semantic Program Embeddings with Graph Interval Neural Network, ACM OOPSLA
- 10.1145/3106237.3106253 · DOI · Paper page
- 10.1007/978-3-030-58923-3_15 · DOI
- 10.1109/ASE.2019.00011 · DOI
- 10.1109/ICSE.2017.45 · DOI · Paper page
- 10.18653/v1/N19-4009 · DOI · Paper page
- wolf, 2020, Hugging-Face’s Transformers: State-of-the-art Natural Language Processing, EMNLP
- saha, 2019, Harnessing Evolution for MultiHunk Program Repair, ICSE IEEE, 13
- 10.1145/3135932.3135941 · DOI · Paper page
- 10.1109/MSR.2012.6224294 · DOI · Paper page
- 10.1109/ICSE.2015.139 · DOI · Paper page
- kingma, 2015, Adam: A Method for Stochastic Optimization, ICLRE
Cited by
Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions
Pearce, H., Ahmad, B., Tan, B., Dolan-Gavitt, B., & Karri, R. (2022) · 2022 IEEE Symposium on Security and Privacy (SP) · doi:10.1109/sp46214.2022.9833571 · Cited by 476
Automated Program Repair in the Era of Large Pre-trained Language Models
Xia, C. S., Wei, Y., & Zhang, L. (2023) · 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE) · doi:10.1109/icse48619.2023.00129 · Cited by 433
Automated Repair of Programs from Large Language Models
Fan, Z., Gao, X., Mirchev, M., Roychoudhury, A., & Tan, S. H. (2023) · 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE) · doi:10.1109/icse48619.2023.00128 · Cited by 256
Impact of Code Language Models on Automated Program Repair
Jiang, N., Liu, K., Lutellier, T., & Tan, L. (2023) · 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE) · doi:10.1109/icse48619.2023.00125 · Cited by 202
Self-citationInferFix: End-to-End Program Repair with LLMs
Jin, M., Shahriar, S., Tufano, M., Shi, X., Lu, S., Sundaresan, N., & Svyatkovskiy, A. (2023) · Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3611643.3613892 · Cited by 191
Metadata
- Authors
- Jiang, N., Lutellier, T., & Tan, L.
- Venue
- 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE)
- Publisher
- IEEE
- Published
- 2021-05
- Pages
- 1161-1173
- OpenAlex
- W3134686229
- Cited by
- 290
- References
- 11
- FWCI
- 38.27
- Type
- conference paper
- Language
- en
- Open access
- green
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
How to cite
Cite CoChat for the checks on this page, and the paper for its own findings.
- This page
- CoChat. (2026). Citation check: CURE: Code-Aware Neural Machine Translation for Automatic Program Repair. https://app.cochat.ai/papers/10.1109/icse43902.2021.00107
- The paper
- Jiang, N., Lutellier, T., & Tan, L. (2021). CURE: Code-Aware Neural Machine Translation for Automatic Program Repair. 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE). https://doi.org/10.1109/icse43902.2021.00107
Data sources
Bibliographic data: Semantic Scholar, OpenAlex, Crossref.
Contains information from the Semantic Scholar Academic Graph Datasets, made available under the ODC Attribution License (ODC-BY 1.0).
Semantic Scholar’s data is described in: Kinney, R., et al. (2023). The Semantic Scholar Open Data Platform. arXiv:2301.10140.