An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Second
Presentation
The context:
Abstract
Interpretation for
Static Analysis
The problematic:
Too heavy for
real programs
Parallel
algorithms
Done and todo
References
Approximation of values: abstraction
Based on mathematical notion of lattice
(partially ordered sets with additional properties).
Examples of abstraction for the set of integer values:
Figure: Ren´
e Magritte,
Le Calcul Mental. 1940.
the type integer
intervals
sign: {. . . , −3, −2, −1, 0, 1, 2, 3, . . .}
abstracted by {⊥, −, 0, +, (− and 0), (0 and +), ⊤}
⊤ (top, no information)
(− and 0) (0 and +)
− 0 +
⊥ (bottom, no information yet)
Figure: Hasse diagram of the complete lattice of signs.
Properties of a lattice are such that it contains the join of 2 elements
and the succession of operation give a fixed point.
An Efficient and Parallel Abstract Interpreter in Scala — Second Presentation 6 / 21