.CH "How to Use This Guide"
The first chapter of this [bf Guide] is the [ul Overview].
The [ul Overview] is a brief summary of the design and construction
of the code generator.
This chapter may be of general interest, but it is not necessary to
read it in order to learn to use the code generator.
.pp
The [ul Code Generator Usage] chapter describes the location of
the code generator and its associated run-time support libraries,
as well as the Software Tools Subsystem commands necessary to access
them.
Recommended procedure is to study this section, then generate
command language programs to do the low-level file access operations.
.pp
[ul Input Data Stream Formats] gives a bird's-eye view of the formats
of the three code generator input streams.
This chapter merits some study, although it is supplemented by the
[ul Extended Examples].
.pp
The three operator definitions chapters
([ul Operators Useful in the Static Data Stream],
[ul Operators Useful in the Procedure Definition Stream],
[ul Operators Useful in Procedure Definitions])
provide a detailed reference for the intermediate form operators
interpreted by the code generator.
One or two readings through this chapter are desirable;
thereafter, it can be used as a reference with the
[ul Operator/Function Index] and the Table of Contents used as entry
points.
.pp
The [ul Extended Examples] are comprised of several short (but complete)
programs written in the language C.
These examples include the original C code, annotated versions of the
three code generator input streams, and an annotated listing of the
code generator's assembly language output.
The chapter should be useful in learning how the various intermediate
form operators work together,
and may be used as a reference when building a new front end.
.pp
'Drift' is a very small expression-based language whose structure
closely mimics the code generator's internal world-model.
[ul The 'Drift' Compiler] is a complete, working compiler using the
code generator as a back-end.
It serves as an example of one way to construct a front-end for the
VCG.
.pp
For ease of reference, all the intermediate form operators have been
organized by subject in the [ul Intermediate Form Operator/Function Index].
Typically, one would look up some function (e.g., "subscripting") in
the [ul Index], find the name of the appropriate intermediate form
operator (e.g., INDEX_OP), then look up that operator in the table of
contents to find its complete description.
.EV
.fo //- # -//
