Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
sav07_lecture_7_skeleton [2007/04/04 10:31] vkuncak |
sav07_lecture_7_skeleton [2007/04/04 10:59] vkuncak |
||
---|---|---|---|
Line 39: | Line 39: | ||
==== Conjunctions of fixed predicates as analysis domain ==== | ==== Conjunctions of fixed predicates as analysis domain ==== | ||
+ | |||
Line 44: | Line 45: | ||
Comparison of precision and efficiency. | Comparison of precision and efficiency. | ||
+ | |||
+ | More in | ||
+ | * [[predicate abstraction]] (Cartesian abstraction) | ||
+ | * [[http://research.microsoft.com/esp/pubs/esp-dataflow.pdf|ESP paper]] | ||
+ | |||
==== Linear inequalities ==== | ==== Linear inequalities ==== | ||
- | [[http://www.cs.unipr.it/ppl/Documentation/BagnaraHZ06TR.pdf|PARMA Library]] | + | Example implementation: [[http://www.cs.unipr.it/ppl/|Parma Polyhedra Library]] and a [[http://www.cs.unipr.it/ppl/Documentation/BagnaraHZ06TR.pdf|paper about Parma]]. |
+ | |||
+ | Special cases: | ||
+ | * constant propagation | ||
+ | * interval analysis | ||
+ | * octagon domain | ||
+ | |||
+ | |||
+ | ==== Simple pointer analysis ==== | ||
+ | |||
+ | Consider constant field propagation with | ||
+ | |||
+ | x = new Node(); | ||
+ | y = new Node(); | ||
+ | x.f = 1; | ||
+ | y.f = 2; | ||
+ | |||
+ | or with | ||
+ | |||
+ | y = x.next; | ||
+ | x.f = 1; | ||
+ | y.f = 2; | ||
+ | |||
+ | Allocation-site based analyses | ||
+ | |||
+ | ===== Interprocedural analysis ===== | ||
+ | |||
+ | Modular analysis with procedure contracts | ||