Object representatives: a uniform abstraction for pointer - - PowerPoint PPT Presentation

object representatives a uniform abstraction for pointer
SMART_READER_LITE
LIVE PREVIEW

Object representatives: a uniform abstraction for pointer - - PowerPoint PPT Presentation

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


slide-1
SLIDE 1

Motivation Abstraction Implementation Related Work and Conclusion

Object representatives: a uniform abstraction for pointer information

Eric Bodden, Patrick Lam and Laurie Hendren September 2008

slide-2
SLIDE 2

Motivation Abstraction Implementation Related Work and Conclusion

Situation

DEMANDING CLIENT

slide-3
SLIDE 3

Motivation Abstraction Implementation Related Work and Conclusion

Situation

Pointer Analysis! DEMANDING CLIENT

slide-4
SLIDE 4

Motivation Abstraction Implementation Related Work and Conclusion

Situation

DEMANDING CLIENT Whole- program must-alias Whole- program may-alias Object- sensitive Intraprocedural must-alias Intraprocedural may-alias Pointer Analyses

slide-5
SLIDE 5

Motivation Abstraction Implementation Related Work and Conclusion

Situation

DEMANDING CLIENT Pointer Analyses

slide-6
SLIDE 6

Motivation Abstraction Implementation Related Work and Conclusion

What We Really Want

DEMANDING CLIENT Whole- program may-alias Object- sensitive Intraprocedural must-alias Intraprocedural may-alias Pointer Analyses

slide-7
SLIDE 7

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)

slide-8
SLIDE 8

Motivation Abstraction Implementation Related Work and Conclusion

Property to Check

slide-9
SLIDE 9

Motivation Abstraction Implementation Related Work and Conclusion

Runtime View

slide-10
SLIDE 10

Motivation Abstraction Implementation Related Work and Conclusion

Static Analysis Approach

Verify properties at compile time (tracematch workings figure)

slide-11
SLIDE 11

Motivation Abstraction Implementation Related Work and Conclusion

How to analyze the property

Automaton

slide-12
SLIDE 12

Motivation Abstraction Implementation Related Work and Conclusion

Runtime view

slide-13
SLIDE 13

Motivation Abstraction Implementation Related Work and Conclusion

Moving to the compile-time view

slide-14
SLIDE 14

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:

1

does object r must-alias object r ′?

2

does object r not-must-alias object r ′?

slide-15
SLIDE 15

Motivation Abstraction Implementation Related Work and Conclusion

Properties of object representatives

1

represent one or more runtime objects;

2

supports r1.mustNotAlias(r2);

3

supports r1.equals(r2): must-alias

4

belongs to a must-aliasing scope

slide-16
SLIDE 16

Motivation Abstraction Implementation Related Work and Conclusion

Options

You can tweak these settings:

1

weak vs. strong

2

must-aliasing scope

slide-17
SLIDE 17

Motivation Abstraction Implementation Related Work and Conclusion

Object Representatives as Java objects

slide-18
SLIDE 18

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

  • bj representatives.
slide-19
SLIDE 19

Motivation Abstraction Implementation Related Work and Conclusion

Intraprocedural must-alias analysis

slide-20
SLIDE 20

Motivation Abstraction Implementation Related Work and Conclusion

Intraprocedural may-alias analysis

slide-21
SLIDE 21

Motivation Abstraction Implementation Related Work and Conclusion

Interprocedural may-alias analysis

slide-22
SLIDE 22

Motivation Abstraction Implementation Related Work and Conclusion

Combining analysis results: not-may-alias queries

  • bject rep-

resentatives

  • f same

method? start local must-not-alias analysis points-to sets

  • verlap?

yes no don’t know must not alias yes

slide-23
SLIDE 23

Motivation Abstraction Implementation Related Work and Conclusion

Combining analysis results: must-alias queries

  • bject rep-

resentatives

  • f same

method? start local must-alias analysis must-alias don’t know (not must-alias) yes no must alias don’t know

slide-24
SLIDE 24

Motivation Abstraction Implementation Related Work and Conclusion

Related Work

slide-25
SLIDE 25

Motivation Abstraction Implementation Related Work and Conclusion

Conclusion