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
Recommended Citation
    Khaireddine, Besma; Zakharchenko, Aleksandr; and Mili, Ali, "A generic algorithm for program repair" (2017). Faculty Publications.  9439.
    
    
    
        https://digitalcommons.njit.edu/fac_pubs/9439
    
 
				 
					