330 likes | 353 Views
Pointer and Shape Analysis Seminar http://www.cs.tau.ac.il/~msagiv/courses/shape.html. Mooly Sagiv Schriber 317 msagiv@post Office Hours Thursday 15-16. Outline. General information Seminar subject How to give a presentation. General Information. Prerequisites
E N D
Pointer and Shape Analysis Seminarhttp://www.cs.tau.ac.il/~msagiv/courses/shape.html Mooly Sagiv Schriber 317 msagiv@post Office Hours Thursday 15-16
Outline • General information • Seminar subject • How to give a presentation
General Information • Prerequisites • Compilers | Program Analysis • Select 3 topics by Sunday • Participate in 9 seminar talks • Present a paper
Tentative Schedule • Today: Intro • Sunday (selection of topic) • Student lectures
Program Analysis • Statically analyze the program text (w/o input) • Determine conservative information about all (some) program executions • Applications • Verification • Each verified property holds but not all properties can be verified all programs • False alarms • Compiler optimizations • Parallelizations • Garbage collection
Alias Analysis • Two expressions referring to the same memory location at a given program point on some (all) executions [1] p = &a; [2] q = &b; [3] if (getc()) [4] q = &c [5] *q = b *p = a *q = c
Points-To Analysis • Determine if a variable points to a variable at some (all) execution paths [1] p = &a; [2] q = &b; [3] if (getc()) [4] q = &c [5] q b p a q c
* * * * * * * * * q p p q p p p q q a c a a a c a b b Shape Analysis • Determine the potential shapes of memory at a given program point [1] p = &a; [2] q = &b; [3] if (getc()) [4] q = &c
Applications • “Adapt” other optimizations • Constant propagationx = 5;*p = 7 ;… x … • Side-effect analysis *p = *q + * * t • Verification • No null dereferences • No memory leaks
Iterative Program Analysis • Start by optimistically assuming that nothing is wrong • No aliases • No points-to set • Empty sets of shape graphs • At every iteration apply the abstract meaning of programming language statements and add more aliases/points-to/shape graphs • Stop when no changes occur
Iterative Points-to Analysis t= &a ta y= &b ta, yb z= &c ta, yb, z c *p= &t ta, yb, z c ta, yb, z c p= &y p= &z ta, yb, z c, py ta, yb, z c, pz ta, yb, z c, py, pz
Iterative Points-to Analysis t= &a ta y= &b ta, yb z= &c ta, yb, z c, py, pz *p= &t ta, yb, z c, py, pz, ya, za ta, yb, z c, py, pz, ya, za p= &y p= &z ta, yb, z c, py ta, yb, z c, pz ta, yb, z c, py, pz
Iterative Points-to Analysis t= &a ta y= &b ta, yb z= &c ta, yb, z c, py, pz *p= &t ta, yb, z c, py, pz, ya, za ta, yb, z c, py, pz, ya, za p= &y p= &z ta, yb, z c, py, ya, za ta, yb, z c, pz, ya, za ta, yb, z c, py, pz
Iterative Points-to Analysis t= &a ta y= &b ta, yb z= &c ta, yb, z c, py, pz, ya, za *p= &t ta, yb, z c, py, pz, ya, za ta, yb, z c, py, pz, ya, za p= &y p= &z ta, yb, z c, py, ya, za ta, yb, z c, pz, ya, za ta, yb, z c, py, pz, ya, za
x = NULL n n t t t empty x x n x F T n n t t t t =malloc(..); t n x x x n n n n tnext=x; t t t t n x x x n n n x = t t t t t x n x x n x return x Iterative Shape Analysis
Soundness • Every alias is detected • Every points-to fact is detected • Every potential shape is detected • Every potential bug is detected • Every enabled optimization is correct
Dimensions of program analysis • Flow sensitive • Context sensitive
Material on Pointer Analysis • Alias Analysis • Points-to Analysis • Shape Analysis • Applications
Giving a presentation Ian Parbery
How to give a presentation • What to say and how to say it • Getting through the audience • Visual aids
What to say and how to say it • Communicate the Key Ideas • Don’t get bogged down in Details • The best talk make you read the paper • Structure your talk • Use Top-Down approach • Introduction • Body • [Technicalities] • The Conclusion Use Examples
Introduction • Define the problem • Motivate the audience • Introduce terminology • Discuss earlier work • Emphasize the contributions • [Provide a road map] Use Examples
The body • Abstract the major results • Explain the significance of the results • Explain the main techniques • Use enlightening examples • Demonstrations are welcome
[Technicalities] • Expert only part • Show something really interesting beyond the paper/tool
The Conclusion • Hindsight is clearer than Foresight • Give open problems/further work • Indicate that your talk is over
Know your audience • Background
Getting through the Audience • Use Repetitions • Remind, don’t assume • Don’t over-run • Maintain Eye Contact • Control your voice • Control your motion • Take care of your appearance
Visual Aids • PowerPoint transparencies • Don’t overload transparencies • Don’t use too many transparencies • Use Overlays Properly • Use Color Effectively • Use Pictures and Tables • The blackboard can be used too
The input of the program can be arbitrary. Let x be a prime number, i.e., all the numbers z<x do not divide x. y be the next prime number, i.e., etc. Arbitrary input Prime number x The next prime y Don’t overload transparencies
Use overlays (im)properly • Item 1 • Item 1.1 • Item 1.2 • Item 2 • Item 2.1 • Item 2.1.1
Use colors properly • Item 1 • Item 2 • Item 3
The End http://www.cs.tau.ac.il/~msagiv/courses/shape.html