Skip to content
Coq & Haskell code for Calculating Correct Compilers II
Coq Makefile Haskell
Branch: master
Clone or download
Latest commit 8d181b7 Sep 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
coq add Haskell files; restructure; delete old stuff Sep 24, 2019
haskell add Haskell files; restructure; delete old stuff Sep 24, 2019
.gitignore experiment with partial memory model Apr 19, 2018 fix broken links in README Sep 24, 2019

Calculating compilers for register machines

This repository contains a Coq formalisation of compiler calculations for register machines along with the full Haskell source code of the calculated compilers.

Coq formalisation

The Coq formalisation is located in the coq subfolder. Below we list the relevant Coq files for the calculations:

The remaining files are used to define the Coq tactics to support reasoning in calculation style and to provide auxiliary concepts:

  • Tactics.v: tactics for calculation style proofs
  • Machine.v: auxiliary definitions and tactics for virtual machines
  • Memory.v: the (axiomatic) memory model
  • LinearMemory.v: instantiation of the memory model (thus proving its consistency)
  • ListIndex.v: definitions to index elements in a list

Haskell code

The haskell subfolder contains the source code of the three compilers calculated in the paper:

You can’t perform that action at this time.