Abstract Program Slicing: An Abstract Interpretation-Based Approach to Program Slicing
In the present article, we formally define the notion of abstract program slicing , a general form of program slicing where properties of data are considered instead of their exact value. This approach is applied to a language with numeric and reference values and relies on the notion of abstract de...
Gespeichert in:
Veröffentlicht in: | ACM transactions on computational logic 2017-04, Vol.18 (1), p.1-58 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | In the present article, we formally define the notion of
abstract program slicing
, a general form of program slicing where properties of data are considered instead of their exact value. This approach is applied to a language with numeric and reference values and relies on the notion of
abstract dependencies
between program statements.
The different forms of (backward) abstract slicing are added to an existing formal framework where traditional, nonabstract forms of slicing could be compared. The extended framework allows us to appreciate that abstract slicing is a generalization of traditional slicing, since each form of traditional slicing (dealing with syntactic dependencies) is generalized by a semantic (nonabstract) form of slicing, which is actually equivalent to an abstract form where the
identity
abstraction is performed on data.
Sound algorithms for computing abstract dependencies and a systematic characterization of program slices are provided, which rely on the notion of
agreement
between program states. |
---|---|
ISSN: | 1529-3785 1557-945X |
DOI: | 10.1145/3029052 |