Talk:Compiler Description Language

CDL3 is difficult to program in. Because it is mainly used in academic context, the documentation is difficult to navigate. Furthermore, CDL3 has a compiler with uninformative error messages, and the language does not allow naming of variables: all variables of type T (e.g. INT, TEXT) are named T0, T1, T2, and so forth. This can be worked around using defines (similar to C #define), but this is a fairly messy solution.

Now that's what I call NPOV!

As for me, having programmed in CDL1 and CDL2 for about ten years (building a large Prolog system in CDL2 with a medium sized team) and having a solid background in two-level grammars, it looks like a very easy language to program in.

For the second part of the quote, i.e., that variables cannot be named, please read section 2.1.4 of the manual. In any case, the reason for this approach is that the "variables" are actually instances of types.

I'll try to come back and do some edits after I've read the CDL3 manual. Then someone can criticize my POV-s :-).

kovesp 22:14, 18 September 2007 (UTC)


 * My CDL2 experience predates CDL3's existence, so all I can say is: agreed, and please do something about it :) Rp (talk) 19:18, 9 February 2009 (UTC)


 * That paragraph really stood out when I read the article. It mostly consisted of opinions that I doubt are universal. I'm not an academic, but I'm not having problems understanding the CDL3 Manual (if that's what's meant by "the documentation"), and according to it CDL3 variables *can* be named quite freely. So I've deleted the paragraph. I hope that's okay. 118.93.27.122 (talk) 11:35, 19 August 2009 (UTC)

I changed MBP to mbp. The company used lowercase letters for the acronym. It stands for Mathamatischer Beratungs- und Programmierungsdienst. I used to work for the company and also worked on the COBOL compiler using CDL2. David Littlewood — Preceding unsigned comment added by 188.101.225.45 (talk) 18:15, 30 September 2011 (UTC)

It is very similar to Backus–Naur form(BNF) notation. I would say that the example program given shows that this is not true. Compare the extremely verbose BNF and the succinct one-level van Wijngaarden forms with CDL:
 * BNF

a: b, c;   d. TEST a: b, c;         d.
 * Van Wijngaarden
 * CDL

Error in the Intro
As an active CDL2-programmer i say: A succeeding alternative stops execution of other alternatives, not a failing one. --91.56.243.73 (talk) 16:40, 24 December 2012 (UTC)
 * Well caught. Failure will cause the next alternative to be tried; failure is supposed never to occur after an effect has occurred, but that is not a strictly enforced rule. Rp (talk) 19:44, 27 December 2012 (UTC)