Download presentation
Presentation is loading. Please wait.
Published byDarcy Perry Modified over 8 years ago
1
1 Iterative Program Analysis Part II Mathematical Background Mooly Sagiv http://www.cs.tau.ac.il/~msagiv/courses/pa11.html Tel Aviv University 640-6706 Textbook: Principles of Program Analysis Appendix A
2
Content u Mathematical Background u Chaotic Iterations u Soundness, Precision and more examples next week
3
Mathematical Background u Declaratively define –The result of the analysis –The exact solution –Allow comparison
4
Posets u A partial ordering is a binary relation : L L {false, true} –For all l L : l l (Reflexive) –For all l 1, l 2, l 3 L : l 1 l 2, l 2 l 3 l 1 l 3 (Transitive) –For all l 1, l 2 L : l 1 l 2, l 2 l 1 l 1 = l 2 (Anti-Symmetric) u Denoted by (L, ) u In program analysis –l 1 l 2 l 1 is more precise than l 2 l 1 represents fewer concrete states than l 2 u Examples –Total orders (N, ) –Powersets (P(S), ) –Powersets (P(S), ) –Constant propagation
5
Posets u More notations –l 1 l 2 l 2 l 1 –l 1 l 2 l 1 l 2 l 1 l 2 –l 1 l 2 l 2 l 1
6
Upper and Lower Bounds u Consider a poset (L, ) u A subset L’ L has a lower bound l L if for all l’ L’ : l l’ u A subset L’ L has an upper bound u L if for all l’ L’ : l’ u u A greatest lower bound of a subset L’ L is a lower bound l 0 L such that l l 0 for any lower bound l of L’ u A lowest upper bound of a subset L’ L is an upper bound u 0 L such that u 0 u for any upper bound u of L’ u For every subset L’ L: –The greatest lower bound of L’ is unique if at all exists » L’ (meet) a b –The lowest upper bound of L’ is unique if at all exists » L’ (join) a b
7
Complete Lattices u A poset (L, ) is a complete lattice if every subset has least and upper bounds u L = (L, ) = (L, , , , , ) – = = L – = L = u Examples –Total orders (N, ) –Powersets (P(S), ) –Powersets (P(S), ) –Constant propagation
8
Complete Lattices u Lemma For every poset (L, ) the following conditions are equivalent –L is a complete lattice –Every subset of L has a least upper bound –Every subset of L has a greatest lower bound
9
Cartesian Products u A complete lattice (L 1, 1 ) = (L 1, , 1, 1, 1, 1 ) u A complete lattice (L 2, 2 ) = (, , 2, 2, 2, 2 ) u Define a Poset L = (L 1 L 2, ) where –(x 1, x 2 ) (y 1, y 2 ) if »x 1 y 1 and »x 2 y 2 u L is a complete lattice
10
Finite Maps u A complete lattice (L 1, 1 ) = (L 1, , 1, 1, 1, 1 ) u A finite set V u Define a Poset L = (V L 1, ) where –e 1 e 2 if for all v V »e 1 v e 2 v u L is a complete lattice
11
Chains u A subset Y L in a poset (L, ) is a chain if every two elements in Y are ordered –For all l 1, l 2 Y: l 1 l 2 or l 2 l 1 u An ascending chain is a sequence of values –l 1 l 2 l 3 … u A strictly ascending chain is a sequence of values –l 1 l 2 l 3 … u A descending chain is a sequence of values –l 1 l 2 l 3 … u A strictly descending chain is a sequence of values –l 1 l 2 l 3 … u L has a finite height if every chain in L is finite u Lemma A poset (L, ) has finite height if and only if every strictly decreasing and strictly increasing chains are finite
12
Monotone Functions u A poset (L, ) u A function f: L L is monotone if for every l 1, l 2 L: –l 1 l 2 f(l 1 ) f(l 2 )
13
Fixed Points u A monotone function f: L L where (L, , , , , ) is a complete lattice u Fix(f) = { l: l L, f(l) = l} u Red(f) = {l: l L, f(l) l} u Ext(f) = {l: l L, l f(l)} –l 1 l 2 f(l 1 ) f(l 2 ) u Tarski’s Theorem 1955: if f is monotone then: – lfp(f) = Fix(f) = Red(f) Fix(f) – gfp(f) = Fix(f) = Ext(f) Fix(f) f( ) f( ) f2()f2() f2()f2() Fix(f) Ext(f) Red(f) gfp(f) lfp(f)
14
Example Constant Propagation x =3 nop e.e[x 3] e.e 1 2 3 CP(1) = [x 0] CP(2) = CP(1)[x 3] CP(2) CP(3) = CP(2) exit e.e
15
Chaotic Iterations u A lattice L = (L, , , , , ) with finite strictly increasing chains u L n = L L … L u A monotone function f: L n L n u Compute lfp(f) u The simultaneous least fixed of the system {x[i] = f i (x) : 1 i n } x := ( , , …, ) while (f(x) x ) do x := f(x) for i :=1 to n do x[i] = WL = {1, 2, …, n} while (WL ) do select and remove an element i WL new := f i (x) if (new x[i]) then x[i] := new; Add all the indexes that directly depends on i to WL
16
Chaotic Iterations u L n = L L … L u A monotone function f: L n L n u Compute lfp(f) u The simultaneous least fixed of the system {x[i] = f i (x) : 1 i n } u Minimum number of non-constant u Maximum number of for i :=1 to n do x[i] = WL = {1, 2, …, n} while (WL ) do select and remove an element i WL new := f i (x) if (new x[i]) then x[i] := new; Add all the indexes that directly depends on i to WL
17
Specialized Chaotic Iterations System of Equations S = df entry [s] = df entry [v] = {f(u, v) (df entry [u]) | (u, v) E } F S :L n L n F S (X)[s] = F S (X)[v] = {f(u, v)(X[u]) | (u, v) E } lfp(S) = lfp(F S )
18
Specialized Chaotic Iterations Chaotic(G(V, E): Graph, s: Node, L: Lattice, : L, f: E (L L) ){ for each v in V to n do df entry [v] := df[s] = WL = {s} while (WL ) do select and remove an element u WL for each v, such that. (u, v) E do temp = f(e)(df entry [u]) new := df entry (v) temp if (new df entry [v]) then df entry [v] := new; WL := WL {v}
19
z =3 x =1 while (x>0) if (x=1) y =7y =z+4 x=3 print y e.e[z 3] e.e[x 1] e. if x >0 then e else e. if e x 0 then e else e. e [x 1, y , z ] e. if e x 0 then e else e.e[y 7] e.e[y e(z)+4] e.e[x 3] e.e 1 2 3 4 5 6 7 8 [x 0, y 0, z 0] WLdf entry ]v] {1} {2} df[2]:=[x 0, y 0, z 3] {3} df[3]:=[x 1, y 0, z 3] {4} df[4]:=[x 1, y 0, z 3] {5} df[5]:=[x 1, y 0, z 3] {7} df[7]:=[x 1, y 7, z 3] {8} df[8]:=[x 3, y 7, z 3] {3} df[3]:=[x , y , z 3] {4} df[4]:=[x , y , z 3] {5,6} df[5]:=[x 1, y , z 3] {6,7} df[6]:=[x , y , z 3] {7} df[7]:=[x , y 7, z 3]
20
Complexity of Chaotic Iterations u Parameters: –n the number of CFG nodes –k is the maximum outdegree of edges –A lattice of height h –c is the maximum cost of »applying f (e) » »L comparisons u Complexity O(n * h * c * k)
21
Conclusions u Chaotic iterations is a powerful technique u Easy to implement u Rather precise u But expensive –More efficient methods exist for structured programs
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.