EURASIP Journal on Embedded Systems
Volume 2007 (2007), Article ID 48979, 23 pages
doi:10.1155/2007/48979
Research Article
Removing Cycles in Esterel Programs
Department of Computer Science, Christian-Albrechts-Universität zu Kiel, Olshausenstr. 40, Kiel 24098, Germany
Received 1 June 2006; Revised 14 January 2007; Accepted 6 March 2007
Academic Editor: Alain Girault
Copyright © 2007 Jan Lukoschus and Reinhard von Hanxleden. 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.
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.