|
ABSTRACT
Program slicing is a program analysis technique that has been studied in the context of several different applications in the construction, optimization, maintenance, testing, and debugging of programs. Algorithms are available for constructing slices for a particular execution of a program (dynamic slices), as well as to approximate a subset of the behavior over all possible executions of a program (static slices). However, these algorithms have been studied only in the context of small abstract languages. Program slicing is bound to remain an academic exercise unless one can not only demonstrate the feasibility of building a slicer for nontrivial programs written in a real programming language, but also verify that a type of slice is sufficiently thin, on the average, for the application for which it is chosen. In this article, we present results from using SLICE, a dynamic program slicer for C programs, designed and implemented to experiment with several different kinds of program slices and to study them both qualitatively and quantitatively. Several application programs, ranging in size (i.e., number of lines of code) over two orders of magnitude, were sliced exhaustively to obtain average worst-case metrics for the size of program slices.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
AGRAWAL, H. 1991. Towards automatic debugging of computer programs. Tech. Rep. SERC- TR-103-P, SERC, Purdue Univ., West Lafayette, Ind. Aug.
|
 |
2
|
|
 |
3
|
|
 |
4
|
|
 |
5
|
|
| |
6
|
ERNST, M. 1994. Practical fine-grained static slicing of optimized code. Tech. Rep. MSR-TR-94- 14, Microsoft Research, Redmond, Wash.
|
 |
7
|
|
 |
8
|
S. Horwitz , J. Prins , T. Reps, Integrating non-intering versions of programs, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.133-145, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73572]
|
 |
9
|
|
| |
10
|
JIANG, J., ZHOU, X., AND ROBSON, D.J. 1991. Program slicing for C--The problems in implementation. In Proceedings Conference on Software Maintenance (Sorrento, Italy, Oct. 15-17). IEEE, New York, 182-190.
|
| |
11
|
|
 |
12
|
|
| |
13
|
LIVADAS, P. E. AND RoY, P.K. 1992. Program dependence analysis. In Proceedings Conference on Software Maintenance (Orlando, Fla., Nov. 9-12). IEEE, New York, 356-365.
|
 |
14
|
|
 |
15
|
|
 |
16
|
|
| |
17
|
WEISER, M. 1984. Program slicing. IEEE Trans. Softw. Eng. SE-IO, 4 (July), 352-357.
|
CITED BY 19
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Philip J. Guo , Jeff H. Perkins , Stephen McCamant , Michael D. Ernst, Dynamic inference of abstract types, Proceedings of the 2006 international symposium on Software testing and analysis, July 17-20, 2006, Portland, Maine, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW
"R. Clayton : Reviewer"
Given an execution of a program and a variable in the program, what
are all the statements that affected the variable during the program's
execution? Questions of this kind can be answered by a program analysis
technique called dynamic slicing
more...
|