Download:
|
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
|