Compiler Description Language, or CDL, is a language based on affix grammars. It is intended for the development of compilers. It is very limited in its capabilities and control flow. Although the language looks a bit like Prolog, control flow is entirely based on success/failure: there does not exist a logical NOT-operator in CDL3.
CDL3 is one of the most awful languages to have been rammed down students' throats. It is poorly documented, has a compiler with uninformative error messages, and does not even allow naming of variables: all variables of type T (e.g. INT, TEXT) are named T0, T1, T2, and so forth [1].