MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  An Optimal Algorithm for the Construction of the System Dependence Graph

Download:
Download as a PDF | Download as a PS
by Panos E. Livadas, Theodore Johnson
ftp://ftp.cis.ufl.edu/pub/tech-reports/tr95/tr95-011.ps.Z
Add To MetaCart

Abstract:

Program slicing can be used to aid in a variety of software maintenance activities including code understanding, code testing, debugging, and program reengineering. Program slicing (as well as other program analysis functions including forward slicing) can be efficiently performed on an internal program representation called a system dependence graph (SDG). The construction of the SDG depends primarily on the calculation of the transitive dependences which in turn depends in the calculation of the data dependences. In this paper we demonstrate the correctness and the optimality of our method of calculating the transitive data dependences. Furthermore, this method requires neither the (explicit) calculation of the GMOD and GREF sets nor the construction of a linkage grammar and the corresponding subordinate characteristic graphs of the linkage grammar's nonterminals. Additionally, a beneficial side effect of this method is that it provides us with a new method for performing interprocedural, flow-sensitive data flow analysis.

Citations

2004 The Design and Analysis of Computer Algorithms – Aho, Hopcroft, et al. - 1974
908 Program slicing – Weiser - 1984
672 The program dependence graph and its use in optimization – Ferrante, Ottenstein, et al. - 1987
519 Interprocedural slicing using dependence graphs – Horwitz, Reps, et al. - 1990
234 The Program Dependence Graph in a Software Development – Ottenstein, Ottenstein
219 Programmers Use Slices When Debugging – Weiser - 1982
215 Intergrating Noninterfering Version of Programs – Horwitz, Reps, et al. - 1989
120 An efficient way to find the side effects of procedure calls and the aliases of variables – Banning - 1979
92 The program summary graph and flow-sensitive interprocedural data flow analysis – Callahan - 1988
83 Automatic program bug location by program slicing – Lyle, Weiser - 1987
76 Ordered Attribute Grammars – Kastens - 1980
42 The semantics of program slicing – REPS, YANG - 1988
28 Detecting Program Components With Equivalent BehavioTs – Yang, Horwitz, et al. - 1989
27 Finding program slices for recursive procedures – Hwang, Du, et al. - 1988
26 Experiments on slicingbased debugging aids – Weiser, Lyle - 1986
18 Illustrating interference in interfering versions of programs – Reps, Bricker - 1989
16 Selecting Data for Integration Testing – Harrold, Soffa - 1991
15 Comments on program slicing – Leung, Reghbati - 1987
14 Minimizing communication for synchronizing parallel dataflow programs – Badger, Weiser - 1988
13 The world of software maintenance – Parikh - 1986
7 The High Cost of Software, Practical Strategies for Developing Large Software Systems – Boehm - 1975
6 A New Algorithm for the Calculation of Transitive Dependences – Livadas, Croll - 1995
3 The C Programming (ANSI C) Language", 2nd – Kernigham, Ritchie