Extending Codex to a simple while language
We present a tutorial on a simple imperative while language, and demonstrates how to statically analyze programs written in it using Codex, a modular abstract interpretation library. This also serves as a nice introduction to various codex components (Lattices, Single_value_abstraction, Domains...). It is mostly meant for developers who wish to use and extend Codex.
- Chapter 1: Contains the syntax which is defined with variables, arithmetic, boolean expressions, and control structures (e.g.,
ifandwhile). It also provides a concrete interpreter for thewhilelanguage; - Chapter 2: Describes
LatticesandSingle_value_abstractionwith simpler implementations; - Chapter 3: Contains simple interval abstract domain which is then used to run the analysis on simple while programs;
- Chapter 4: Shows how one can use Codex building blocks to recreate the interval domain from chapter 3.