Issue No.02 - June (1976 vol.2)
A.S. Tanenbaum , Vrije Universiteit
A method for quickly producing compilers for high level languages is described. The technique consists of feeding a description of the language to be translated to a general-purpose macro processor. Used in this way, the macro processor functions as a compiler-compiler, providing automatic parsing, lexical scanning, symbol table operations, and handling of syntactic errors. A complete syntactic and semantic description of a WHILE statement (except for Boolean expression processing) is given in only seven lines, as an example. A system programming language implemented by this method is discussed in order to illustrate the main ideas. The compiler produced for this language is compared to other compilers produced by conventional methods.
systems programming language, Compiler, compiler-compiler, implementation methodology, macro processor
A.S. Tanenbaum, "A General-Purpose Macro Processor as a Poor Man's Compiler-Compiler", IEEE Transactions on Software Engineering, vol.2, no. 2, pp. 121-125, June 1976, doi:10.1109/TSE.1976.233539