The CDL3 project at the University of
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.
The rationale behind CDL3 has been described in: 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. gzipped
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
Obtaining the cdl3 system
The cdl3 system has been developed by Jean Beney, Kees Koster and Paul Jones
at the University of Nijmegen. It is freely available for non-commercial use, on
an as-is basis. Commercial users are requested to contact:
Cornelis H.A. Koster
Department of Computing Science
Univesity of Nijmegen
Nijmegen, The Netherlands
mail me at kees atsign cs.kun.nl