A new algorithm for slicing unstructured programs

Mark Harman, Sebastian Danicic

Research output: Contribution to journalArticlepeer-review

29 Citations (Scopus)

Abstract

Program slicing is an automatic program abstraction technique whose many applications include software maintenance, re-engineering and comprehension, all of which rely crucially upon the precision of the slicing algorithm used. When slicing is applied to maintenance problems, the programs to be sliced are typically legacy systems, often written in older, ‘unstructured’ programming styles. For slicing to be a useful tool to the software maintainer it is therefore important to have precise algorithms for slicing unstructured programs.

Unfortunately the standard algorithms for slicing structured programs do not extend correctly to the unstructured paradigm, and currently proposed modifications to these standard algorithms produce either unnecessarily large slices or slices which are not true subsets of the original program from which they are constructed.

This paper introduces a modification of Agrawal's algorithm for slicing unstructured programs, which overcomes these difficulties. The new algorithm produces thinner slices than any previously published algorithm while respecting both the semantic and syntactic constraints of slicing.
Original languageEnglish
Article numberN/A
Pages (from-to)415-441
Number of pages27
Journalthe Journal of Software Maintenance and Evolution
Volume10
Issue number6
DOIs
Publication statusPublished - Nov 1998

Fingerprint

Dive into the research topics of 'A new algorithm for slicing unstructured programs'. Together they form a unique fingerprint.

Cite this