Compiler generators : what they can do, what they might do, and what they will probably never do

Author(s)

Bibliographic Information

Compiler generators : what they can do, what they might do, and what they will probably never do

Mads Tofte

(EATCS monographs on theoretical computer science, v. 19)

Springer-Verlag, c1990

  • : u.s.
  • : gw

Available at  / 35 libraries

Search this Book/Journal

Note

Based on the author's thesis (Ph. D.)--Copenhagen, 1984

Includes bibliographical references and index

Translated from Danish

Description and Table of Contents

Description

The OrIgIn of this monograph is a course entitled "Semantics directed Compiler Generation" which Professor Neil D. Jones gave in 1982 at Copenhagen University, where I was a student at the time. In this course, he described a compiler generator, called CERES, which he was developing. I immediately felt attracted to the unusual combination of mathematical reasoning about com pilers and the small intricate building blocks that made up the running system. As I came to understand the system I discovered that within the existing mathematical framework one could express compiler generation as a special case of compilation; this led to a specification of a compiler generator which was bootstrapped on itself resulting in a machine-generated compiler generator. The purpose of this monograph is to describe the CERES system we produced in 1983-84 and compare it with other systems, includ ing more recent ones. Also, it is as relevant today as it was then to discuss the role of compiler generators as an aid in the design and implementation of programming languages; this I do in Chap. 5. This monograph is a strongly revised version of the cando scient.

Table of Contents

1 Introduction.- 1.1 The Scope of This Monograph.- 2 Report on the Compiler Generator CERES.- 2.1 Overview of CERES.- 2.1.1 On Composition of Programs.- 2.2 Description of Input to CERES.- 2.2.1 On "Concrete" Versus "Abstract" Syntax.- 2.2.2 The Semantic Language S.- 2.2.3 Writing Language Definitions.- 2.2.3.1 An Example: the Definition of LOOP.- 2.2.3.2 Extension with Products.- 2.2.3.3 Important Terminology Concerning Definitions.- 2.2.3.4 The Differences Between the Languages D and DS.- 2.2.4 Writing Interpretations.- 2.3 The Object Language T.- 2.4 The Compilers Generated by CERES.- 2.4.1 Translation from S into T by dS2T.- 2.4.2 Compilers Written as "Compiling Definitions".- 2.4.3 Compilers Written as Object Programs.- 2.4.4 Summary.- 2.5 The Compiler Generator.- 2.5.1 Compiler Generation Considered as Compilation.- 2.5.2 Definitions Regarded as Programs.- 2.5.2.1 The Abstract Syntax D of Definitions.- 2.5.2.2 The Language D.- 2.5.3 Translation from ? to D? by d' S2T.- 2.5.4 Translation from D? to S by dD?2S.- 2.5.5 The Definition ? of ?.- 2.5.6 The Compiler Generator cocom.- 2.5.7 How cocom Itself Was Generated.- 2.6 Implementation and Experience.- 2.6.1 Hardware and Software.- 2.6.2 Performance.- 2.6.3 The CERES Project.- 3 Compiler Generation, Composability, and Self-composability.- 3.1 Programming Languages and Compilers.- 3.2 The Compiler Generation Problem.- 3.3 Using a Semantic Language to Define Programming Languages.- 3.4 Composability and Self-composability.- 4 Discussion of Technical Aspects of Compiler Generation.- 4.1 The Algebraic Connection.- 4.1.1 Basic Concepts.- 4.1.2 Compiler Algebras and Homomorphic Translation.- 4.1.3 The Difference Between Compiler Algebras and Target Language Algebras.- 4.1.4 On the Need for Powerful Compiler Algebra Operations.- 4.1.5 Conclusion.- 4.2 On Choosing Good Semantic Languages.- 4.2.1 Mosses' "Semantics Implementation System" (SIS).- 4.2.2 Paulson's Compiler Generator (PCG).- 4.2.3 CERES and LAMBDA-CERES.- 4.2.4 The SAM System.- 4.2.5 Conclusion.- 4.3 Interface Problems.- 5 On Semantics, Compiler Generation, and Hacking.- 5.1 On the Nature of Machine-Readable Language Definitions.- 5.2 On Writing Language Definitions.- 5.3 On the Role of Mathematical Proofs.- Appendix 1 The LOOP Interpretation.- Appendix 4 The SelfComposer.- References.- Table of Symbols and Their Meanings.

by "Nielsen BookData"

Related Books: 1-1 of 1

Details

  • NCID
    BA10516874
  • ISBN
    • 0387514716
    • 3540514716
  • LCCN
    90009432
  • Country Code
    gw
  • Title Language Code
    eng
  • Text Language Code
    eng
  • Original Language Code
    dan
  • Place of Publication
    Berlin ; New York
  • Pages/Volumes
    xi, 146 p.
  • Size
    25 cm
  • Classification
  • Subject Headings
  • Parent Bibliography ID
Page Top