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:41] vkuncak |
sav07_lecture_7_skeleton [2007/04/04 10:59] vkuncak |
||
---|---|---|---|
Line 49: | Line 49: | ||
* [[predicate abstraction]] (Cartesian abstraction) | * [[predicate abstraction]] (Cartesian abstraction) | ||
* [[http://research.microsoft.com/esp/pubs/esp-dataflow.pdf|ESP paper]] | * [[http://research.microsoft.com/esp/pubs/esp-dataflow.pdf|ESP paper]] | ||
+ | |||
==== Linear inequalities ==== | ==== Linear inequalities ==== | ||
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]]. | 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 | ||