A generic algorithm for program repair

Document Type

Conference Proceeding

Publication Date

7-3-2017

Abstract

Relative correctness is the property of a program to be more-correct than another with respect to a specification, whereas traditional (absolute) correctness distinguishes between two classes of candidate programs with respect to a specification (correct and incorrect), relative correctness defines a partial ordering between candidate programs, whose maximal elements are the (absolutely) correct programs. In this paper we argue that relative correctness ought to be an integral part of the study of program repair, as it plays for program repair the role that absolute correctness plays for program construction: in the same way that absolute correctness is the criterion by which we judge the process of deriving a program P from a specification R, we argue that relative correctness ought to be the criterion by which we judge the process of repairing a program P to produce a program P' that is more-correct than P with respect to R. In this paper we build on this premise to design a generic program repair algorithm, which proceeds by successive increases of relative correctness until we achieve absolute correctness. We further argue that in the same way that correctness ideas were used, a few decades ago, as a basis for correct-by-design programming, relative correctness ideas may be used, in time, as a basis for more-correct-by-design program repair.

Identifier

85027465678 (Scopus)

ISBN

[9781538604229]

Publication Title

Proceedings 2017 IEEE ACM 5th International Fme Workshop on Formal Methods in Software Engineering Formalise 2017

External Full Text Location

https://doi.org/10.1109/FormaliSE.2017.7

First Page

65

Last Page

71

This document is currently not available here.

Share

COinS