Theory and algorithms for slicing Unstructured Programs

Mark Harman, Arun Lakhotia, David Binkley

Research output: Contribution to journalArticlepeer-review

14 Citations (Scopus)

Abstract

Program slicing identifies parts of a program that potentially affect a chosen computation. It has many applications in software engineering. including maintenance, evolution and re-engineering of legacy systems. However, these systems typically contain programs with unstructured control-flow, produced using goto statements; thus, effective slicing of unstructured programs remains an important topic of study.

This paper shows that slicing unstructured programs inherently requires making trade-offs between three slice attributes: termination behaviour, size. and syntactic structure. It is shown how different applications of slicing require different tradeoffs. The three attributes are used as the basis of a three-dimensional theoretical framework, which classifies slicing algorithms for unstructured programs. The paper proves that for two combinations of these dimensions, no algorithm exists and presents algorithms for the remaining six combinations.
Original languageEnglish
Article numberN/A
Pages (from-to)549 - 565
Number of pages17
JournalINFORMATION AND SOFTWARE TECHNOLOGY
Volume48
Issue number7
DOIs
Publication statusPublished - Jul 2006

Fingerprint

Dive into the research topics of 'Theory and algorithms for slicing Unstructured Programs'. Together they form a unique fingerprint.

Cite this