Abstract
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.
This work was supported in part by ESPRIT project No. 5399 COMPARE
Chapter PDF
References
D. G. Bradlee. Retargetable Instruction Scheduling for Pipelined Processors. PhD thesis, University of Washington, 1991.
F.C. Chow and J.L. Hennessy. Register allocation by priority based coloring. In Proceedings of the ACM SIGPLAN Symp. on Compiler Construction, June 1984.
G.J. Chaitin. Register allocation and spilling via graph coloring. In SIGPLAN Conference on Programming Language Design and Implementation, June 1982.
Frank DeRemer and Hans Kron. Programming-in-the-large versus Programming-in-the-small. IEEE, Nov 1976.
T. Granlund and R. Kenner. Eliminating branches using a superoptimizer and the GNU C compiler. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 341–352. ACM, June 1992.
L. J. Hendren, G. R. Gao, E. R. Altman, and C. Mukerji. A register allocation framework based on hierrchical cyclic interval graphs. In U. Kastens and P. Pfahler, editors, CC 92, 4th International Conference on Compiler Construction, LNCS 641, pages 176–191, 1992.
Pierre Jouvelot and David K. Gifford. Algebraic reconstruction of types and effects. In ACM Conference on Principles of Programming Languages (POPL), 1990.
M. S. Lam and M. C. Rinard. Coarse-grain parallel programming in Jade. In ACM Conference on Principles and Practice of Parallel Processing (PPOPP), pages 94–105. Computer Systems Laboratory, Stanford University, 1991.
Y-f. Lee and B. Ryder. A comprehensive approach to parallel data flow analysis. In H. Zima, editor, Workshop on compilers for parallel computers. Austrian Center for Parallel Computation, 1992.
J.R. Nestor, J.M. Newcomer, P. Giannini, and D.L. Stone. IDL:The Language and its Implementation. Prentice Hall, Englewood Cliffs, 1989.
Walter F. Tichy. Software Development Control Based on Module Interconnection. In Proc. of the 4th International Conference on Software Engineering, Sep 1979.
D. Whitfield and M. L. Soffa. An approach to ordering optimizing transformations. In ACM Conference on Principles and Practice of Parallel Programming (PPOPP), 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Alt, M., Aßmann, U., van Someren, H. (1994). Cosy compiler phase embedding with the CoSy compiler model. In: Fritzson, P.A. (eds) Compiler Construction. CC 1994. Lecture Notes in Computer Science, vol 786. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57877-3_19
Download citation
DOI: https://doi.org/10.1007/3-540-57877-3_19
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57877-2
Online ISBN: 978-3-540-48371-7
eBook Packages: Springer Book Archive