Abstract
The fine-grained parallelism and the need for determinism are traditional issues in the design of real-time embedded software. In addition, the increasing complexity of the specifications requires an increasing use of higher level formalisms. The Esterel language offers natural solutions to all these problems, but its compilation proved challenging, so that efficient compilation techniques have only recently been proposed. Consisting essentially in direct simulation of the reactive primitives of the language, these techniques now need to be accommodated with traditional issues of Esterel: the definition of formal semantics, the constructive causality, and the design of analysis and optimization methods that are both efficient and correct.
We address these problems by defining a new intermediate model, called GRC, for the representation of Esterel programs. The GRC representation preserves much of the initial program structure while making the control flow pattern and the hierarchical state structure explicit. It fully complies with the semantics of Esterel, and, most important, it is a good support for efficient analysis, optimization, and code generation algorithms based on static analysis.
The use of a GRC-based approach results in significant efficiency and generality gains. The approach could be extended to the hardware compilation of Esterel and to the compilation of other synchronous languages with fine-grained parallelism.
Partly supported by the ARTIST European project
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Charles André. Representation and analysis of reactive behaviors: A synchronous approach. In Proceedings CESA’96,Lille, France, July 1996. Also available as I3S technical report RR 95–52.
Albert Benveniste and Gérard Berry. The synchronous approach to reactive and real-time systems. Proceedings of the IEEE, 79 (9): 1270–1282, 1991.
Gérard Berry, Amar Bouali, Xavier Fornari, Emmanuel Ledinot, Eric Nassor, and Robert de Simone. Esterel: A formal method applied to avionic software development. Science of Computer Programming, 36: 5–25, 2000.
Albert Benveniste, Paul Caspi, Stephen Edwards, Nicolas Halbwachs, Paul LeGuernic, and Robert de Simone. The synchronous languages 12 years later. Proceedings of the IEEE, 91 (1): 64–83, 2003.
F. Balarin, M. Chiodo, P. Giusto, H. Hsieh, A. Jurecska, L. Lavagno, A. Sangiovanni-Vincentelli, E. Sentovich, and K. Suzuki. Synthesis of software programs for embedded control applications. IEEE Transactions on Computer-Aided Design, 18 (6): 834–849, 1999.
Frédéric Boussinot and Robert de Simone. The Esterel language. Proceedings of the IEEE, 79 (9): 1293–1304, 1991.
Gérard Berry. Esterel on hardware. Philosophical Transactions of the Royal Society of London, Series A, 339: 87–104, 1992.
Gérard Berry. The constructive semantics of Pure Esterel. Draft book available at http://www.esterel-technologies.com1999.
Gérard Berry and Georges Gonthier. The Esterel synchronous programming language: Design, semantics, implementation. Science of Computer Programming, 19 (2): 87–152, 1992.
Yannis Bres. Exploration implicite et explicite de l’espace d’états atteignables de circuits logiques Esterel (Implicit and explicit exploration of the reachable state space of Esterel logic circuits).PhD thesis, Ecole des Mines de Paris, december 2002.
Claude Castelluccia, Walid Dabbous, and Sean O’Malley. Generating efficient protocol code from an abstract specification. IEEE/ ACM Transactions on Networking, 5 (4): 514–524, 1997.
M. Chiodo, D. Engels, P. Giusto, H. Hsieh, A. Jurecska, L. Lavagno, K. Suzuki, and A. Sangiovanni-Vincentelli. A case study in computer-aided co-design of embedded systems. Design Automation for Embedded Systems, 1: 51–67, 1996.
Paul Caspi, Alain Girault, and Daniel Pilaud. Automatic distribution of reactive systems for asynchronous networks of processors. IEEE Transactions on Software Engineering, 25 (3): 416–427, 1999.
Etienne Closse, Michel Poize, Jacques Pulou, Patrick Vernier, and Daniel Weil. Saxo-RT: Interpreting Esterel semantic on a sequential execution structure. In Florence Maraninchi, Alain Girault, and Eric Rutten, editors, Electronic Notes in Theoretical Computer Science, volume 65. Elsevier, 2002.
Stephen Edwards. An Esterel compiler for large control-dominatedsystems. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,21(2), February 2002.
Stephen Edwards. Making cyclic circuits acyclic. In Proceedings of the 40th conference on Design automation, Anaheim, CA, USA, 2003.
The Esterel manual, part of the Esterel version 5.92 distribution.Available for download at www.esterel-technologies.com, 2000.
Robert French, Monica Lam, Jeremy Levitt, and Kunle Olukotun. A general method for compiling event-driven simulations. In Proceedings of the 32nd Design Automation Conference, San Francisco, CA, USA, 1995.
Nicolas Halbwachs. Synchronous programming of reactive systems. Kluwer Academic Publishers, 1993.
Nicolas Halbwachs, Paul Caspi, Pascal Raymond, and Daniel Pi-laud. The synchronous data flow programming language Lustre. Proceedings of the IEEE, 79 (9): 1305–1320, 1991.
Paul LeGuernic, Thierry Gauthier, Michel LeBorgne, and Claude LeMaire. Programming real-time applications with Signal. Proceedings of the IEEE, 79 (9): 1321–1336, 1991.
Jaejin Lee, David Padua, and Samuel Midkiff. Basic compiler algorithms for parallel programs. In Proceedings of the 7th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming,Atlanta, GA, USA, 1999.
Luciano Lavagno and Ellen Sentovich. ECL: A specification environment for system-level design. In Proceedings of the 36th Design Automation Conference,New Orleans, LA, 1999.
Steven Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, 1997.
Dumitru Potop-Butucaru. Fast redundancy elimination using highlevel structural information from Esterel. RR 4330, INRIA, Sophia Antipolis, France, 2001.
Dumitru Potop-Butucaru. Optimizations for faster simulation of Esterel programs. PhD thesis, Ecole des Mines de Paris, November 2002.
Tom Shiple, Gérard Berry, and Hervé Touati. Constructive analysis of cyclic circuits. In Proceedings of the International Design and Testing Conference, Paris, France, 1996.
Ellen Sentovich, Kanwar Jit Singh, Luciano Lavagno, Cho Moon, Rajeev Murgai, Alexander Saldanha, Hamid Savoj, Paul Stephan, Robert Brayton, and Alberto Sangiovanni-Vincentelli. SIS: A system for sequential circuit synthesis. Memorandum M92/41, UCB, ERL, 1992.
Horia Toma. Analyse constructive et optimisation séquentielle des circuits générés à partir du langage synchrone réactif Esterel (Constructive analysis and sequential optimizations of circuits generated from the synchronous reactive language Esterel). PhD thesis, Ecole des Mines de Paris, September 1997.
Daniel Weil, Valérie Bertin, Etienne Closse, Michel Poize, Patrick Vernier, and Jacques Pulou. Efficient compilation of Esterel for real-time embedded systems. In Proceedings CASES200D, San Jose, CA, USA, 2000.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer Science+Business Media Dordrecht
About this chapter
Cite this chapter
Potop-Butucaru, D., de Simone, R. (2004). Optimizations for Faster Execution of Esterel Programs. In: Gupta, R., Guernic, P.L., Shukla, S.K., Talpin, JP. (eds) Formal Methods and Models for System Design. Springer, Boston, MA. https://doi.org/10.1007/978-1-4020-8052-4_11
Download citation
DOI: https://doi.org/10.1007/978-1-4020-8052-4_11
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4419-5464-0
Online ISBN: 978-1-4020-8052-4
eBook Packages: Springer Book Archive