The MemCAD static analyser: shape, value and collection abstraction and application to(…)
summary
MemCAD implements a new sequence abstraction for unbounded sequences and plugs it into a reduced product of shape and value domains so the analyzer tracks list/tree shape plus lengths, extremal values and ordering. It is written functionally in OCaml with heavy use of functors (≈50 parametric modules), integrates into a C static analyser, and proves many functional-correctness properties (sorting, BST ops). It verifies a FreeRTOS-like microkernel instance (~1k LOC) with per-call times up to ~2 minutes, ~300s total for the suite, memory usage of a few GB; more precise but costlier than plain shape-only analyses.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 7:24Memory abstraction
- 25:46Value properties
- 30:01Collection abstractions
- 47:23Functional correctness
- 54:32Microkernel verification
- 56:17Key takeaways and future directions
- 56:40Q&A
related talks
27mLightweight Shape Analysis based on Physical Types
43mEverything I learned about static analysis and program safety in C++
32mSymbolic analysis by using folding narrowing with irreducibility and SMT constra...
20mACES: Automatic Compartments for Embedded Systems
49mCompiling to preserve our privacy
28mMemory simulations, security and optimization in a verified compiler
29müberSpark: Enforcing Verifiable Object Abstractions for Automated...
35mDeep-Kernel Treasure Hunt: Finding exploitable structures in the Linux kernel
