Abstract Interpretation: Difference between revisions

Jump to navigation Jump to search
Line 314: Line 314:
Treehydra contains the basic machinery to detect conditionals and exclude branches that cannot be executed. The user only has to supply the flowStateCond function.
Treehydra contains the basic machinery to detect conditionals and exclude branches that cannot be executed. The user only has to supply the flowStateCond function.


== More Powerful Lattices ==
== Correlated Variables ==
 
Some analyses, such as outparams, require tracking pairs or tuples of correlated variables, not just single variables. This requires a modification to the notion of abstract state we used in the basic explanation.
 
Even constant propagation can theoretically benefit from tracking pairs. Consider this example:
 
if (foo) {
  a = 1;
  b = 2;
} else {
  b = 1;
  a = 2;
}
c = a + b;
 
It's clear that c is a constant, 3. But our constant propagation won't detect it: after the if, we have state "a = ?, b = ?".


== ESP ==
== ESP ==
313

edits

Navigation menu