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
(EATCS monographs on theoretical computer science, v. 19)
Springer-Verlag, c1990
- : u.s.
- : gw
Available at 35 libraries
  Aomori
  Iwate
  Miyagi
  Akita
  Yamagata
  Fukushima
  Ibaraki
  Tochigi
  Gunma
  Saitama
  Chiba
  Tokyo
  Kanagawa
  Niigata
  Toyama
  Ishikawa
  Fukui
  Yamanashi
  Nagano
  Gifu
  Shizuoka
  Aichi
  Mie
  Shiga
  Kyoto
  Osaka
  Hyogo
  Nara
  Wakayama
  Tottori
  Shimane
  Okayama
  Hiroshima
  Yamaguchi
  Tokushima
  Kagawa
  Ehime
  Kochi
  Fukuoka
  Saga
  Nagasaki
  Kumamoto
  Oita
  Miyazaki
  Kagoshima
  Okinawa
  Korea
  China
  Thailand
  United Kingdom
  Germany
  Switzerland
  France
  Belgium
  Netherlands
  Sweden
  Norway
  United States of America
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"