Statecharts: A visual formalism for complex systems
Science of Computer Programming
On the development of reactive systems
Logics and models of concurrent systems
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Letters to the editor: go to statement considered harmful
Communications of the ACM
Mode-Automata: About Modes and States for Reactive Systems
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
The ESTEREL Synchronous Programming Language and its Mathematical Semantics
Seminar on Concurrency, Carnegie-Mellon University
A Comparison of Statecharts Variants
ProCoS Proceedings of the Third International Symposium Organized Jointly with the Working Group Provably Correct Systems on Formal Techniques in Real-Time and Fault-Tolerant Systems
Optimizations for Faster Execution of Esterel Programs
MEMOCODE '03 Proceedings of the First ACM and IEEE International Conference on Formal Methods and Models for Co-Design
A conservative extension of synchronous data-flow with state machines
Proceedings of the 5th ACM international conference on Embedded software
Synthesizing safe state machines from Esterel
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
Goto and Concurrency Introducing Safe Jumps in Esterel
Electronic Notes in Theoretical Computer Science (ENTCS)
Instantaneous termination in pure Esterel
SAS'03 Proceedings of the 10th international conference on Static analysis
Hi-index | 0.00 |
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.