Abstract
To repair a program does not mean to make it (absolutely) correct; it only means to make it more-correct than it was originally. This is not a mundane academic distinction: given that programs typically have about a dozen faults per KLOC, it is important for program repair methods and tools to be designed in such a way that they map an incorrect program into a more-correct, albeit still potentially incorrect, program. Yet in the absence of a concept of relative correctness, many program repair methods and tools resort to approximations of absolute correctness; since these methods and tools are often validated against programs with a single fault, making them absolutely correct is indistinguishable from making them more-correct; this has contributed to conceal/obscure the absence of (and the need for) relative correctness. In this paper, we propose a theory of program repair based on a concept of relative correctness. We aspire to encourage researchers in program repair to explicitly specify what concept of relative correctness their method or tool is based upon; and to validate their method or tool by proving that it does enhance relative correctness, as defined.
| Original language | English (US) |
|---|---|
| Pages (from-to) | 209-255 |
| Number of pages | 47 |
| Journal | Acta Informatica |
| Volume | 60 |
| Issue number | 3 |
| DOIs | |
| State | Published - Sep 2023 |
All Science Journal Classification (ASJC) codes
- Software
- Information Systems
- Computer Networks and Communications
Fingerprint
Dive into the research topics of 'Toward a theory of program repair'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver