Realistic compiler generation
By: Peter Lee.
Series: Foundations of computing
Publisher: MIT Press
Published: 1989
Place of publication: Cambridge, Mass
Language: eng
Number of pages: 246
Subjects: Compilers (Computer programs); Programming languages (Electronic computers) -- Semantics.
First sentence: The term compilation refers to the translation of a program written in a source language to a program with an equivalent meaning in an target language.
Description: This book describes and surveys semantics-based compiler generation and presents a new method for expressing the formal semantics of programming languages that allows realistic compilers to be generated automatically.  The book demonstrates a working compiler generator called MESS, which is used to generate a realistic compiler for a Pascal-like language.  The generated compiler is then compared with several hand-crafted compilers and shown to be at least comparable, and in some cases superior, performance.  (from back-cover copy)
Notes: Bibliography: p. [237]-242.
Includes index.
Table of contents: value: Series Forward; value: Forward; value: Perface; value: . 1: Compiler Generation, 1; value: 1.1: A New Approach, 3; value: 1.2 A Preview of the Book, 4; value: . 2: Tools for Pratical Compiler Generation, 9; value: 2.1: The Idealized Structure of a Compiler, 9; value: 2.2: The Structure of Real Compilers, 11; value: 2.3: Compiler Generation Tools, 12; value: 2.4: Semantics-Directed Compiler Generation, 14; value: 2.5 Summary; value: . 3: Semantics-Directed Compiler Generation, 17; value: 3.1: Methods for Formal Description of Semantics, 17; value: 3.2: Classical Compiler Generation, 20; value: 3.3: The Structure of Denotational Descriptions, 21; value: 3.4: An Example of Denotational Semantics, 27; value: 3.5: Implementing Denotational Semantics, 36; value: 3.6: Existing Classical Compiler Generators, 44; value: 3.7: Nonclassical Compiler Generation, 47; value: 3.8: Summary, 49; value: . 4: Problems with Using Denotational Semantics, 51; value: 4.1: The Use of a Low-Level Notation, 51; value: 4.2: The Lack of Separability, 53; value: 4.3: The Loss of Semantic Distinctions, 60; value: 4.4: Overspecification of Semantics, 62; value: 4.5: The Lack of a Static/Dynamic Distinction, 64; value: 4.6: Summary, 65; value: . 5: High-Level Semantics, 67; value: 5.1: An Overview of High-Level Semantics, 67; value: 5.2: The Macrosemantics, 72; value: 5.3: The Microsemantics, 86; value: 5.4: Extending High-Level Semantic Specifications, 93; value: 5.5 Summary, 109; value: . 6: The MESS System, 111; value: 6.1: Comparison with Paulson's Semantics Processor, 113; value: 6.2: Generating the Compiler, 116; value: 6.3: Compiling Programs, 117; value: 6.4: Executing the Compiled Programs, 117; value: . 7: A SOL/C Compiler, 119; value: 7.1: The Generation of a Compiler for Sol/C, 119; value: 7.2 Compilation of SOL/C Programs, 120; value: 7.3 Performance Evaluation of the Compiler, 120; value: 7.4 Correctness Concerns, 122; value: . 8 Conclusions, 125; value: 8.1 Extensions to MESS, 126; value: 8.2 A Language Designer's Workbench, 127; value: . A A Traditional Denotational Semantics for HypoPL, 131; value: . B A Macrosemantics for HypoPL, 139; value: . C Four Microsemantic Specificatons for HypoPL, 149; value: . D A Compiler for HypoPL, 189; value: . E The HypoPL Bubble-Sort Program, 193; value: . F A Macrosemantics for SOL/C, 201; value: . G SOL/C Benchmark Programs, 229; value: . H Using the MESS System, 235; value: Bibliography, 237; value: Index, 243