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.
- ALLEN, F., BURKE, M., CHARLES, P., CYTRON, R., AND FERRANTE, J. 1987. An overview of the PTRAN analysis system for multiprocessing. Res. Rep. RC 13115, IGM T.J. Watson Research Center, Yorktown Heights, N.Y.Google Scholar
- BADGER, L. AND WEISER, M. 1988. Minimizing communication for synchronizing parallel dataflow programs. In Proceedings of the 1988 international Conference on Parallel Processing (St. Charles, Ill., Aug. 15-19). Pennsylvania State University Press, University Park.Google Scholar
- BANNING, J.P. 1979. An efficient way to find the side effects of procedure calls and the aliases of variables. In Conference Record of the 6th ACM Symposium on the Principles of Programming Languages (San Antonio, Tex, Jan. 29-31). ACM, New York, 29-41. Google Scholar
- BARTH, J.M. 1978. A practical interprocedural data flow analysis algorithm. Commun. ACM 21, 9 (Sept.), 724-736. Google Scholar
- BINKLEY, D. 1992. Using semantic differencing to reduce the cost of regression testing. In Proceedings of the IEEE Conference on Software Maintenance (Orlando, Fla, Nov.). IEEE Computer Society, Washington, D.C., 41-50.Google Scholar
- BINKLEY, D. 1991. Multi-procedure program integration. Ph.D. dissertation and Tech. Rep. TR-1038, Computer Sciences Dept., Univ. of Wisconsin, Madison, Wisc. Google Scholar
- GALLAGHER, K. B. AND LYLE, J.R. 1991. Using program slicing in software maintenance. IEEE Trans. Softw. Eng. SE- 17, 8, 751- 761. Google Scholar
- HORWITZ, S., PRINS, J., AND REPS, T. 1989. Integrating non-interfering versions of programs. ACM Trans. Program. Lang. Syst. 11, 3 (July), 345-387. Google Scholar
- I~IoRWITZ, S., REPS, T., AND BINKLEY, D. 1990. Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst. 12, 1 (Jan.), 26-60. Google Scholar
- KUCK, D. J., KUHN, R. H., LEASURE, B., PADUA, D. A., AND WOLFE, M. 1981. Dependence graphs and compiler optimizations. In Conference Record of the 8th ACM Symposium on the Principles of Programming Languages (Williamsburg, Va., Jan. 26-28). ACM, New York, 207-218. Google Scholar
- KUCK, D. J., MURAOKA, Y., AND CHEN, S.C. 1972. On the number of operations simultaneously executable in FORTRAN-like programs and their resulting speed-up. IEEE Trans. Comput. C-21, 12 (Dec.), 1293-1310.Google Scholar
- LYLE, J. AND WEISER, M. 1986. Experiments on slicing-based debugging tools. In Proceedings of the 1st Conference on Empirical Studies of Programming (June). Ablex, Norwood, N.J. Google Scholar
- REPS, T. AND YANG, W. 1989. The semantics of program slicing and program integration. In Proceedings of the Colloquium on Current Issues in Programming Languages (Barcelona, Spain, Mar. 13-17). Lectm'e Notes in Computer Science, vol. 352. Springer-Verlag, New York, 360-374. Google Scholar
- REPS, T. AND YANG, W. 1988. The semantics of program slicing. Tech. Rep. TR-777, Computer Sciences Dept., Univ. of Wisconsin, Madison, Wisc.Google Scholar
- VENKATESH, G.A. 1991. The semantic approach to program slicing. In Proceedings of the ACM SIGPLAN 91 Conference on Programming Language Design and Implementation (Toronto, Ont., June 26-28). ACM SIGPLAN Not. (July). Google Scholar
- WEISER, M. 1984. Program slicing. IEEE Trans. Softw. Eng. SE-IO, 4 (July), 352-357.Google Scholar
- WEISER, M. 1983. Reconstructing sequential behavior from parallel behavior projections. Inf. Process. Lett. 17, 5 (Oct.), 129-135.Google Scholar
Index Terms
Precise executable interprocedural slices
Recommendations
Computation of Dynamic Program Slices for Unstructured Programs
A dynamic program slice is an executable part of the program whose behavior is identical, for the same program input, to that of the original program with respect to a variable(s) of interest at some execution position. The existing algorithms of ...
An efficient interprocedural dynamic slicing method
We present an efficient interprocedural dynamic slicing algorithm for structured programs. We first propose an intraprocedural dynamic slicing algorithm, and subsequently extend it to handle interprocedural calls. Our intraprocedural dynamic slicing ...
Precise slicing of interprocedural concurrent programs
Program slicing is an effective technique for analyzing concurrent programs. However, when a conventional closure-based slicing algorithmfor sequential programs is applied to a concurrent interprocedural program, the slice is usually imprecise owing to ...








Comments