Abstract:
The run-time structure of an object-oriented program can be represented by an object graph. Approximating this graph statically is a prerequisite for higher level analyses such as distribution analysis and concurrency analysis; it is also helpful in contexts of software maintenance and re-engineering. However, most existing techniques for static analysis of object-oriented programs are not adequate for deriving general object graphs from the source code. We have therefore developed a new algorithm that is capable of doing so. The algorithm is dened for the Java language, of which it covers all language features except class loader interactions and run-time re
ection. It is
ow-insensitive but contextsensitive, and therefore has a low computational complexity. This paper describes the algorithm and presents results that our implementation obtained for several non-trivial example programs of considerable size.
Citations
|
415
|
Points-to analysis in almost linear time
– Steensgaard
- 1996
|
|
403
|
Program Analysis and Specialization for the C Programming Language. PhDthesis, University of Copenhagen, DIKU, DIKU report 94/19
– Andersen
- 1994
|
|
318
|
Analysis of pointers and structures
– Chase, Wegman, et al.
- 1990
|
|
249
|
Solving shape-analysis problems in languages with destructive updating
– Sagiv, Reps, et al.
- 1998
|
|
208
|
Object-oriented type inference
– Palsberg, Schwartzbach
- 1991
|
|
158
|
Precise Concrete Type Inference for Object-Oriented Languages
– Plevyak, Chien
- 1994
|
|
91
|
Relevant Context Inference
– Chatterjee, Ryder, et al.
- 1999
|
|
91
|
Call graph construction in object-oriented languages
– Grove, DeFouw, et al.
- 1997
|
|
37
|
Barat–A Front-End for Java
– Bokowski, Spiegel
- 1998
|
|
37
|
Compile-time analysis of object-oriented programs
– Vitek, Horspool, et al.
- 1992
|
|
28
|
Constructing compact models of concurrent java programs
– Corbett
- 1998
|
|
11
|
The complexity of type analysis of Object Oriented programs
– Gil, Itai
- 1998
|
|
9
|
Locality optimization in JavaParty by means of static type analysis
– Philippsen, Haumacher
- 1998
|
|
9
|
Fast and accurate points-to analysis
– Shapiro, Horwitz
- 1997
|
|
6
|
Lokalitatsoptimierung durch statische Typanalyse in JavaParty
– Haumacher
- 1998
|
|
6
|
Automatic Distribution in Pangaea
– Spiegel
- 2000
|
|
3
|
Analyzing exception in Java programs
– Robillard, Murphy
- 1999
|
|
1
|
Ecient distribution by static analysis
– Spiegel
- 2000
|