~/talk

Formulog: Datalog for SMT-Based Static Analysis

Talkat OOPSLA 2020 · 2020-11-15..11-20· [compilers-and-language-design]
links:none on file
links:none on file
slides:none on file

Formulog is a DSL that combines Datalog, an ML-like term fragment, and SMT solving and a prototype runtime implements it. The authors implement three analyses (refinement type checker, bottom-up points-to, symbolic LLVM evaluator) each 1–1.5k LOC, and compare the symbolic evaluator to KLEE and CBMC: exhaustive run times are 27 minutes vs ~3 minutes vs ~3 minutes; goal-directed queries make Formulog faster than KLEE and slightly faster than CBMC. The runtime is naive but automatic parallelization and goal-directed rewrites work and yield practical speedups.

AI-written summary · about

  1. 0:00Intro
  2. 1:13Ex: symbolic evaluation
  3. 1:40Encoding the input
  4. 2:18Encoding evaluator state With ML fragment
  5. 3:23Encoding evaluation
  6. 6:27Takeaways
  7. 8:11Datalog + ML + SMT Design in a nutshell
  8. 8:53Retain power of Datalog
  9. 9:28Retain power of SMT solving
  10. 10:17Guarantee safety
  11. 10:47Prototype Can design be basis of realistic tool?
  12. 11:09Wrote 3 substantial analyses Each 1-1.5K LOC of Formulog
  13. 11:38Results are promising
  14. 12:21Symbolic evaluator comparison On sorting benchmark
  15. 14:30Formulog Datalog for SMT-Based Static Analysis
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.