Documentation of the source code of MLCompCert
Source language
Constructor numbering :
Uncurrying :
Letrec elimination :
CPS conversion :
- CPS intermediate language with two kinds of de Bruijn indices
- CPS intermediate language
- Semantics based on substitution
- Semantics with environments
- Semantics equivalence
- The naive CPS conversion (only for proofs)
- The optimizing CPS conversion
- Translation
- One step beta v equivalence
- The transitive and reflexive closure of beta v equivalence
- Semantics preservation
- Come-back to nML
Closure conversion :
Conversion to the intermediate monadic form:
Materializing the set of roots :
Generation of Cminor code :
- Cminor: the first intermediate languge of the CompCert back-end
- Translation
- Proof helpers
- Specification of the behavior of a GC on memory
- Simulation scheme
- Semantics preservation
Composition of the front-end