The CDL3 project at the
Radboud University Nijmegen in the Netherlands
is a framework for research in implementation languages and compiler
construction. CDL3 is a programming language, based on Affix Grammars,
intended for the development of compilers and other complicated
pieces of software that can be implemented as syntax-directed transducers.
Some publications about CDL3:
C.H.A. Koster and J. Beney (1991),
On the Borderline between Grammars and Programs.
In: Proceedings PLILP'91, Passau,
Springer Lecture Notes in Computer Science 528, p. 219-230.
This is the main article describing the rationale behind CDL3
- Caspar Derksen, "On the Transformational Derivation
of an Efficient Recognizer for Algol 68".
Masters Thesis no. 357, University of Nijmegen, August 1995
relates CDL3 to W-grammars and to Extended Affix Grammars
- The manual of the CDL3 system in
gzipped postscript or pdf .
Superficially, the language looks like PROLOG, a programming language
based on a related grammatical formalism namely Metamorphosis Grammars,
from which it distinguishes itself in two important aspects:
For these reasons, efficiency and static checking are much better than in
PROLOG. CDL3 is available as a compiler generator on numerous platforms,
producing either very efficient assembly code or (less efficient but
portable) C code. As a language for the efficient development of reliable
and maintainable compilers and transducers, CLD3 provides an interesting
and efficient way to generate C programs.
- the language is purely deterministic, without backtracking.
In fact it is based on a deterministic interpretation of Affix Grammars.
- the language is strongly typed, with typed terms as the basic
The CDL3 system has been developed by Jean Beney, Kees Koster and Paul
Jones at the Radboud University Nijmegen. It is freely available
under the GPL.
Cornelis H.A. Koster
Department of Computing Science
Radboud University Nijmegen
6525ED Nijmegen, The Netherlands
mail me at kees atsign cs.ru.nl