Yoga Sivagurunathan
School of Computing, University of North London, UK
Mark Harman
School of Computing, University of North London, UK
Sebastian Danicic
School of Computing, University of North London, UK
Download article
Published in: Proceedings of the 3rd International Workshop on Automatic Debugging; 1997 (AADEBUG-97)
Linköping Electronic Conference Proceedings 64:6, p. 59-67
Linköping Electronic Articles in Computer and Information Science vol. 2 1:6, p. 59-67
Published: 1997-09-10
ISBN:
ISSN: 1650-3686 (print), 1650-3740 (online)
Program slicing consists of deleting statements from a program; creating a reduced program; a slice; that preserves the original programs behaviour for a given set of variables at a chosen point in the program. However; some aspects of a programs semantics are not captured by a set of variables; rendering slicing inapplicable to their analysis. These aspects of the programs state shall; collectively; be termed the `implicit state. For example; the input list supplied to a program is not denoted by a variable; rather it is part of the implicit state. It will be shown that this implicitness causes existing slicing algorithms to produce incorrect slices with respect to input. In order to solve the problem the program to be sliced will be transformed into an `explicit version (in which all aspects of its semantics are captured by variables). The approach is also applied to a wider class of problems in which slicing is inhibited by the lack of variables upon which to form a suitable slicing criterion. Because the approach can be expressed as a source-level transformation; it has the attractive property that the slicing algorithm need not be altered.