UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

Semantic Program Repair Using a Reference Implementation

Mechtaev, Sergey; Manh-Dung, Nguyen; Noller, Yannic; Grunske, Lars; Roychoudhury, Abhik; (2018) Semantic Program Repair Using a Reference Implementation. In: Chaudron, Michel and Crnkovic, Ivica and Chechik, Marsha and Harman, Mark, (eds.) ICSE '18: Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings. (pp. pp. 129-139). Association for Computing Machinery (ACM): Gothenburg, Sweden. Green open access

[thumbnail of icse18.pdf]
Preview
Text
icse18.pdf - Accepted Version

Download (790kB) | Preview

Abstract

Automated program repair has been studied via the use of techniques involving search, semantic analysis and artificial intelligence. Most of these techniques rely on tests as the correctness criteria, which causes the test overfitting problem. Although various approaches such as learning from code corpus have been proposed to address this problem, they are unable to guarantee that the generated patches generalize beyond the given tests. This work studies automated repair of errors using a reference implementation. The reference implementation is symbolically analyzed to automatically infer a specification of the intended behavior. This specification is then used to synthesize a patch that enforces conditional equivalence of the patched and the reference programs. The use of the reference implementation as an implicit correctness criterion alleviates overfitting in test-based repair. Besides, since we generate patches by semantic analysis, the reference program may have a substantially different implementation from the patched program, which distinguishes our approach from existing techniques for regression repair like Relifix. Our experiments in repairing the embedded Linux Busybox with GNU Coreutils as reference (and vice-versa) revealed that the proposed approach scales to real-world programs and enables the generation of more correct patches.

Type: Proceedings paper
Title: Semantic Program Repair Using a Reference Implementation
Event: 40th ACM/IEEE International Conference on Software Engineering (ICSE)
Location: Gothenburg, SWEDEN
Dates: 27 May 2018 - 3 Jun 2018
ISBN-13: 9781450356633
Open access status: An open access version is available from UCL Discovery
DOI: 10.1145/3180155.3180247
Publisher version: https://doi.org/10.1145/3180155
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: Science & Technology, Technology, Computer Science, Software Engineering, Computer Science, Debugging, Program repair, Verification, SEARCH
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/10184113
Downloads since deposit
33Downloads
Download activity - last month
Download activity - last 12 months
Downloads by country - last 12 months

Archive Staff Only

View Item View Item