An Efficient and
Parallel Abstract
Interpreter
in Scala
—
Presentation
Abstract
interpretation for
static analysis
Concrete vs
abstract
interpretation
Parallelism
Next steps
References
Example of abstraction
{. . . , −3, −2, −1, 0, 1, 2, 3, . . .} abstracted by sign = {⊥, +, 0, −, ⊤}
⊤
− 0 +
⊥
Figure: Hasse diagram of the complete lattice of signs.
top ⊤ = {. . . , −3, −2, −1, 0, 1, 2, 3, . . .}
+ = {1, 2, 3, . . .}
0 = {0}
− = {−1, −2, −3, . . .}
bottom ⊥ = ∅
May be good abstraction for multiplication operations.
With additions, directly loss of precision.
An Efficient and Parallel Abstract Interpreter in Scala — Presentation 6 / 24