Abstract
This paper describes the implementation of a compiler for the programming language C. The compiler has been designed to be capable of producing assembly-language code for most register-oriented machines with only minor recoding. Most of the machine-dependent information used in code generation is contained in a set of tables which are constructed automatically from a machine description provided by the implementer. In the machine description, the implementer models the target machine by defining a machine- dependent abstract machine for which the code generator produces intermediate code. The implementer defines the translation from an abstract machine program to a target machine program by providing in the machine description a set of simple macro definitions for the abstract machine instructions. In addition, macro definitions may be provided in the form of C routines where additional processing capability is needed.