- Research Article
- Open access
- Published:
Removing Cycles in Esterel Programs
EURASIP Journal on Embedded Systems volume 2007, Article number: 048979 (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.
References
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.805826
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-V
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.97300
Berry G: The Constructive Semantics of Pure Esterel. draft Book, 1999, ftp://ftp-sop.inria.fr/esterel/pub/papers/constructiveness3.ps
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,
Esterel.org, Esterel history, http://www-sop.inria.fr/esterel.org/Html/History/History.htm
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-1
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.
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.293952
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.
Berry G, Bouali A, Bres Y, et al.: The Esterel v5_91 System Manual. INRIA, June 2000, http://www-sop.inria.fr/esterel.org/
CEC: The Columbia Esterel Compiler http://www1.cs.columbia.edu/~sedwards/cec/
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.980257
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-8
Potop-Butucaru D: Optimizations for faster simulation of Esterel programs, Ph.D. thesis. Ecole des Mines de Paris, Paris, France; 2002.
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
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.
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.
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
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.
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
Boussinot F: SugarCubes implementation of causality. In Research Report RR-3487. INRIA, Le Chesnay Cedex, France; 1998.
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
Estbench Esterel Benchmark Suite http://www1.cs.columbia.edu/~sedwards/software/estbench-1.0.tar.gz
Esterel web, http://www-sop.inria.fr/esterel.org/
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.115320
Esterel Technologies Company homepage, http://www.esterel-technologies.com/
Free Software Foundation : GCC—The GNU Compiler Collection. http://gcc.gnu.org/
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 2.0 International License (https://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
About this article
Cite this article
Lukoschus, J., von Hanxleden, R. Removing Cycles in Esterel Programs. J Embedded Systems 2007, 048979 (2007). https://doi.org/10.1155/2007/48979
Received:
Revised:
Accepted:
Published:
DOI: https://doi.org/10.1155/2007/48979