Abstract. In this article we introduce a novel model for compilation and compiler construction, the CoSy(COmpiler SYstem) model. CoSy provides a framework for exible combination and embedding of compiler phases | called engines in the sequel | such that the construction of parallel and (inter-procedural) optimizing compilers is facilitated. In CoSy a compiler writer may program some phase in a target language and embed it transparently | without source code changes | into di erent compiler contexts, such as with alternative phase order, speculative evaluation 4 , parallel evaluation, and generate-and-test evaluation. Compilers constructed with CoSy can be tuned for di erent host systems (the system the compiler runs on, not the system it produces code for) and are transparently scalable for (shared memory) multiprocessor host con gurations. To achieve this, CoSy provides an engine description language (EDL) which allows to describe the control ow and interaction of compiler engines. A novel structure de nition language (fSDL) is introduced for the speci cation of data, access side e ects, and visibility control. A con guration description (CCL) is used to tune the embedding of the engines to the host system characteristics and limitations. In order to guarantee transparent embedding, CoSy introduces for each engine a logical view on the common intermediate representation. CoSy generates code that maps these views onto the physical representation, code that helps the programmer to manipulate it, as well as code that schedules the interaction of the engines. The proposed model of compilation does not depend on source language, programming language, or host architecture. It is not restricted to compiler construction and may have applications in a wide area of software engineering.
In REF , Alt et al. propose the CoSy model, which provides a framework for flexible combination and embedding of compiler phases to ease the construction of parallel and optimizing compilers.
Cosy Compiler Phase Embedding with the CoSy Compiler Model
CC
Computer Science