Academic Commons

Articles

Code Generation in the Columbia Esterel Compiler

Edwards, Stephen A.; Zeng, Jia

The synchronous language Esterel provides deterministic concurrency by adopting a semantics in which threads march in step with a global clock and communicate in a very disciplined way. Its expressive power comes at a cost, however: it is a difficult language to compile into machine code for standard von Neumann processors. The open-source Columbia Esterel Compiler is a research vehicle for experimenting with new code generation techniques for the language. Providing a front-end and a fairly generic concurrent intermediate representation, a variety of back-ends have been developed. We present three of the most mature ones, which are based on program dependence graphs, dynamic lists, and a virtual machine. After describing the very different algorithms used in each of these techniques, we present experimental results that compares twenty-four benchmarks generated by eight different compilation techniques running on seven different processors.

Subjects

Files

Also Published In

Title
EURASIP Journal on Embedded Systems
DOI
https://doi.org/10.1155/2007/52651

More About This Work

Academic Units
Computer Science
Published Here
September 22, 2011