Precise executable interprocedural slices
- 1 March 1993
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Letters on Programming Languages and Systems
- Vol. 2 (1-4) , 31-45
- https://doi.org/10.1145/176454.176473
Abstract
The notion of a program slice , originally introduced by Mark Weiser, is useful in program debugging, automatic parallelization, program integration, and software maintenance. A slice of a program is taken with respect to a program point p and a variable x ; the slice consists of all statements of the program that might affect the value of x at point p . An interprocedural slice is a slice of an entire program, where the slice crosses the boundaries of procedure calls. Weiser's original interprocedural-slicing algorithm produces imprecise slices that are executable programs. A recent algorithm developed by Horwitz, Reps, and Binkley produces more precise (smaller) slices by more accurately identifying those statements that might affect the values of x at point p . These slices, however, are not executable. An extension to their algorithm that produces more precise executable interprocedural slices is described together with a proof of correctness for the new algorithm.Keywords
This publication has 7 references indexed in Scilit:
- Using program slicing in software maintenanceIEEE Transactions on Software Engineering, 1991
- Interprocedural slicing using dependence graphsACM Transactions on Programming Languages and Systems, 1990
- Integrating noninterfering versions of programsACM Transactions on Programming Languages and Systems, 1989
- Program SlicingIEEE Transactions on Software Engineering, 1984
- Reconstructing sequential behavior from parallel behavior projectionsInformation Processing Letters, 1983
- A practical interprocedural data flow analysis algorithmCommunications of the ACM, 1978
- On the Number of Operations Simultaneously Executable in Fortran-Like Programs and Their Resulting SpeedupIEEE Transactions on Computers, 1972