ABSTRACT
Traditionally, compilers have been internally organized into separate phases that are invoked in a fixed, predetermined order. However, the optimal phase invocation order is usually different for different contexts, such as (1) large batch-oriented production environments, (2) small batch-oriented student environments, and (3) interactive programming environments.
We discuss the constraints that must be met in order to obtain a compiler with flexible phase ordering, a property that allows the compiler to be designed and implemented without consideration for the intended operating environment. Flexible phase ordering allows the compiler to be specially configured after the fact. A production compiler based on this principle is also discussed.
- 1.Wulf,W. et al. The Design of an Optimizing Compiler, Elsevier, 1975. Google ScholarDigital Library
- 2.des Rivieres,J. and LaLonde,W.R. The Design of CP-6 Pascal. School of Computer Science report SCS-TR-1, Carleton University, Ottawa, (forthcoming).Google Scholar
- 3.Goos,G. and Wulf,Wm.A. (eds.) DIANA Reference Manual. Department of Computer Science report CMU-CS-81-101, Carnegie-Mellon University, Pittsburgh, March 1981.Google Scholar
Index Terms
- A flexible compiler structure that allows dynamic phase ordering
Recommendations
A flexible compiler structure that allows dynamic phase ordering
Proceedings of the 1982 SIGPLAN symposium on Compiler constructionTraditionally, compilers have been internally organized into separate phases that are invoked in a fixed, predetermined order. However, the optimal phase invocation order is usually different for different contexts, such as (1) large batch-oriented ...
The Intel labs Haskell research compiler
Haskell '13The Glasgow Haskell Compiler (GHC) is a well supported optimizing compiler for the Haskell programming language, along with its own extensions to the language and libraries. Haskell's lazy semantics imposes a runtime model which is in general difficult ...
Compositional compiler construction
We describe an implementation of an Oberon0 compiler using the techniques proposed in the CoCoCo project. The compiler is constructed out of a collection of pre-compiled, statically type-checked language-definition fragments written in Haskell. Oberon0 ...
Comments