|
ABSTRACT
A slice of a program with respect to a program point p and variable x consists of all statements of the program that might affect the value of x at point p. This paper concerns the problem of interprocedural slicing -- generating a slice of an entire program, where the slice crosses the boundaries of procedure calls. To solve this problem, we introduce a new kind of graph to represent programs, called a system dependence graph, which extends previous dependence representations to incorporate collections of procedures (with procedure calls) rather than just monolithic programs. Our main result is an algorithm for interprocedural slicing that uses the new representation.The chief difficulty in interprocedural slicing is correctly accounting for the calling context of a called procedure. To handle this problem, system dependence graphs include some data-dependence edges that represent transitive dependencies due to the effects of procedure calls, in addition to the conventional direct-dependence edges. These edges are constructed with the aid of an auxiliary structure that represents calling and parameter-linkage relationships. This structure takes the form of an attribute grammar. The step of computing the required transitive-dependence edges is reduced to the construction of the subordinate characteristic graphs for the grammar's nonterminals.
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
|
|
| |
2
|
|
 |
3
|
|
| |
4
|
|
| |
5
|
|
| |
6
|
|
 |
7
|
|
 |
8
|
|
 |
9
|
David Callahan , Keith D. Cooper , Ken Kennedy , Linda Torczon, Interprocedural constant propagation, Proceedings of the 1986 SIGPLAN symposium on Compiler construction, p.152-161, June 25-27, 1986, Palo Alto, California, United States
|
 |
10
|
|
 |
11
|
|
 |
12
|
|
| |
13
|
P. Cousot and R. Cousot. Static determination of dynamic properties of recursive procedures. In E. J. Neuhold, editor, Formal Descriptions of Programming Concepts, (IFIP WG 2.2, St. Andrews, Canada, August 1977), pages 237--277. North-Holland, 1978.
|
 |
14
|
|
| |
15
|
M. B. Dwyer, J. C. Corbett, J. Hatcliff, S. Sokolowski, and H. Zheng. Slicing multi-threaded Java programs: A case study. Tech. Rep. 99-7, Dept. of Comp. and Inf. Sci., Kansas State Univ., Manhattan, KS, February 1999.
|
 |
16
|
Maryam Emami , Rakesh Ghiya , Laurie J. Hendren, Context-sensitive interprocedural points-to analysis in the presence of function pointers, Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, p.242-256, June 20-24, 1994, Orlando, Florida, United States
|
 |
17
|
|
 |
18
|
Gina Goff , Ken Kennedy , Chau-Wen Tseng, Practical dependence testing, Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, p.15-29, June 24-28, 1991, Toronto, Ontario, Canada
|
 |
19
|
S. Horwitz , P. Pfeiffer , T. Reps, Dependence analysis for pointer variables, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.28-40, June 19-23, 1989, Portland, Oregon, United States
|
 |
20
|
|
 |
21
|
Susan Horwitz , Thomas Reps , Mooly Sagiv, Demand interprocedural dataflow analysis, Proceedings of the 3rd ACM SIGSOFT symposium on Foundations of software engineering, p.104-115, October 12-15, 1995, Washington, D.C., United States
|
| |
22
|
S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural dataflow analysis. report TR-1283, Comp. Sci. Dept., Univ. of Wisconsin, August 1995. Available at "http://www.cs.wisc.edu/wpis/papers/tr1283r.ps".
|
 |
23
|
Thomas Reps , Susan Horwitz , Mooly Sagiv , Genevieve Rosay, Speeding up slicing, Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering, p.11-20, December 06-09, 1994, New Orleans, Louisiana, United States
|
| |
24
|
U. Kastens. Ordered attribute grammars. Acta Inf., 13(3):229--256, 1980.
|
| |
25
|
D.E. Knuth. Semantics of context-free languages. Math. Syst. Theory, 2:127--145, 1968.
|
 |
26
|
|
| |
27
|
|
 |
28
|
|
 |
29
|
Dror E. Maydan , John L. Hennessy , Monica S. Lam, Efficient and exact data dependence analysis, Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, p.1-14, June 24-28, 1991, Toronto, Ontario, Canada
|
 |
30
|
|
 |
31
|
|
 |
32
|
|
 |
33
|
|
 |
34
|
|
| |
35
|
T. Reps. Demand interprocedural program analysis using logic databases. In R. Ramakrishnan, editor, Applications of Logic Databases. Kluwer Academic Publishers, 1994.
|
 |
36
|
|
| |
37
|
T. Reps. On the sequential nature of interprocedural program-analysis problems. Acta Inf., 33:739--757, 1996.
|
| |
38
|
T. Reps. Program analysis via graph reachability. Inf. and Softw. Tech., 40(11--12):701--726, November 1998.
|
 |
39
|
|
| |
40
|
T. Reps, S. Horwitz, and D. Binkley, U.S. Patent Number 5,161,216, Interprocedural slicing of computer programs using dependence graphs, November 1992.
|
 |
41
|
Thomas Reps , Susan Horwitz , Mooly Sagiv, Precise interprocedural dataflow analysis via graph reachability, Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.49-61, January 23-25, 1995, San Francisco, California, United States
[doi> 10.1145/199448.199462]
|
 |
42
|
|
| |
43
|
T. Reps, M. Sagiv, and S. Horwitz. Interprocedural dataflow analysis via graph reachability. Tech. Rep. TR 94-14, Datalogisk Institut, Univ. of Copenhagen, 1994. Available at "http://www.cs.wisc.edu/wpis/papers/diku-tr94-14.ps".
|
| |
44
|
|
| |
45
|
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S. S. Muchnick and N. D. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 7, pages 189--234. Prentice-Hall, Englewood Cliffs, NJ, 1981.
|
 |
46
|
Saurabh Sinha , Mary Jean Harrold , Gregg Rothermel, System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow, Proceedings of the 21st international conference on Software engineering, p.432-441, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302675]
|
| |
47
|
|
| |
48
|
M. Weiser. Program slicing. Trans. on Softw. Eng., SE-10(4):352--357, July 1984.
|
 |
49
|
|
| |
50
|
|
 |
51
|
|
| |
52
|
Babich78. Babich, W. A. and Jazayeri, M., "The method of attributes for data flow analysis: Part II. Demand analysis," Acta Informatica 10(3) pp. 265--272 (October 1978).
|
 |
53
|
|
 |
54
|
|
 |
55
|
|
 |
56
|
|
| |
57
|
Horwitz87. Horwitz, S., Prins, J., and Reps, T., "Integrating non-interfering versions of programs," TR-690, Computer Sciences Department, University of Wisconsin, Madison, WI (March 1987).
|
 |
58
|
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]
|
| |
59
|
Horwitz88a. Horwitz, S., Reps, T., and Binkley, D., "Interprocedural slicing using dependence graphs," TR-756, Computer Sciences Department, University of Wisconsin, Madison, WI (March 1988).
|
| |
60
|
Kastens80. Kastens, U., "Ordered attribute grammars," Acta Inf. 13(3) pp. 229--256 (1980).
|
| |
61
|
Knuth68. Knuth, D. E., "Semantics of context-free languages," Math. Syst. Theory 2(2) pp. 127--145 (June 1968).
|
 |
62
|
|
| |
63
|
Kuck72. Kuck, D. J., Muraoka, Y., and Chen, S. C., "On the number of operations simultaneously executable in FORTRAN-like programs and their resulting speed-up," IEEE Trans. on Computers C-21(12) pp. 1293--1310 (December 1972).
|
 |
64
|
|
 |
65
|
|
| |
66
|
Reps88. Reps, T. and Yang, W., "The semantics of program slicing," Tech. Rep. in preparation, Computer Sciences Department, University of Wisconsin, Madison, WI (Spring 1988).
|
| |
67
|
Waite83. Waite, W. M. and Goos, G., Compiler Construction, Springer-Verlag, New York (1983).
|
| |
68
|
Weiser84. Weiser, M., "Program slicing," IEEE Transactions on Software Engineering SE-10(4) pp. 352--357 (July 1984).
|
|