Abstract Program Slicing: an Abstract Interpretation-based approach to Program Slicing
Isabella Mastroeni, Damiano Zanardini

TL;DR
This paper introduces a formal framework for abstract program slicing, which considers data properties rather than exact values, extending traditional slicing methods with a semantic, property-based approach.
Contribution
It defines abstract program slicing, integrates it into an existing framework, and provides algorithms for computing abstract dependencies based on program state agreements.
Findings
Abstract slicing generalizes traditional slicing methods.
Algorithms for computing abstract dependencies are sound.
The framework unifies semantic and syntactic slicing approaches.
Abstract
In the present paper 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 components (statements). The different forms of (backward) abstract slicing are added to an existing formal framework where traditional, non-abstract forms of slicing could be compared. The extended framework allows us to appreciate that abstract slicing is a generalization of traditional slicing, since traditional slicing (dealing with syntactic dependencies) is generalized by (semantic) non-abstract forms of slicing, which are actually equivalent to an abstract form where the identity abstraction is performed on data. Sound algorithms for computing abstract…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Engineering Research · Advanced Malware Detection Techniques
