Download:
|
by Atanas Rountev, Barbara G. Ryder, William L
In Proceedings of the ACM SIGSOFT 99 Symposium on the Foundations of Software Engineering
http://www.prolangs.rutgers.edu/refs/docs/fse99.ps
Add To MetaCart
Abstract:
Abstract. Traditional interprocedural data-flow analysis is performed on whole programs; however, such whole-program analysis is not feasible for large or incomplete programs. We propose fragment data-flow analysis as an alternative approach which computes data-flow information for a specific program fragment. The analysis is parameterized by the additional information available about the rest of the program. We describe two frameworks for interprocedural flow-sensitive fragment analysis, the relationship between fragment analysis and whole-program analysis, and the requirements ensuring fragment analysis safety and feasibility. We propose an application of fragment analysis as a second analysis phase after an inexpensive flow-insensitive whole-program analysis, in order to obtain better information for important program fragments. We also describe the design of two fragment analyses derived from an already existing whole-program flow- and context-sensitive pointer alias analysis for C programs and present empirical evaluation of their cost and precision. Our experiments show evidence of dramatically better precision obtainable at a practical cost. 1
Citations
|
1266
|
Abstract interpretation : a unified lattice model for the static analysis of programs by construction or approximation of fixpoints
– Cousot, Cousot
- 1977
|
|
415
|
Points-to analysis in almost linear time
– Steensgaard
- 1996
|
|
339
|
Effective context-sensitive pointer analysis for C programs
– Wilson, Lam
- 1995
|
|
329
|
Context-sensitive interprocedural points-to analysis in the presence of function pointers
– Enami, Ghiya, et al.
- 1994
|
|
301
|
A safe approximate algorithm for interprocedural pointer aliasing
– Landi, Ryder
- 1992
|
|
234
|
Precise interprocedural dataflow analysis via graph reachability
– Reps, Sagiv, et al.
- 1995
|
|
216
|
Two approaches to interprocedural data flow analysis
– Sharir, Pnueli
- 1981
|
|
137
|
Fast and Accurate Flow-Insensitive Points-To Analysis
– Shapiro, Horwitz
- 1997
|
|
129
|
Program fragments, linking, and modularization
– CARDELLI
- 1997
|
|
91
|
Relevant Context Inference
– Chatterjee, Ryder, et al.
- 1999
|
|
59
|
Compiler Design
– Wilhelm, Maurer
- 1995
|
|
54
|
Modular model checking
– Kupferman, Vardi
- 1998
|
|
54
|
Data flow analysis as model checking of abstract interpretations
– Schmidt, Steffen
- 1998
|
|
53
|
Compositional analysis of modular logic programs
– Codish, Debray, et al.
- 1993
|
|
46
|
An efficient hybrid algorithm for incremental data flow analysis
– MARLOWE, G
- 1990
|
|
43
|
Program decomposition for pointer aliasing: A step towards practical analyses
– Zhang, Ryder, et al.
- 1996
|
|
42
|
Effective whole-program analysis in the presence of pointers
– Atkinson, Griswold
- 1998
|
|
34
|
Properties of data flow frameworks, a unified model
– Marlowe, Ryder
- 1990
|
|
25
|
Properties of data flow frameworks: A unified model
– Marlowe, Ryder
- 1990
|
|
20
|
Separate Computation of Alias Information for Reuse
– Harrold, Rothermel
- 1996
|
|
19
|
Data-flowbased Testing of Object-Oriented Libraries
– Chatterjee, Ryder
- 1999
|
|
8
|
Comparing flow- and context-sensitivity on the modification side-e#ects problem
– Stocks, Ryder, et al.
- 1998
|
|
8
|
An e#cient hybrid algorithm for incremental data flow analysis
– Marlowe, Ryder
- 1990
|