Coco/R - A Generator for Fast Compiler Front-Ends

Hanspeter Mössenböck
ETH Zurich
Institute of Computer Systems
ETH-Zentrum
CH-8092 Zurich
moessenboeck@ssw.uni-linz.ac.at


Abstract

Formal compiler descriptions serve two purposes: (1) they can be used as a reference document which specifies the syntax and the semantics of a language, and (2) they provide a convenient notation from which efficient compilers can be generated. Compiler generating systems put emphasis on either the one or the other of these aspects. The system described in this report mainly concentrates on the second goal. We show that it is possible to generate compilers that are as efficient as hand-coded and carefully optimized production-quality compilers. Our system generates recursive descent parsers with a simple error-handling mechanism and scanners with a special buffering scheme. Almost as important as efficiency is the simplicity and adequacy of the system. Programmers are not willing to use a tool if it does not come in handy in their work, if it uses a cryptic notation or a multitude of options and special cases. The tool should make their work easier without limiting their flexibility. We used our system to generate an Oberon compiler that is even faster than the standard Oberon compiler used at ETH.


Technical Report, ETH Zurich, Computer Science, February 1990.

You can download the report in compressed postscript.