Open Access

Removing Cycles in Esterel Programs

EURASIP Journal on Embedded Systems20072007:048979

https://doi.org/10.1155/2007/48979

Received: 1 June 2006

Accepted: 6 March 2007

Published: 15 May 2007

Abstract

Esterel belongs to the family of synchronous programming languages, which are affected by cyclic signal dependencies. This prohibits a static scheduling, limiting the choice of available compilation techniques for programs with such cycles. This work proposes an algorithm that, given a constructive synchronous Esterel program, performs a semantics-preserving source code level transformation that removes cyclic signal dependencies. The transformation is divided into two parts: detection of cycles and iterative resolution of these cycles. It is based on the replacement of cycle signals by a signal expression involving no other cycle signals, thereby breaking the cycle. This transformation of cyclic Esterel programs enables the use of efficient compilation techniques, which are only available for acyclic programs. Furthermore, experiments indicate that the code transformation can even improve code quality produced by compilers that can already handle cyclic programs.

[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28]

Authors’ Affiliations

(1)
Department of Computer Science, Christian-Albrechts-Universität zu Kiel

References

  1. Benveniste A, Caspi P, Edwards SA, Halbwachs N, Le Guernic P, de Simone R: The synchronous languages 12 years later. Proceedings of the IEEE 2003,91(1):64-83. special issue on Embedded Systems 10.1109/JPROC.2002.805826View ArticleGoogle Scholar
  2. Berry G, Gonthier G: The Esterel synchronous programming language: design, semantics, implementation. Science of Computer Programming 1992,19(2):87-152. 10.1016/0167-6423(92)90005-VView ArticleMATHGoogle Scholar
  3. Halbwachs N, Caspi P, Raymond P, Pilaud D: The synchronous data flow programming language LUSTRE. Proceedings of the IEEE 1991,79(9):1305-1320. 10.1109/5.97300View ArticleGoogle Scholar
  4. Berry G: The Constructive Semantics of Pure Esterel. draft Book, 1999, ftp://ftp-sop.inria.fr/esterel/pub/papers/constructiveness3.ps
  5. Berry G: The Esterel v5 Language Primer, Version v5_91. Centre de Mathématiques Appliquées Ecole des Mines and INRIA, 06565 Sophia-Antipolis, 2000, ftp://ftp-sop.inria.fr/esterel/pub/papers/primer.pdf Centre de Mathématiques Appliquées Ecole des Mines and INRIA, 06565 Sophia-Antipolis, 2000,
  6. Esterel.org, Esterel history, http://www-sop.inria.fr/esterel.org/Html/History/History.htm
  7. Pandya P: The saga of synchronous bus arbiter: on model checking quantitative timing properties of synchronous programs. Electronic Notes in Theoretical Computer Science 2002,65(5):894-908. 10.1016/S1571-0661(05)80445-1View ArticleGoogle Scholar
  8. Lukoschus J, von Hanxleden R: Removing cycles in Esterel programs. In Proceedings of International Workshop on Synchronous Languages, Applications and Programming (SLAP '05), April 2005, Edinburgh, Scotland, UK Edited by: Maraninchi F, Pouzet M, Roy V.Google Scholar
  9. Malik S: Analysis of cyclic combinational circuits. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 1994,13(7):950-956. 10.1109/43.293952View ArticleMATHGoogle Scholar
  10. Shiple TR, Berry G, Touati H: Constructive analysis of cyclic circuits. Proceedings of European Design and Test Conference (ED&TC '96), March 1996, Paris, France 328-333.View ArticleGoogle Scholar
  11. Berry G, Bouali A, Bres Y, et al.: The Esterel v5_91 System Manual. INRIA, June 2000, http://www-sop.inria.fr/esterel.org/
  12. CEC: The Columbia Esterel Compiler http://www1.cs.columbia.edu/~sedwards/cec/
  13. Edwards SA: An Esterel compiler for large control-dominated systems. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 2002,21(2):169-183. 10.1109/43.980257View ArticleGoogle Scholar
  14. Closse E, Poize M, Pulou J, Venier P, Weil D: SAXO-RT: interpreting Esterel semantic on a sequential execution structure. Electronic Notes in Theoretical Computer Science 2002,65(5):864-878. 10.1016/S1571-0661(05)80443-8View ArticleGoogle Scholar
  15. Potop-Butucaru D: Optimizations for faster simulation of Esterel programs, Ph.D. thesis. Ecole des Mines de Paris, Paris, France; 2002.Google Scholar
  16. Yoong LH, Roop P, Salcic Z: Compiling Esterel for distributed execution. Proceedings of International Workshop on Synchronous Languages, Applications, and Programming (SLAP '06), March-April 2006, Vienna, Austria Google Scholar
  17. Li X, Boldt M, von Hanxleden R: Mapping Esterel onto a multi-threaded embedded processor. Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '06), October 2006, San Jose, Calif, USA 303-314.View ArticleGoogle Scholar
  18. Edwards SA: Making cyclic circuits acyclic. In Proceedings of the 40th Design Automation Conference (DAC '03), June 2003, Anaheim, Calif, USA. ACM Press; 159-162.Google Scholar
  19. Lukoschus J: Removing cycles in Esterel programs, Ph.D. thesis. Department of Computer Science, Christian-Albrechts-Universität Kiel, Kiel, Germany; 2006. http://e-diss.uni-kiel.de/tech-fak.html Google Scholar
  20. Schneider K, Wenz M: A new method for compiling schizophrenic synchronous programs. In Proceedings of International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES '01), November 2001, Atlanta, Ga, USA. ACM; 49-58.View ArticleGoogle Scholar
  21. Tardieu O: Goto and concurrency introducing safe jumps in Esterel. Proceedings of the 3rd International Workshop on Synchronous Languages, Applications, and Programs (SLAP '04), March 2004, Barcelona, Spain Google Scholar
  22. Boussinot F: SugarCubes implementation of causality. In Research Report RR-3487. INRIA, Le Chesnay Cedex, France; 1998.Google Scholar
  23. Schneider K, Brandt J, Schüele T, Tüerk T: Improving constructiveness in code generators. Proceedings of International Workshop on Synchronous Languages, Applications and Programming (SLAP '05), April 2005, Edinburgh, Scotland, UK Google Scholar
  24. Estbench Esterel Benchmark Suite http://www1.cs.columbia.edu/~sedwards/software/estbench-1.0.tar.gz
  25. Esterel web, http://www-sop.inria.fr/esterel.org/
  26. Cytron R, Ferrante J, Rosen BK, Wegman MN, Zadeck FK: Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems 1991,13(4):451-490. 10.1145/115372.115320View ArticleGoogle Scholar
  27. Esterel Technologies Company homepage, http://www.esterel-technologies.com/
  28. Free Software Foundation : GCC—The GNU Compiler Collection. http://gcc.gnu.org/

Copyright

© J. Lukoschus and R. von Hanxleden. 2007

This article is published under license to BioMed Central Ltd. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.