Goto and Concurrency Introducing Safe Jumps in Esterel

Esterel is a design language for the specification of real time embedded systems. Based on the synchronous concurrency paradigm, its semantics describes execution as a succession of instants of computation. In this work, we consider the introduction of a new gotopause instruction in the language, which acts as a non-instantaneous jump instruction compatible with concurrency. It allows the programmer to activate state control points anywhere in the program, from where the execution is resumed in the next instant. In order to provide the formal semantics of the extended language, we first define a state semantics of Esterel, which we prove observationally equivalent to the original logical behavioral semantics. Including gotopause in the state semantics is then straightforward. We sketch two key applications of our new primitive: a direct encoding of automata and a quasi-linear rewriting of programs eliminating schizophrenic behaviors.

[1]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[2]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[3]  Stephen A. Edwards,et al.  Languages for Digital Embedded Systems , 2000 .

[4]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[5]  BerryGérard,et al.  The ESTEREL synchronous programming language , 1992 .

[6]  Robert de Simone,et al.  Optimizations for faster execution of Esterel programs , 2003, First ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2003. MEMOCODE '03. Proceedings..

[7]  Gérard Berry,et al.  The constructive semantics of pure esterel , 1996 .

[8]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.

[9]  Ilaria Castellani,et al.  An Algebraic Characterization of Observational Equivalence , 1996, Theor. Comput. Sci..

[10]  Ch. Andre,et al.  Synccharts: A visual representation of reactive behaviors , 1995 .

[11]  Robert de Simone,et al.  Instantaneous Termination in Pure Esterel , 2003, SAS.

[12]  Michel Poize,et al.  SAXO-RT: Interpreting Esterel Semantic on a Sequential Execution Structure , 2002, SLAP@ETAPS.

[13]  G. Plotkin,et al.  Proof, language, and interaction: essays in honour of Robin Milner , 2000 .

[14]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.

[15]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[16]  Frederic Mignard Compilation du langage esterel en systemes d'equations booleennes , 1994 .

[17]  K. Schneider,et al.  A new method for compiling schizophrenic synchronous programs , 2001, CASES '01.

[18]  S. Edwards Compiling Esterel into sequential code , 2000, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[19]  Charles André Representation and Analysis of Reactive Behaviors: A Synchronous Approach , 2000 .