SLIDE 17 Abstract Constraint Graph
Constraint Based Static Analysis
From the Control Flow Graph we build the Abstract Constraint Graph Nodes represent bytecode instructions. Arcs represent the abstract semantics. Each node is decorated with an abstract set I. Each arc is decorated with a propagation rule. Propagation Rules ♯i
defined for each type of arc, depending on its sources; state how the information in each node is propagated.
e x c e p t i
e x i t
node 2 call java.lang.Object.init() : void node 3 load 0 Element node 4 load 1 Object node 5
putfield Element.value: Object
node 6 load 0 Element node 7 load 2 Element node 8
putfield Element.prec: Element
node 9 load 2 Element node 10 load 0 Element node 11
putfield Element.next: Element
node 12 return void node 14 catch
♯3 #15 ♯11 ♯3 ♯3 ♯6 ♯3 ♯3 ♯6 ♯3 ♯3 ♯6 ♯14 ♯14 ♯14
Scapin and Spoto (univr.it) Unreachability & Non-Cyclicity Analysis BYTECODE’13 10 / 15