Dule

Dule is a module system and an experimental programming language with formal category-theoretic semantics. See my ongoing attempt to explain Dule in 700 words .


The categorical model of the module system is very simple and general. The semantics is short, clean and extendable, with strong invariants. The module system features novel programming mechanisms inspired by the categorical semantics and allows for extremely modular programming, as experiments indicate.

The Dule compiler translates Dule programs into the language of the base layer of our categorical model. Then the programs are executed using combinator reduction designed on the basis of equational theory of the model category. The base layer of our categorical model is an interesting non-modular programming language on its own, providing a general framework to reason about novel data type constructions, resolving their conflicts, optimization of reduction, etc.


The source code of the Dule compiler is available for download together with example Dule programs. The source code can be compiled as described in the enclosed README file. (For 32-bit i386 processors there is also a compiled binary enclosed in the archive.) The compiler binary, in turn, can be used for compiling Dule programs as described in the README file.

You can easily browse on-line the source code of the Dule compiler. Dule is is extensively documented, including an informal tutorial, formal semantics and a description of the compiler, in the Ph.D. dissertation of Mikolaj Konarski, available in many formats, most with hyper-links. There are also some papers and notes related to Dule. Here is the post-PhD TODO list.


The Dule language definition, documentation and web-pages are
Copyright (C) 2003--2011 Mikolaj Konarski
http://www.mimuw.edu.pl/~mikon/index.html
mikon@mimuw.edu.pl

The Dule compiler is
Copyright (C) 2003--2011 Patryk Czarnik, Pawel Findeisen, Andrzej Gasienica-Samek, Tomasz Kolinko, Mikolaj Konarski, Lukasz Kozuchowski, Aleksander Naleczynski, Piotr Roszkowski, Stasiek Skowron, Michal Wesolowski and Comarch SA.

The Dule compiler is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The Dule compiler is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.