Software

Compositional Data Types

A family of Haskell libraries for constructing modular data structures and modular functions.

Source code

Publications:

Modular Tree Automata

A Haskell library for building modular programs on tree structured data, based on (macro) tree transducers.

Source code

Publications:

Compilation with Structured Graphs

A prototype demonstrating the use of structured graphs for implementing compilers and reason about their correctness.

Source code

Publication: Proving Correctness of Compilers Using Structured Graphs

Attribute Grammars on Graphs

A library for implementing algorithms on acyclic graphs using attribute grammars.

Source code

Publication: Generalising Tree Traversals to DAGs

Calculating Correct Compilers

A Coq library for building correct-by-construction compilers.

Source code: equational approach; relational approach

Publications:

Modular Hoopl

A Haskell library for constructing optimising compilers.

Source code

Certified Financial Contract Management

A certified financial contract management system.

Source code

Publications: