Amorphous program slicing

  • Authors:
  • Mark Harman;David Binkley;Sebastian Danicic

  • Affiliations:
  • Department of Information Systems and Computing, Brunel University, Uxbridge, Middlesex UB8 3PH, UK;Loyola College in Maryland, Baltimore, MD;Goldsmiths College, University of London, New Cross, London SE14 6NW, UK

  • Venue:
  • Journal of Systems and Software
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Traditional, syntax-preserving program slicing simplifies a program by deleting components (e.g., statements and predicates) that do not affect a computation of interest. Amorphous slicing removes the limitation to component deletion as the only means of simplification, while retaining the semantic property that a slice preserves the selected behaviour of interest from the original program. This leads to slices which are often considerably smaller than their syntax-preserving counterparts.A formal framework is introduced to define and compare amorphous and traditional program slicing. After this definition, an algorithm for computing amorphous slices, based on the system dependence graph, is presented. An implementation of this algorithm is used to demonstrate the utility of amorphous slicing with respect to code-level analysis of array access safety. The resulting empirical study indicates that programmers' comprehension of array safety is improved by amorphous slicing.