Work

Pointer analysis and its applications for Java programs

Year: 2001
Type: dissertation
Abstract: This thesis investigates the design and the correctness of a pointer analysis for the Java programming language.Although the analysis is based on a previous analysis, we made several important modifications that make it distinct from the original one.The major part of this thesis is dedicated to the correctness proof for the analysis.The analysis is a flow-sensitive, compositional, inter-procedural pointer analysis.It is based on the abstraction of points-to graphs, which characterize how local variables and fields in objects point to other objects.Each points-to graph also contains escape information that characterizes how objects allocated in the analyzed part of the program can be accessed by other parts.The analysis computes a single, parameterized points-to graph for the exit point of each method, and instantiates the graph for each call site that might invoke that method.This points-to graph uses placeholders to abstract over the calling context.We present three applications of the analysis: stack allocation, allocation in the thread-local heap, and synchronization removal.The analysis is able to detect that some objects are not used outside the method or the thread that allocates them.A compiler that uses the analysis can generate code that allocate these objects on the stack, respectively in a heap that is local to the current thread.These optimizations have the potential of reducing the garbage collection overhead.The compiler can also generate code that reduces, or even eliminates the cost of the synchronization operations executed on the objects that do not escape the thread that allocates them.In a modern language like Java, code safety is very important.The main advantage of our analysis is that is comes with a correctness proof.The proof handles all the relevant features of the analysis.To the best of our knowledge, this is the first correctness proof for a flow-sensitive, compositional, inter-procedural pointer analysis.
Language: English
Subfield: Software
Open Access status: green
OpenAlex ID: W2222529756
Cites: 20
Cited by: 13
Related to: 10