## Interprocedural Slicing Using Dependence Graphs (1990)

### Cached

### Download Links

- [www.cs.wisc.edu]
- [cs.gmu.edu]
- [www.cs.wisc.edu]
- [www.cs.wisc.edu]
- [research.cs.wisc.edu]
- [www.cs.odu.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS |

Citations: | 725 - 79 self |

### BibTeX

@ARTICLE{Horwitz90interproceduralslicing,

author = {Susan Horwitz and Thomas Reps and David Binkley},

title = {Interprocedural Slicing Using Dependence Graphs},

journal = {ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS},

year = {1990},

volume = {12},

number = {1},

pages = {26--60}

}

### Years of Citing Articles

### OpenURL

### Abstract

... 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. (It should be noted that our work concerns a somewhat restricted kind of slice: Rather than permitting a program to be sliced with respect to program point p and an arbitrary variable, a slice must be taken with respect to a variable that is defined or used at p.) The chief

### Citations

1356 |
Program Slicing
- Weiser
- 1984
(Show Context)
Citation Context ...th respect to program point p and variable x consists of all statements and predicates of the program that might affect the value of x at point p. This concept, originally discussed by Mark Weiser in =-=[22]-=-, can be used to isolate individual computation threads within a program. Slicing can help a ############################# This work was supported in part by a David and Lucile Packard Fellowship for ... |

860 | The program dependence graph and its use in optimization
- Ferrante, Ottenstein, et al.
- 1987
(Show Context)
Citation Context ...n; they are all variations on a theme introduced in [16], and share the common feature of having an explicit representation of data dependences (see below). The "program dependence graphs" d=-=efined in [7]-=- introduced the additional feature of an explicit representation for control dependences (see below). The definition of program dependence graph given below differs from [7] in two ways. First, our de... |

479 | Semantics of Context-Free Languages
- Knuth
- 1968
(Show Context)
Citation Context ...An attribute grammar is a context-free grammar extended by attaching attributes to the terminal and nonterminal symbols of the grammar, and by supplying attribute equations to define attribute values =-=[14]. In-=- every production p : X 0 �� X 1 , ..., X k , each X i denotes an occurrence of one of the grammar symbols; associated with each such symbol occurrence is a set of attribute occurrences correspond... |

450 | Optimizing Supercompilers for Supercomputers - Wolfe - 1982 |

409 | Ecient context-sensitive pointer analysis for C programs - Wilson, Lam - 1995 |

399 | Contextsensitive interprocedural points-to analysis in the presence of function pointers - Emami, Ghiya, et al. - 1994 |

394 | Zadeck, “Analysis of pointers and structures - Chase, Wegman, et al. - 1990 |

386 | Precise interprocedural dataflow analysis via graph reachability - REPS, HORWITZ, et al. - 1995 |

314 | Two approaches to inter-procedural data-flow analysis - Sharir, Pnueli - 1981 |

300 |
The program dependence graph in a software development environment
- Ottenstein, Ottenstein
- 1984
(Show Context)
Citation Context ...ral slicing), a slice can be determined from the closure of the directly-affects relation. Ottenstein and Ottenstein pointed out how well-suited program dependence graphs are for this kind of slicing =-=[19]-=-; once a program is represented by its program dependence graph, the slicing problem is simply a vertex-reachability problem, and thus slices may be computed in linear time. This paper concerns the pr... |

255 | ESP: path-sensitive program verification in polynomial time - Das, Lerner, et al. - 2002 |

241 | 1ntegra.ting noninterfering versions of programs
- Horwitz, Prins, et al.
- 1989
(Show Context)
Citation Context ...nd of "output statement" called an end statement, 2 and hence is less general than the one given in [7]. Second, we omit certain classes of data dependence edges and make use of a class intr=-=oduced in [8]. Des-=-pite these differences, the structures we define and those defined in [7] share the feature of explicitly representing both control and data dependences; therefore, we refer to our graphs as "pro... |

162 | Detecting conflicts between structure accesses - LARUS, HILFINGER - 1988 |

148 | Dependence analysis for pointer variables - Horwitz, Pfeiffer, et al. - 1989 |

141 | Practical Dependence Testing - Goff, Kennedy, et al. |

131 |
An efficient way to find the side effects of procedure calls and the aliases of variables
- Banning
- 1979
(Show Context)
Citation Context ...phs in order to exclude vertices like the actual-out vertex for argument y. The appropriate interprocedural summary information consists of the following sets, which are computed for each procedure P =-=[4]-=-: GMOD(P): the set of variables that might be modified by P itself or by a procedure (transitively) called from P. GREF(P): the set of variables that might be referenced by P itself or by a procedure ... |

125 | Program analysis via graph reachability - Reps - 1998 |

123 |
Interprocedural side-effect analysis in linear time
- Cooper, Kennedy
- 1988
(Show Context)
Citation Context ...F) can be determined particularly efficiently. In particular, in the absence of nested scopes, GMOD and GREF can be determined in time O (P 2 + Pmult_byTotalSites) steps by the algorithm described in =-=[6]-=-. Intraprocedural data flow analysis is used to determine the data dependences of procedure dependence graphs. For the structured language under consideration here, this analysis can be performed in a... |

122 | Efficient and exact data dependence analysis - Maydan, Hennessy, et al. - 1991 |

120 |
A precise interprocedural data flow algorithm
- Myers
- 1988
(Show Context)
Citation Context ... the approach of [12] would involve finding a new fixed point (a problem that appears to have complexity comparable to the computation of the subordinate characteristic graphs) for each new slice. In =-=[18]-=-, Myers presents algorithms for a specific set of interprocedural data flow problems, all of which require keeping track of calling context; however, Myers's approach to handling this problem differs ... |

97 | The program summary graph and flow-sensitive interprocedural data flow analysis
- Callahan
(Show Context)
Citation Context ...tulated above would involve solving a new data flow analysis problem from scratch for each slice. The vertex-reachability approach we have used here has some similarities to a technique used in [15], =-=[5]-=-, and [6] to transform data flow analysis problems to vertex-reachability problems. In each case a data flow analysis problem is solved by first building a graph representation of the program, and the... |

94 | Static determination of dynamic properties of recursive procedures - Cousot, Cousot - 1978 |

94 | Context-sensitive synchronization-sensitive analysis is undecidable - Ramalingam - 2000 |

91 | Slicing programs with arbitrary control - Ball, Horwitz - 1992 |

87 | Interprocedural constant propagation - Callahan, Cooper, et al. - 1986 |

84 | Speeding up slicing - Reps, Horwiz, et al. |

82 |
On the number of operations simultaneously executable in FORTRAN-like programs and their resulting speedup
- Kuck, Muraoka, et al.
- 1972
(Show Context)
Citation Context ...PENDENCE GRAPHS AND PROGRAM SLICES Different definitions of program dependence representations have been given, depending on the intended application; they are all variations on a theme introduced in =-=[16], and shar-=-e the common feature of having an explicit representation of data dependences (see below). The "program dependence graphs" defined in [7] introduced the additional feature of an explicit rep... |

78 |
Ordered Attribute Grammars
- Kastens
- 1980
(Show Context)
Citation Context ...d by an algorithm, called ConstructSubCGraphs, that is a slight modification of an algorithm originally developed by Kastens to construct approximations to a grammar's transitive dependence relations =-=[13]. The cove-=-ring subordinate characteristic graph of a nonterminal X of the linkage grammar is captured in the graph TDS (X) (standing for "Transitive Dependences among a Symbol's attributes"). Initiall... |

78 | Demand interprocedural dataflow analysis - Horwitz, Reps, et al. - 1995 |

77 | Eliminating False Data Dependences Using the Omega Test - Pugh, Wonnacott - 1992 |

72 | Static slicing of threaded programs - Krinke - 1998 |

64 | Static slicing in the presence of goto statements - Choi, Ferrante - 1994 |

60 | On Slicing Programs with Jump Statements - Agrawal - 1994 |

59 | On the adequacy of program dependence graphs for representing programs
- Horwitz, Prins, et al.
(Show Context)
Citation Context ...of our definition because it is not necessary for our purposes. 5 For a complete discussion of the need for these edges and a comparison of def-order dependences with anti- and output dependences see =-=[10]. ACM TO-=-PLAS vol 12 no 1 (January 1990)s- (3) There exists a program component v 3 such that v 1 �� f v 3 and v 2 �� f v 3 . (4) v 1 occurs to the left of v 2 in the program's abstract syntax tree. A ... |

58 | Precise interprocedural chopping - Reps, Rosay - 1995 |

56 | Graph-theoretic methods in database theory - Yannakakis - 1990 |

55 | Type-Based Flow Analysis: From Polymorphic Subtyping to CFL-Reachability - Rehof, Fändrich - 2001 |

48 | Demand interprocedural program analysis using logic databases - Reps - 1994 |

46 | Model checking of unrestricted hierarchical state machines - Benedikt, Godefroid, et al. - 2001 |

45 | System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow - Sinha, Harrold, et al. - 1999 |

43 | The semantics of program slicing
- Reps, Yang
- 1988
(Show Context)
Citation Context ...ion to Version (2), since the "reduced program" required in Version (2) can be obtained by restricting the original program to just the statements and predicates found in the solution for Ve=-=rsion (1) [20]-=-. For interprocedural slicing, restricting the original program to just the statements and predicates found for Version (1) may yield a program that is syntactically incorrect (and thus certainly not ... |

41 | Bebop: A path-sensitive interprocedural dataflow engine - Ball, Rajamani - 2001 |

35 | Precise Executable Interprocedural Slices - Binkley - 1993 |

29 |
Finding program slices for recursive procedures
- Hwang, Du, et al.
- 1988
(Show Context)
Citation Context ...text of a called procedure. After the initial publication of our interprocedural-slicing algorithm [9], a different technique for computing interprocedural slices was presented by Hwang, Du, and Chou =-=[12]-=-. The slicing algorithm presented in [12] computes an answer that is as precise as our algorithm, but differs significantly in how it handles the calling-context problem. The algorithm from [12] const... |

28 | Slicing concurrent programs - Nanda, Ramesh - 2000 |

24 |
The Method of Attributes for Data Flow Analysis (part 1 and 2
- Babich, Jazayeri
- 1978
(Show Context)
Citation Context ...ol 12 no 1 (January 1990)s- names. One difference between the interprocedural slicing problem and the problems addressed by the work cited above, is that interprocedural slicing is a "demand prob=-=lem" [2] whose goa-=-l is to determine information concerning a specific set of program points rather than an "exhaustive problem" in which the goal is to determine information for all program points. APPENDIX: ... |

21 |
Experiments on slicing-based debugging tools
- Lyle, Weiser
- 1986
(Show Context)
Citation Context ...gn and Implementation, (Atlanta, GA, June 22-24, 1988), ACM SIGPLAN Notices 23(7) (July 1988) [9]. ACM TOPLAS vol 12 no 1 (January 1990)s- programmer understand complicated code, can aid in debugging =-=[17]-=-, and can be used for automatic parallelization [213]. Program slicing is also used by the algorithm for automatically integrating program variants described in [11]; slices are used to compute a safe... |

20 | Shape analysis as a generalized path problem - Reps - 1995 |

17 | Better slicing of programs with jumps and switches - Kumar, Horwitz - 2002 |

16 | Reconstructing Sequential Behavior from Parallel Behavior Projections - Weiser - 1983 |