Parasaram, Nikhil;
Barr, Earl T;
Mechtaev, Sergey;
(2023)
Rete: Learning Namespace Representation for Program Repair.
In:
Proceedings of the IEEE/ACM 45th International Conference on Software Engineering (ICSE) 2023.
(pp. pp. 1264-1276).
Institute of Electrical and Electronics Engineers (IEEE)
Preview |
Text
icse23.pdf - Accepted Version Download (384kB) | Preview |
Abstract
A key challenge of automated program repair is finding correct patches in the vast search space of candidate patches. Real-world programs define large namespaces of variables that considerably contributes to the search space explosion. Existing program repair approaches neglect information about the program namespace, which makes them inefficient and increases the chance of test-overfitting. We propose Rete, a new program repair technique, that learns project-independent information about program namespace and uses it to navigate the search space of patches. Rete uses a neural network to extract project-independent information about variable CDU chains, def-use chains augmented with control flow. Then, it ranks patches by jointly ranking variables and the patch templates into which the variables are inserted. We evaluated Rete on 142 bugs extracted from two datasets, ManyBugs and BugsInPy. Our experiments demonstrate that ReTe generates six new correct patches that fix bugs that previous tools did not repair, an improvement of 31% and 59% over the existing state of the art.
Type: | Proceedings paper |
---|---|
Title: | Rete: Learning Namespace Representation for Program Repair |
Event: | 45th IEEE/ACM International Conference on Software Engineering (ICSE) 2023 |
Location: | Melbourne, Australia |
Dates: | 14th-20th May 2023 |
ISBN-13: | 978-1-6654-5701-9 |
Open access status: | An open access version is available from UCL Discovery |
DOI: | 10.1109/ICSE48619.2023.00112 |
Publisher version: | https://doi.org/10.1109/ICSE48619.2023.00112 |
Language: | English |
Additional information: | This version is the author accepted manuscript. For information on re-use, please refer to the publisher's terms and conditions. |
Keywords: | Program Repair, Deep Learning, Patch Prioritisation, Variable Representation |
UCL classification: | UCL UCL > Provost and Vice Provost Offices > UCL BEAMS UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science |
URI: | https://discovery.ucl.ac.uk/id/eprint/10176629 |
Archive Staff Only
View Item |