Motivation Abstraction Implementation Related Work and Conclusion Object representatives: a uniform abstraction for pointer information Eric Bodden, Patrick Lam and Laurie Hendren September 2008
Motivation Abstraction Implementation Related Work and Conclusion Situation DEMANDING CLIENT
Motivation Abstraction Implementation Related Work and Conclusion Situation DEMANDING Pointer Analysis! CLIENT
Motivation Abstraction Implementation Related Work and Conclusion Situation Pointer Analyses Whole- Whole- Intraprocedural program program may-alias may-alias must-alias DEMANDING CLIENT Intraprocedural Object- sensitive must-alias
Motivation Abstraction Implementation Related Work and Conclusion Situation Pointer Analyses DEMANDING CLIENT
Motivation Abstraction Implementation Related Work and Conclusion What We Really Want Pointer Analyses Whole- Intraprocedural program may-alias may-alias DEMANDING CLIENT Object- Intraprocedural sensitive must-alias
Motivation Abstraction Implementation Related Work and Conclusion On the Demanding Client property we want to check what it looks like at runtime how we can mirror this at compile time (perhaps bad attempt with variable names?) Each pointer analysis gives a different abstraction and interface We want a common abstraction (next few slides also contain this)
Motivation Abstraction Implementation Related Work and Conclusion Property to Check
Motivation Abstraction Implementation Related Work and Conclusion Runtime View
Motivation Abstraction Implementation Related Work and Conclusion Static Analysis Approach Verify properties at compile time (tracematch workings figure)
Motivation Abstraction Implementation Related Work and Conclusion How to analyze the property Automaton
Motivation Abstraction Implementation Related Work and Conclusion Runtime view
Motivation Abstraction Implementation Related Work and Conclusion Moving to the compile-time view
Motivation Abstraction Implementation Related Work and Conclusion Actually the abstraction is none of your business. But we interpose a “object representatives” box between the client and the analyses. We will answer these questions: does object r must-alias object r ′ ? 1 does object r not-must-alias object r ′ ? 2
Motivation Abstraction Implementation Related Work and Conclusion Properties of object representatives represent one or more runtime objects; 1 supports r1.mustNotAlias(r2); 2 supports r1.equals(r2): must-alias 3 belongs to a must-aliasing scope 4
Motivation Abstraction Implementation Related Work and Conclusion Options You can tweak these settings: weak vs. strong 1 must-aliasing scope 2
Motivation Abstraction Implementation Related Work and Conclusion Object Representatives as Java objects
Motivation Abstraction Implementation Related Work and Conclusion Computing object representatives Three analyses, plus combining them. Go back to the starting figure. Put in the intermediate box for obj representatives.
Motivation Abstraction Implementation Related Work and Conclusion Intraprocedural must-alias analysis
Motivation Abstraction Implementation Related Work and Conclusion Intraprocedural may-alias analysis
Motivation Abstraction Implementation Related Work and Conclusion Interprocedural may-alias analysis
Motivation Abstraction Implementation Related Work and Conclusion Combining analysis results: not-may-alias queries object rep- local resentatives must-not-alias start yes of same analysis method? don’t know no points-to sets overlap? must not alias yes
Motivation Abstraction Implementation Related Work and Conclusion Combining analysis results: must-alias queries object rep- local resentatives must-alias start yes of same analysis method? must alias don’t know no don’t know (not must-alias must-alias)
Motivation Abstraction Implementation Related Work and Conclusion Related Work
Motivation Abstraction Implementation Related Work and Conclusion Conclusion
Recommend
More recommend