An Esterel compiler for large control-dominated systems
- 7 August 2002
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
- Vol. 21 (2) , 169-183
- https://doi.org/10.1109/43.980257
Abstract
Embedded hard real-time software systems often need fine-grained parallelism and precise control of timing, things typical real-time operating systems do not provide. The Esterel language has both, but compiling large Esterel programs has been challenging, producing either needlessly slow or large code. This paper presents the first Esterel compiler able to compile large Esterel programs into fast, small code. By choosing a concurrent control-now graph (CCFG) as its intermediate representation, it preserves many of the control constructs to produce code that can be 100 times faster and half the size than code from other compilers with similar capacity. The primary contribution is an algorithm that generates efficient sequential code from a CCFG. While developed specifically for compiling Esterel, the algorithm could be used to compile other synchronous languages with fine-grained parallelism.Keywords
This publication has 20 references indexed in Scilit:
- Efficient chaotic iteration strategies with wideningsPublished by Springer Nature ,2006
- ESTEREL: a formal method applied to avionic software developmentScience of Computer Programming, 2000
- Synthesis of software programs for embedded control applicationsIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 1999
- Automatic distribution of reactive systems for asynchronous networks of processorsIEEE Transactions on Software Engineering, 1999
- Generating efficient protocol code from an abstract specificationIEEE/ACM Transactions on Networking, 1997
- The Esterel synchronous programming language: design, semantics, implementationScience of Computer Programming, 1992
- The synchronous data flow programming language LUSTREProceedings of the IEEE, 1991
- The synchronous approach to reactive and real-time systemsProceedings of the IEEE, 1991
- A fast algorithm for finding dominators in a flowgraphACM Transactions on Programming Languages and Systems, 1979
- An Algorithm for Structuring FlowgraphsJournal of the ACM, 1977