Version 279 (modified by benl, 4 years ago) (diff)


The Disciplined Disciple Compiler (DDC)

DDC is a research compiler used to investigate program transformation in the presence of computational effects. It compiles a family of strict functional core languages and supports region, effect and closure typing. This extra information provides a handle on the operational behaviour of code that isn't available in other languages. Programs can be written in either a pure/functional or effectful/imperative style, and one of our goals is to provide both styles coherently in the same language.

State of Play

DDC is at a stage where it will compile first order programs to executables, and parse and type-check higher order programs. Back-end support for higher functions isn't finished, and we don't have a garbage collector yet. See the Release Notes for a summary of what works.

Current Release

The current release is DDC 0.4.2 (April 2016).

DDC consists of the following packages. To get them all just install ddc-tools, and the others will be installed as dependencies.

  • ddc-tools Command line tools. This is the user interface for the other packages.
  • ddc-core-tetra Core language fragment using computation types instead of latent effects.
  • ddc-core-salt Intermediate representation for C like languages, and C code generator.
  • ddc-core Defines the abstract syntax, type checker, and substitution operators.
  • ddc-base Re-exports the main external dependencies of the Disciplined Disciple Compiler project.




GitHub page:

How to get help

How you can help

  • Download the compiler, do the tutorial, write programs.
  • File bug reports, fix tickets on the trac.
  • Complain if you can't work something out.

Further Reading