LARA

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sav08:chaotic_iteration_in_abstract_interpretation [2008/05/20 13:16]
vkuncak
sav08:chaotic_iteration_in_abstract_interpretation [2008/05/20 19:34]
vkuncak
Line 1: Line 1:
-====== Chaotic Iteration in Abstract Interpretation ======+====== Chaotic Iteration in Abstract Interpretation: How to compute the fixpoint? ​======
  
 In [[Abstract Interpretation Recipe]], note that if the set of program points is $p'​_1,​\ldots,​p'​_n$,​ then we are solving the system of eqautions in $n$ variables $g_1,​\ldots,​g_n$ In [[Abstract Interpretation Recipe]], note that if the set of program points is $p'​_1,​\ldots,​p'​_n$,​ then we are solving the system of eqautions in $n$ variables $g_1,​\ldots,​g_n$
Line 30: Line 30:
 \begin{array}{ll} \begin{array}{ll}
     g^{k+1}_i = H_i(g^k_1,​\ldots,​g^k_n) ​ \\     g^{k+1}_i = H_i(g^k_1,​\ldots,​g^k_n) ​ \\
-    ​g^{k+1}_j = g^k_j, \mbox{ for } j \neq i  & \mbox{\bf chaotic iteration}+ & \mbox{\bf chaotic iteration} \\ 
 +    ​g^{k+1}_j = g^k_j, \mbox{ for } j \neq i 
 \end{array} \end{array}
 \] \]
-here we require that the new value $H_i(g^k_1,​\ldots,​g^k_n)$ differs from the old one $g^k_i$, otherwise we select a different one. +here we require that the new value $H_i(g^k_1,​\ldots,​g^k_n)$ differs from the old one $g^k_i$. ​ An iteration where at each step we select some equation ​$i$ (arbitrarily) ​is called ​//chaotic iteration//.  It is abstract representation of different iteration strategies.
-Then we pick a different ​$i$, as long as the result changes. ​ This is //chaotic iteration//​.+
    
 Questions: Questions:
Line 50: Line 50:
  
 Compare values $I$, $L_1$, $C_1$, $I_n$, $C_n$ in the lattice Compare values $I$, $L_1$, $C_1$, $I_n$, $C_n$ in the lattice
-  * in general +  * in general ​ ​++|$C_1 \sqsubseteq L_1$, generally $C_i \sqsubseteq L_i$ ++ 
-  * when selecting equations by fixed permutation+  * when selecting equations by fixed permutation ​++| $L_1 \sqsubseteq C_n$, generally $L_i \sqsubseteq C_{ni}$ ++
  
 ==== Worklist Algorithm and Iteration Strategies ==== ==== Worklist Algorithm and Iteration Strategies ====
Line 72: Line 72:
 Strongly connected component (SCC) of a directed graph: path between each two nodes of component. Strongly connected component (SCC) of a directed graph: path between each two nodes of component.
   * compute until fixpoint within each SCC   * compute until fixpoint within each SCC
 +
 +If we generate control-flow graph from our simple language, what do strongly connected components correspond to?
  
 ===== References ===== ===== References =====