Instantaneous Transitions in Esterel

Tardieu, Olivier; Edwards, Stephen A.

Esterel is an imperative synchronous programming language for the specification of deterministic concurrent reactive systems. While providing the usual control-flow constructs—sequences, loops, conditionals, and exceptions—its lack of a goto instruction makes the programming of arbitrary finite state machines awkward and hinders the design of source-to-source program transformations. We previously introduced to Esterel a non-instantaneous gotopause instruction, which prevents the synchronous execution of code before and code after the transition. Here, we tackle instantaneous transitions. Concurrency demands we assign scopes and priorities to gotos, so we extend Esterel's exception handling mechanism to allow exception handlers in arbitrary locations. We advocate for and formalize the resulting language. We observe that instantaneous gotos complement but do not replace non-instantaneous gotopauses.



  • thumnail for tardieu2007instantaneous.pdf tardieu2007instantaneous.pdf application/pdf 196 KB Download File

Also Published In

Proceedings of the International Workshop on Model-driven High-level Programming of Embedded Systems (SLA++P 2007)

More About This Work

Academic Units
Computer Science
Electronic Notes in Theoretical Computer Science
Published Here
September 22, 2011