General Advice On…
Useful courses and lecture notes
Useful textbooks
- Types and Programming Languages by Benjamin Pierce
- Calculus of Computation by Bradley and Manna
- Decision Procedures by Kroening and Strichman
- Formal Semantics of Programming Languages by Winskel
- Principles of Program Analysis by Nielson & Nielson
- Verification of Reactive System by Manna and Pnueli
- Advanced Topics in Types and PL by Benjamin Pierce
- Model Checking by Clarke, Grumberg, and Peled
Useful Tools and Program Analysis Frameworks
- LLVM
- Soot Program Analysis Framework for Java
- Doop framework for Java
- Boogie IL and verification language
- Interproc abstract interpretation engine
- SAIL IL and Infrastructure for C and C++
- Z3 SMT solver
- Chord Program Analysis Infrastructure for Java
- KLEE Symbolic Execution Engine
- Java Path Finder
- SATURN system for C