Amorphous program slicing

Harman, Mark; Wendell Binkley, David and Danicic, Sebastian. 2003. Amorphous program slicing. Journal of Systems and Software, 68(1), pp. 45-64. ISSN 0164-1212 [Article]

No full text available

Abstract or Description

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.

Item Type:


Departments, Centres and Research Units:




Item ID:


Date Deposited:

02 Dec 2015 13:37

Last Modified:

13 Jun 2016 12:33

Peer Reviewed:

Yes, this version has been peer-reviewed.


Edit Record Edit Record (login required)