Skip to main content

1990 | Buch

Compiler Generators

What They Can Do, What They Might Do, and What They Will Probably Never Do

verfasst von: Mads Tofte, Ph. D.

Verlag: Springer Berlin Heidelberg

Buchreihe : Monographs in Theoretical Computer Science. An EATCS Series

insite
SUCHEN

Über dieses Buch

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.

Inhaltsverzeichnis

Frontmatter
1. Introduction
Abstract
This monograph is concerned with the construction and use of compiler generators. A compiler generator is a program which from its input produces a compiler which translates from one programming language to another. Compiler generation is the field of Computer Science concerned with using computers as a tool for construct­ing compilers.
Mads Tofte
2. Report on the Compiler Generator CERES
Abstract
The compiler generator CERES has been developed in research environments, partly at the University of Aarhus and partly at the University of Copenhagen, and it is intended for use in such environments. We hope that CERES will serve to motivate consideration of certain ideas of general interest to researchers concerned with compiler generation. Furthermore, the system can be used in experiments with language design and as a basis for new compiler generators.
Mads Tofte
3. Compiler Generation, Composability and Self-composability
Abstract
As we saw in Chap. 2, CERES was built by putting together certain building blocks in certain ways. We now want to focus on the fundamental properties of these building blocks and the operations which combined them without going into any detail about what they might look like in practice.
Mads Tofte
4. Discussion of Technical Aspects of Compiler Generation
Abstract
While in Chaps. 2 and 3 we mainly wanted to present ideas, our aim is now to discuss ideas. We shall discuss a few selected, but basic, technical problems which are relevant to the compiler generator constructor. They are:
(1)
To what extent can compilation be expressed by homomorphisms, and to what extent can algebra be of help to compiler generator constructors?
 
(2)
What is a good semantic language?
 
(3)
Interface problems: in the big gap between a realistic source language and a realistic target language, what should be filled in by the compiler generator and what should be filled in by its user?
 
Mads Tofte
5. On Semantics, Compiler Generation, and Hacking
Abstract
Compiler generation is a meeting point for theory and practice in computing. On the one hand it is theoretical, because it tries to find a framework in which the semantics of programming languages can be expressed and theorems about the correctness of their implementation stated and proved. On the other hand it is oriented towards practice, in that it aims at making it easier and less costly to implement new “real-life” programming languages.
Mads Tofte
Backmatter
Metadaten
Titel
Compiler Generators
verfasst von
Mads Tofte, Ph. D.
Copyright-Jahr
1990
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-642-61504-7
Print ISBN
978-3-642-64857-1
DOI
https://doi.org/10.1007/978-3-642-61504-7