Backward Conditioning: A New Program Specialisation Technique and Its Application to Program Comprehension

Abstract

This paper introduces backward conditioning. Like forward conditioning (used in conditioned slicing), backward conditioning consists of specialising a program with respect to a condition inserted into the program. However, whereas forward conditioning deletes statements which are not executed when the initial state satisfies the condition, backward conditioning deletes statements which cannot cause execution to enter a state which satisfies the condition. The relationship between backward and forward conditioning is reminiscent of the relationship between backward and forward slicing. Forward conditioning addresses program comprehension questions of the form ‘what happens if the program starts in a state satisfying condition c?’, whereas backward conditioning addresses questions of the form ‘what parts of the program could potentially lead to the program arriving in a state satisfying condition c?’. The paper illustrates the use of backward conditioning as a program comprehension assistant and presents an algorithm for constructing backward conditioned programs.

DOI: 10.1109/WPC.2001.921717

Extracted Key Phrases

5 Figures and Tables

Cite this paper

@inproceedings{Fox2001BackwardCA, title={Backward Conditioning: A New Program Specialisation Technique and Its Application to Program Comprehension}, author={Chris Fox and Sebastian Danicic and Mark Harman and Robert M. Hierons}, booktitle={IWPC}, year={2001} }