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
Next revision Both sides next revision
sav08:chaotic_iteration_in_abstract_interpretation [2008/05/20 13:08]
vkuncak
sav08:chaotic_iteration_in_abstract_interpretation [2008/05/20 13:29]
vkuncak
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_i \sqleq L_i$ 
 +++++
   * when selecting equations by fixed permutation   * when selecting equations by fixed permutation
  
Line 66: Line 69:
 Algorithm terminates when worklist is empty (no more changes) Algorithm terminates when worklist is empty (no more changes)
  
-Iteration strategies+Useful iteration strategyreverse postorder and strongly connected components 
-  * LIFO, FIFO,  + 
-  * reverse ​postorder +Reverse ​postorder: follow changes through successors in the graph 
-  * round robin + 
-  * strongly connected components+Strongly connected component (SCC) of a directed graph: path between each two nodes of component. 
 +  * compute until fixpoint within each SCC
  
 ===== References ===== ===== References =====