{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,2]],"date-time":"2026-05-02T06:57:16Z","timestamp":1777705036941,"version":"3.51.4"},"reference-count":47,"publisher":"SAGE Publications","issue":"4","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["IFS"],"published-print":{"date-parts":[[2024,4,18]]},"abstract":"<jats:p>Automatic program repair (APR) is crucial to improve software quality. Recently, neural machine translation (NMT) based modeling for bug fixes has demonstrated great potential. However, these approaches still have two major challenges. One is that their search space is limited due to the out-of-vocabulary (OOV) problem. The other is that the NMT-based APR models tend to ignore past translation information, which often leads to over-translation and under-translation. To address the above challenges, we propose MNRepair, a new NMT-based APR approach that combines multiple mechanisms to fix bugs in source code. Specifically, we devise an encoder-decoder NMT framework with the attention mechanism. Our framework combines the copy mechanism to overcome the OOV problem that occurs with source code. To deal with the over-translation and under-translation, we utilize a coverage mechanism to record past translation information. MNRepair is able to capture a wide range of repair operators and fix 26 bugs in Defects4J. Our evaluation shows the effectiveness of multiple mechanisms in the repair process.<\/jats:p>","DOI":"10.3233\/jifs-234037","type":"journal-article","created":{"date-parts":[[2024,2,16]],"date-time":"2024-02-16T10:43:45Z","timestamp":1708080225000},"page":"7859-7873","source":"Crossref","is-referenced-by-count":1,"title":["Multi-mechanism neural machine translation framework for automatic program repair"],"prefix":"10.1177","volume":"46","author":[{"given":"Heling","family":"Cao","sequence":"first","affiliation":[{"name":"College of Information Science and Engineering, Henan University of Technology, Zhengzhou, China"},{"name":"Henan International Joint Laboratory of Grain Information Processing, Henan University of Technology, Zhengzhou, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dong","family":"Han","sequence":"additional","affiliation":[{"name":"College of Information Science and Engineering, Henan University of Technology, Zhengzhou, China"},{"name":"Henan International Joint Laboratory of Grain Information Processing, Henan University of Technology, Zhengzhou, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yonghe","family":"Chu","sequence":"additional","affiliation":[{"name":"College of Information Science and Engineering, Henan University of Technology, Zhengzhou, China"},{"name":"Henan International Joint Laboratory of Grain Information Processing, Henan University of Technology, Zhengzhou, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Fangchao","family":"Tian","sequence":"additional","affiliation":[{"name":"College of Information Science and Engineering, Henan University of Technology, Zhengzhou, China"},{"name":"Henan International Joint Laboratory of Grain Information Processing, Henan University of Technology, Zhengzhou, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yun","family":"Wang","sequence":"additional","affiliation":[{"name":"College of Information Science and Engineering, Henan University of Technology, Zhengzhou, China"},{"name":"Henan International Joint Laboratory of Grain Information Processing, Henan University of Technology, Zhengzhou, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yu","family":"Liu","sequence":"additional","affiliation":[{"name":"College of Information Science and Engineering, Henan University of Technology, Zhengzhou, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Junliang","family":"Jia","sequence":"additional","affiliation":[{"name":"Henan Kingsource Information Technology, Zhengzhou, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Haoyang","family":"Ge","sequence":"additional","affiliation":[{"name":"College of Information Science and Engineering, Henan University of Technology, Zhengzhou, China"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"179","reference":[{"issue":"1","key":"10.3233\/JIFS-234037_ref1","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3105906","article-title":"Automatic software repair: A bibliography[J]","volume":"51","author":"Monperrus","year":"2018","journal-title":"ACM Computing Surveys"},{"issue":"1","key":"10.3233\/JIFS-234037_ref2","doi-asserted-by":"crossref","first-page":"54","DOI":"10.1109\/TSE.2011.104","article-title":"GenProg: A generic method for automatic software repair[J]","volume":"38","author":"Le Goues","year":"2012","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10.3233\/JIFS-234037_ref3","doi-asserted-by":"crossref","first-page":"772","DOI":"10.1109\/ICSE.2013.6606623","article-title":"SemFix: Program repair via semantic analysis[C]","author":"Nguyen","year":"2013","journal-title":"Proceedings of the 2013 35th International Conference on Software Engineering (ICSE)"},{"key":"10.3233\/JIFS-234037_ref4","doi-asserted-by":"crossref","first-page":"802","DOI":"10.1109\/ICSE.2013.6606626","article-title":"Automatic patch generation learned from human-written patches[C]","author":"Kim","year":"2013","journal-title":"Proceedings of the 2013 35th International Conference on Software Engineering (ICSE)"},{"key":"10.3233\/JIFS-234037_ref5","first-page":"3104","article-title":"Sequence to sequence learning with neural networks[C]","author":"Sutskever","year":"2014","journal-title":"Proceedings of the 27th International Conference on Neural Information Processing Systems (NIPS)"},{"key":"10.3233\/JIFS-234037_ref6","first-page":"789","article-title":"Neural machine translation by jointly learning to align and translate[C]","author":"Bahdanau","year":"2015","journal-title":"Proceedings of the 3rd International Conference on Learning Representations (ICLR)"},{"key":"10.3233\/JIFS-234037_ref7","first-page":"1345","article-title":"DeepFix: Fixing common c language errors by deep learning[C]","author":"Gupta","year":"2017","journal-title":"Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence (AAAI)"},{"issue":"4","key":"10.3233\/JIFS-234037_ref8","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3340544","article-title":"An empirical study on learning bug-fixing patches in the wild via neural machine translation[J]","volume":"28","author":"Tufano","year":"2019","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"issue":"9","key":"10.3233\/JIFS-234037_ref9","first-page":"1943","article-title":"SequenceR: Sequence-to-sequence learning for end-to-end program repair[J]","volume":"47","author":"Chen","year":"2019","journal-title":"IEEE Transactions on Software Engineering"},{"issue":"8","key":"10.3233\/JIFS-234037_ref10","first-page":"457","article-title":"Codit: Code editing with tree-based neural models[J]","volume":"46","author":"Chakraborty","year":"2019","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10.3233\/JIFS-234037_ref11","doi-asserted-by":"crossref","first-page":"1631","DOI":"10.18653\/v1\/P16-1154","article-title":"Incorporating copying mechanism in sequence-to-sequence learning[C]","author":"Gu","year":"2016","journal-title":"Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (ACL)"},{"key":"10.3233\/JIFS-234037_ref12","doi-asserted-by":"crossref","first-page":"1073","DOI":"10.18653\/v1\/P17-1099","article-title":"Get to the point: Summarization with pointer-generator networks[C]","author":"See","year":"2017","journal-title":"Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (ACL)"},{"key":"10.3233\/JIFS-234037_ref13","doi-asserted-by":"crossref","first-page":"76","DOI":"10.18653\/v1\/P16-1008","article-title":"Modeling coverage for neural machine translation[C]","author":"Tu","year":"2016","journal-title":"Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (ACL)"},{"key":"10.3233\/JIFS-234037_ref14","doi-asserted-by":"crossref","first-page":"437","DOI":"10.1145\/2610384.2628055","article-title":"Defects4J: A database of existing faults to enable controlled testing studies for java programs[C]","author":"Just","year":"2014","journal-title":"Proceedings of the 2014 International Symposium on Software Testing and Analysis (ISSTA)"},{"key":"10.3233\/JIFS-234037_ref15","first-page":"1724","article-title":"Learning phraserepresentations using RNN encoder-decoder for statistical machinetranslation[C]","author":"Cho","year":"2014","journal-title":"Proceedings of the Conference on EmpiricalMethods in Natural Language Processing(EMNLP)"},{"key":"10.3233\/JIFS-234037_ref16","doi-asserted-by":"crossref","first-page":"39","DOI":"10.1109\/PRDC.2006.18","article-title":"Gemund, An evaluation of similarity coefficients for software fault localization[C]","author":"Abreu","year":"2006","journal-title":"Proceedings of the 2006 12th Pacific Rim International Symposium on Dependable Computing (PRDC)"},{"key":"10.3233\/JIFS-234037_ref17","first-page":"89","article-title":"Gemund, On the accuracy of spectrum-based fault localization[C]","author":"Abreu","year":"2007","journal-title":"Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques-MUTATION (TAICPART-MUTATION)"},{"key":"10.3233\/JIFS-234037_ref18","doi-asserted-by":"crossref","first-page":"213","DOI":"10.1109\/SANER.2016.76","article-title":"Goues, History driven program repair[C]","author":"Le","year":"2016","journal-title":"Proceedings of the 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER)"},{"key":"10.3233\/JIFS-234037_ref19","doi-asserted-by":"crossref","first-page":"660","DOI":"10.1109\/ASE.2017.8115676","article-title":"Leveraging syntax-related code for automated program repair[C]","author":"Xin","year":"2017","journal-title":"Proceedings of the 2017 32nd IEEE\/ACM International Conference on Automated Software Engineering (ASE)"},{"key":"10.3233\/JIFS-234037_ref20","doi-asserted-by":"crossref","first-page":"416","DOI":"10.1109\/ICSE.2017.45","article-title":"Precise condition synthesis for program repair[C]","author":"Xiong","year":"2017","journal-title":"Proceedings of the 2017 IEEE\/ACM 39th International Conference on Software Engineering (ICSE)"},{"key":"10.3233\/JIFS-234037_ref21","first-page":"1","article-title":"Context-aware patch generation for better automated program repair[C]","author":"Wen","year":"2018","journal-title":"Proceedings of the 2018 IEEE\/ACM 40th International Conference on Software Engineering (ICSE)"},{"key":"10.3233\/JIFS-234037_ref22","doi-asserted-by":"crossref","first-page":"658","DOI":"10.1109\/APSEC.2018.00085","article-title":"LSRepair: Live search of fix ingredients for automated program repair[C]","author":"Liu","year":"2018","journal-title":"Proceedings of the 2018 25th Asia-Pacific Software Engineering Conference (APSEC)"},{"issue":"1","key":"10.3233\/JIFS-234037_ref23","doi-asserted-by":"crossref","first-page":"34","DOI":"10.1109\/TSE.2016.2560811","article-title":"Nopol: Automatic repair of conditional statement bugs in java programs[J]","volume":"43","author":"Xuan","year":"2017","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10.3233\/JIFS-234037_ref24","first-page":"12","article-title":"Towards practical program repair with on-demand candidate generation[C]","author":"Hua","year":"2018","journal-title":"Proceedings of the 2018 IEEE\/ACM 40th International Conference on Software Engineering (ICSE)"},{"issue":"4","key":"10.3233\/JIFS-234037_ref25","doi-asserted-by":"crossref","first-page":"1936","DOI":"10.1007\/s10664-016-9470-4","article-title":"Automatic repair of real bugs in java: A large-scale experiment on the defects4j dataset[J]","volume":"22","author":"Martinez","year":"2017","journal-title":"Empirical Software Engineering"},{"issue":"4","key":"10.3233\/JIFS-234037_ref26","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3340544","article-title":"An empirical study on learning bug-fixing patches in the wild via neural machine translation[J]","volume":"28","author":"Tufano","year":"2019","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"10.3233\/JIFS-234037_ref28","first-page":"215","article-title":"The GZoltar project: A graphical debugger interface[C]","author":"Riboira","year":"2010","journal-title":"Proceedings of the International Academic and Industrial Conference on Practice and Research Techniques (TAIC PART)"},{"key":"10.3233\/JIFS-234037_ref29","doi-asserted-by":"crossref","first-page":"191","DOI":"10.1145\/2483760.2483785","article-title":"Using automated program repair for evaluating the effectiveness of fault localization techniques[C]","author":"Qi","year":"2013","journal-title":"Proceedings of the 2013 International Symposium on Software Testing and Analysis (ISSTA)"},{"key":"10.3233\/JIFS-234037_ref30","doi-asserted-by":"crossref","first-page":"637","DOI":"10.1109\/ASE.2017.8115674","article-title":"Contract-based program repair without the contracts[C]","author":"Chen","year":"2017","journal-title":"Proceedings of the 2017 32nd IEEE\/ACM International Conference on Automated Software Engineering (ASE)"},{"key":"10.3233\/JIFS-234037_ref31","doi-asserted-by":"crossref","first-page":"19","DOI":"10.1145\/3293882.3330559","article-title":"Practical program repair via bytecode mutation[C]","author":"Ghanbari","year":"2019","journal-title":"Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)"},{"issue":"10","key":"10.3233\/JIFS-234037_ref33","doi-asserted-by":"crossref","first-page":"1040","DOI":"10.1109\/TSE.2018.2874648","article-title":"ARJA: Automated repair of java programs via multi-objective genetic programming[J]","volume":"46","author":"Yuan","year":"2018","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10.3233\/JIFS-234037_ref34","doi-asserted-by":"crossref","first-page":"1021","DOI":"10.1145\/3377930.3389845","article-title":"Novelty search for automatic bug repair[C], \u2013","author":"Villanueva","year":"2020","journal-title":"Proceedings of the 2020 Genetic and Evolutionary Computation Conference (GECCO)"},{"issue":"4","key":"10.3233\/JIFS-234037_ref35","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3563210","article-title":"Arachne: Search-Based Repair of Deep Neural Networks[J]","volume":"32","author":"Sohn","year":"2023","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"10.3233\/JIFS-234037_ref36","first-page":"295","article-title":"Goues and Y. Brun, Repairing programs with semantic code search (t)","author":"Ke","year":"2015","journal-title":"In: Proceedings of the 30th International Conference on Automated Software Engineering (ASE). IEEE"},{"issue":"2","key":"10.3233\/JIFS-234037_ref37","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3418461","article-title":"Beyond tests: Program vulnerability repair via crash constraint extraction[J]","volume":"30","author":"Gao","year":"2021","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"issue":"3","key":"10.3233\/JIFS-234037_ref38","doi-asserted-by":"crossref","first-page":"1980","DOI":"10.1007\/s10664-019-09780-z","article-title":"FixMiner: Mining relevant fix patterns for automated program repair[J]","volume":"25","author":"Koyuncu","year":"2020","journal-title":"Empirical Software Engineering"},{"key":"10.3233\/JIFS-234037_ref39","first-page":"1456","article-title":"Template-based Neural Program Repair[C]","author":"Meng","year":"2023","journal-title":"In. IEEE 2023 IEEE\/ACM 45th International Conference on Software Engineering (ICSE)"},{"key":"10.3233\/JIFS-234037_ref40","doi-asserted-by":"crossref","first-page":"1506","DOI":"10.1145\/3510003.3510222","article-title":"Neural program repair with execution-based backpropagation[C]","author":"Ye","year":"2022","journal-title":"Proceedings of the 44th International Conference on Software Engineering"},{"key":"10.3233\/JIFS-234037_ref41","doi-asserted-by":"crossref","first-page":"101","DOI":"10.1145\/3395363.3397369","article-title":"CoCoNuT: Combining context-aware neural translation models using ensemble for program repair[C]","author":"Lutellier","year":"2020","journal-title":"Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)"},{"issue":"1","key":"10.3233\/JIFS-234037_ref42","doi-asserted-by":"crossref","first-page":"147","DOI":"10.1109\/TSE.2022.3147265","article-title":"Neural transfer learning for repairing security vulnerabilities in c code[J]","volume":"49","author":"Chen","year":"2022","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10.3233\/JIFS-234037_ref43","doi-asserted-by":"crossref","first-page":"1443","DOI":"10.1109\/ICSE48619.2023.00126","article-title":"Tare: Type-Aware Neural Program Repair[C]. In. IEEE","author":"Zhu","year":"2023","journal-title":"2023 IEEE\/ACM 45th International Conference on Software Engineering (ICSE)"},{"key":"10.3233\/JIFS-234037_ref44","doi-asserted-by":"crossref","first-page":"1161","DOI":"10.1109\/ICSE43902.2021.00107","article-title":"Cure: Code-aware neural machine translation for automatic program repair[C]. In. IEEE","author":"Jiang","year":"2021","journal-title":"2021 IEEE\/ACM 43rd International Conference on Software Engineering (ICSE)"},{"key":"10.3233\/JIFS-234037_ref46","doi-asserted-by":"crossref","first-page":"1469","DOI":"10.1109\/ICSE48619.2023.00128","article-title":"Automated repair of programs from large language models[C]. In. IEEE","author":"Fan","year":"2023","journal-title":"2023 IEEE\/ACM 45th International Conference on Software Engineering (ICSE)"},{"issue":"4","key":"10.3233\/JIFS-234037_ref47","doi-asserted-by":"crossref","first-page":"1580","DOI":"10.1109\/TSE.2022.3183297","article-title":"Using transfer learning for code-related tasks[J]","volume":"49","author":"Mastropaolo","year":"2022","journal-title":"IEEE Transactions on Software Engineering"},{"key":"10.3233\/JIFS-234037_ref48","doi-asserted-by":"crossref","first-page":"2006","DOI":"10.1145\/3510003.3510096","article-title":"Spt-code: Sequence-to-sequence pre-training for learning source code representations[C]","author":"Niu","year":"2022","journal-title":"Proceedings of the 44th International Conference on Software Engineering"},{"key":"10.3233\/JIFS-234037_ref49","doi-asserted-by":"crossref","first-page":"678","DOI":"10.1145\/3533767.3534219","article-title":"CIRCLE: Continual repair across programming languages[C]","author":"Yuan","year":"2022","journal-title":"Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis"},{"key":"10.3233\/JIFS-234037_ref51","first-page":"1","article-title":"Coditt5: Pretraining for source code and natural language editing[C],","author":"Zhang","year":"2022","journal-title":"Proceedings of the 37th IEEE\/ACM International Conference on Automated Software Engineering"}],"container-title":["Journal of Intelligent &amp; Fuzzy Systems"],"original-title":[],"link":[{"URL":"https:\/\/content.iospress.com\/download?id=10.3233\/JIFS-234037","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T09:42:44Z","timestamp":1777455764000},"score":1,"resource":{"primary":{"URL":"https:\/\/journals.sagepub.com\/doi\/full\/10.3233\/JIFS-234037"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,4,18]]},"references-count":47,"journal-issue":{"issue":"4"},"URL":"https:\/\/doi.org\/10.3233\/jifs-234037","relation":{},"ISSN":["1064-1246","1875-8967"],"issn-type":[{"value":"1064-1246","type":"print"},{"value":"1875-8967","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,4,18]]}}}