Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Abstract slicing: a new approach to program slicing based on abstract interpretation and model checking
Seok Hong H., Lee I., Sokolsky O.  Source code analysis and manipulation (Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM’05),25-34.2005.Type:Proceedings
Date Reviewed: Jan 10 2006

Program slicing [1] is a technique for extracting those sentences of a program that affect or are affected by a given slicing criterion. Since this technique was introduced in 1984, many other approaches (such as constraint slicing and hybrid slicing) have appeared in order to solve different problems that possible applications of it present.

This paper identifies two questions that remain unsolved by previous techniques: “For every program point, under which variable values does the program point affect the slicing criterion?” “For every program point, does the program point affect the slicing criterion if we are only interested in certain executions of the program rather than all possible ones?”

The authors address both problems by proposing a new data structure to represent data and control flow relations of a program called an abstract state graph. This data structure is obtained by applying predicate abstraction to a program with predicates and constraints. While program dependence graphs—the usual data structure used in program slicing—could also be used for abstract slicing, in practice, it would not be suitable because of the state explosion problem. In order to overcome this, the authors reduce abstract slicing to a least fixpoint computation over computational tree logic (CTL) formulas so that symbolic model checkers for CTL can be used.

The technique, which is a generalization of static slicing, accepts forward slicing, backward slicing, and chopping slicing criteria. It presents an algorithm (without a soundness or completeness proof) to perform abstract slicing. The paper includes a description of the implementation and a summary of some experiments carried out with a number of benchmarks that clearly show the exponential growth in the number of states.

The paper is well written, easy to follow, and presents a good motivating example that shows the advantage of abstract slicing over traditional static slicing.

Reviewer:  Josep Silva Review #: CR132268 (0611-1168)
1) Weiser, M. Program slicing. IEEE Transactions on Software Engineering 10, 4(1984), 352–357.
Bookmark and Share
  Reviewer Selected
 
 
Program Transformation (I.2.2 ... )
 
 
Program Analysis (F.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Program Transformation": Date
Eliminating Redundant Recursive Calls.
Cohen N. ACM Transactions on Programming Languages and Systems 5(3): 265-299, 1983. Type: Article
Feb 1 1985
On convergence toward a database of program transformations
Barstow D. ACM Transactions on Programming Languages and Systems 7(1): 1-9, 1985. Type: Article
Jul 1 1985
Automating the transformational development of software
Fickas S. IEEE Transactions on Software Engineering SE-11(11): 1268-1277, 1985. Type: Article
Feb 1 1987
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy