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

Jan Lukoschus and Reinhard von Hanxleden

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.