An Ob ject-Oriented Compiler Construction To olkit TimothyP. Justice Department of Computer Science Oregon State University Corvallis, Oregon 97331{320 2
[email protected] March 12, 1993 Abstract Although standard to ols have b een used for lexical and syntactic analysis since the late 1970's, no standard to ols exist for the remaining parts of a compiler. Part of the reason for this de ciency is due to the diculty of pro ducing elegant to ols capable of handling the large amountofvariation involved in the compiling pro cess. The Ob ject-oriented Compiler Supp ort to olkit is a suite of reusable software comp onents designed to assist the compiler writer with symb ol management, typ e checking, intermediate representation construction, optimization, and co de generation. A collection of C++ classes de nes a common interface to these to ols. Variations in implementation are encapsulated in separately compiled mo dules that are selected and linked into the resulting compiler. 1 Intro duction A compiler is a program that translates a source language into an equivalent target language. The pro cess of compilation is well studied [ASU86, FL91, Hol90, Pys88]. Standard to ols have b een in use since the late 1970's for lexical analysis and syntactic analysis, however no such standard to ols exist for the remaining parts of a compiler. Perhaps the reason for this has less to do with our understanding of the problem or even the solution than the diculty of expressing an elegant solution that encompasses the large amount of variation existing within the problem.