Program repair as sound optimization of broken programs
Program repair as sound optimization of broken programs
We present a new, semantics-based approach to mechanical program repair where the intended meaning of broken programs (i.e., programs that may abort under a given, error-admitting language semantics) can be defined by a special, error-compensating semantics. Program repair can then become a compile-time, mechanical program transformation based on a program analysis. It turns a given program into one whose evaluations under the error-admitting semantics agree with those of the given program under the error-compensating semantics. We present the analysis and transformation as a type system with a transformation component, following the type-systematic approach to program optimization from our earlier work. The type-systematic method allows for simple soundness proofs of the repairs, based on a relational interpretation of the type system, as well as mechanical transformability of program correctness proofs between the Hoare logics for the error-compensating and error-admitting semantics. We first demonstrate our approach on the repair of file-handling programs with missing or superfluous open and close statements. Our framework shows that this repair is strikingly similar to partial redundancy elimination optimization commonly used by compilers. In a second example, we demonstrate the repair of programs operating a queue that can over- and underflow, including mechanical transformation of program correctness proofs.
165-73|xiii+333
Fischer, B.
0c9575e6-d099-47f1-b3a2-2dbc93c53d18
Saabas, A.
d7fdc714-7260-4a2a-acb1-375712b0e2a2
Uustalu, T.
2adf94b7-4812-4e03-bd46-fedb160a3b49
2009
Fischer, B.
0c9575e6-d099-47f1-b3a2-2dbc93c53d18
Saabas, A.
d7fdc714-7260-4a2a-acb1-375712b0e2a2
Uustalu, T.
2adf94b7-4812-4e03-bd46-fedb160a3b49
Fischer, B., Saabas, A. and Uustalu, T.
(2009)
Program repair as sound optimization of broken programs.
In 2009 Third IEEE International Symposium on Theoretical Aspects of Software Engineering.
IEEE.
.
(doi:10.1109/TASE.2009.61).
Record type:
Conference or Workshop Item
(Paper)
Abstract
We present a new, semantics-based approach to mechanical program repair where the intended meaning of broken programs (i.e., programs that may abort under a given, error-admitting language semantics) can be defined by a special, error-compensating semantics. Program repair can then become a compile-time, mechanical program transformation based on a program analysis. It turns a given program into one whose evaluations under the error-admitting semantics agree with those of the given program under the error-compensating semantics. We present the analysis and transformation as a type system with a transformation component, following the type-systematic approach to program optimization from our earlier work. The type-systematic method allows for simple soundness proofs of the repairs, based on a relational interpretation of the type system, as well as mechanical transformability of program correctness proofs between the Hoare logics for the error-compensating and error-admitting semantics. We first demonstrate our approach on the repair of file-handling programs with missing or superfluous open and close statements. Our framework shows that this repair is strikingly similar to partial redundancy elimination optimization commonly used by compilers. In a second example, we demonstrate the repair of programs operating a queue that can over- and underflow, including mechanical transformation of program correctness proofs.
This record has no associated files available for download.
More information
Published date: 2009
Additional Information:
Imported from ISI Web of Science
Organisations:
Electronic & Software Systems
Identifiers
Local EPrints ID: 270197
URI: http://eprints.soton.ac.uk/id/eprint/270197
PURE UUID: 9869a564-2ede-4ad7-9229-b813a3055737
Catalogue record
Date deposited: 21 Apr 2010 07:46
Last modified: 15 Mar 2024 21:48
Export record
Altmetrics
Contributors
Author:
B. Fischer
Author:
A. Saabas
Author:
T. Uustalu
Download statistics
Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.
View more statistics