Compiler Generators
Subtitle: What They Can Do, What They Might Do, and What They Will Probably Never Do
By: by Mads Tofte
Series: EATCS, Monographs on Theoretical Computer Science -- 19; EATCS monographs on theoretical computer science -- 19.
Publisher: Springer Berlin Heidelberg
Published: 1990
Place of publication: Berlin, Heidelberg
Language: eng
Format: [electronic resource] :
Number of pages: 146
ISBN-13: 9783642648571; 9783642615047
Subjects: Logic design; Software engineering; Computer science; Artificial intelligence
Description: This monograph is concerned with the problem of getting computers to transform formal language definitions into compilers. Its purpose is to demonstrate how certain simple theoretical ideas can be used to generate compilers and even compiler generators. As the title suggests, a realistic assessment of the relationship between the complexity of realistic compilation and the relative simplicity studied in theoretical work is attempted. The monograph contains an overview of existing compiler generators. The CERES '83 compiler generator, developed by Neil D. Jones and the author, is described in detail. The CERES system is based on the idea of composing language definitions and it serves as an example of a powerful novel "bootstrapping" technique by which one can generate compiler generators as well as compilers by considering a compiler generator to be, in a sense which is made mathematically precise, a special kind of compiler. The core of the CERES system is a two-page-long machine generated compiler generator. The approach uses ideas from denotational semantics and many-sorted algebra and connects them with novel ideas about how to treat programs and language definitions as data. Considerable effort has been made to present the necessary theory in a manner suitable for readers who have some practical experience but not necessarily a theoretical background in semantics.
Notes: Online full text is restricted to subscribers.

Also available in print.

Mode of access: World Wide Web.