|
Abstract : |
Abstract. For a compiler writer, generating good machine code for a variety of platforms is hard work. One might try to reuse a retargetable code generator, but code generators are complex and difficult to use, and they limit one?s choice of implementation language. One might try to use C as a portable assembly language, but C limits the compiler writer?s flexibility and the performance of the resulting code. The wide use of C, despite these drawbacks, argues for a portable assembly language.C-- is a new language designed expressly for this purpose. The use of a portable assembly language introduces new problems in the support of such high-level run-time services as garbage collection, exception handling, concurrency, profiling, and debugging. We address these problems by combining theC-- language with aC-- run-time interface. The combination is designed to allow the compiler writer a choice of source-language semantics and implementation techniques, while still providing good performance. 1, |