TY - JOUR
T1 - A trajectory-based strict semantics for program slicing
AU - Barraclough, Richard W.
AU - Binkley, David
AU - Danicic, Sebastian
AU - Harman, Mark
AU - Hierons, Robert M.
AU - Kiss, Akos
AU - Laurence, Mike
AU - Ouarbya, Lahcen
PY - 2010/3/6
Y1 - 2010/3/6
N2 - We define a program semantics that is preserved by dependence-based slicing algorithms. It is a natural extension, to non-terminating programs, of the semantics introduced by Weiser (which only considered terminating ones) and, as such, is an accurate characterisation of the semantic relationship between a program and the slice produced by these algorithms.
Unlike other approaches, apart from Weiser's original one, it is based on strict standard semantics which models the 'normal' execution of programs on a von Neumann machine and, thus, has the advantage of being intuitive. This is essential since one of the main applications of slicing is program comprehension. Although our semantics handles nontermination, it is defined wholly in terms of finite trajectories, without having to resort to complex, counter-intuitive, non-standard models of computation. As well as being simpler, unlike other approaches to this problem, Our semantics is substitutive. Substitutivity is an important property because it greatly enhances the ability to reason about correctness of meaning-preserving program transformations such as slicing. (C) 2009 Elsevier B.V. All rights reserved.
AB - We define a program semantics that is preserved by dependence-based slicing algorithms. It is a natural extension, to non-terminating programs, of the semantics introduced by Weiser (which only considered terminating ones) and, as such, is an accurate characterisation of the semantic relationship between a program and the slice produced by these algorithms.
Unlike other approaches, apart from Weiser's original one, it is based on strict standard semantics which models the 'normal' execution of programs on a von Neumann machine and, thus, has the advantage of being intuitive. This is essential since one of the main applications of slicing is program comprehension. Although our semantics handles nontermination, it is defined wholly in terms of finite trajectories, without having to resort to complex, counter-intuitive, non-standard models of computation. As well as being simpler, unlike other approaches to this problem, Our semantics is substitutive. Substitutivity is an important property because it greatly enhances the ability to reason about correctness of meaning-preserving program transformations such as slicing. (C) 2009 Elsevier B.V. All rights reserved.
U2 - 10.1016/j.tcs.2009.10.025
DO - 10.1016/j.tcs.2009.10.025
M3 - Article
VL - 411
SP - 1372
EP - 1386
JO - Theoretical Computer Science
JF - Theoretical Computer Science
IS - 11-13
ER -