Capítulo de livro Acesso aberto Revisado por pares

Cosy compiler phase embedding with the CoSy compiler model

1994; Springer Science+Business Media; Linguagem: Inglês

10.1007/3-540-57877-3_19

ISSN

1611-3349

Autores

Martin Alt, Uwe Aßmann, Hans van Someren,

Tópico(s)

Software Testing and Debugging Techniques

Resumo

In this article we introduce a novel model for compilation and compiler construction, the CoSY(COmpiler SYstem) model. CoSy provides a framework for flexible 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 different compiler contexts, such as with alternative phase order, speculative evaluation, parallel evaluation, and generate-and-test evaluation. Compilers constructed with CoSy can be tuned for different host systems (the system the compiler runs on, not the system it produces code for) and are transparently scalable for (shared memory) multiprocessor host configurations.To achieve this, CoSy provides an engine description language (EDL) which allows to describe the control flow and interaction of compiler engines. A novel structure definition language (fSDL) is introduced for the specification of data, access side effects, and visibility control. A configuration 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.

Referência(s)