Delays in Esterel

The timing details in many embedded applications are inseparable from other behavioural aspects. Time is also a resource; a physical constraint on system design that introduces limitations and costs. Design and implementation choices are often explored and decided simultaneously, complicating both tasks and encouraging platform specific programs where the meaning of a specification is mixed with the mechanisms of implementation. The Esterel programming language is ideal for describing complex reactive behaviours. But, perhaps surprisingly, timing details cannot be expressed without making significant implementation choices at early stages of design. We illustrate this point with an example application where reactive behaviour and physical time are intertwined. A simple solution is proposed: add a statement for expressing delays in physical time. While there are similar statements or library calls in many programming languages, the novelty of our proposal is that the delay statements are later replaced with standard Esterel statements when platform details become available. Delays are thus expressed directly in terms of physical time, but later implemented as a discrete controller using existing techniques. This approach is familiar in control system design where analytical models are constructed in continuous time and then later discretized to produce implementations. We present some ideas for performing the translation and outline some of the remaining challenges and uncertainties.

[1]  Thomas Stauner,et al.  Modifying Esterel Concepts to Model Hybrid Systems , 2002, Electron. Notes Theor. Comput. Sci..

[2]  Joseph Sifakis,et al.  Building models of real-time systems from application software , 2003, Proc. IEEE.

[3]  R. K. Shyamasundar,et al.  Validating real-time constraints in embedded systems , 2001, Proceedings 2001 Pacific Rim International Symposium on Dependable Computing.

[4]  Michel Poize,et al.  TAXYS=Esterel+Kronos. A tool for verifying real-time properties of embedded systems , 2001, Proceedings of the 40th IEEE Conference on Decision and Control (Cat. No.01CH37228).

[5]  Walid Dabbous,et al.  Generating efficient protocol code from an abstract specification , 1996, SIGCOMM '96.

[6]  Florence Maraninchi,et al.  Verifying Quantitative Real-Time Properties of Synchronous Programs , 1993, CAV.

[7]  Gérard Berry,et al.  Preemption in Concurrent Systems , 1993, FSTTCS.

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

[9]  Sergio Yovine,et al.  KRONOS: a verification tool for real-time systems , 1997, International Journal on Software Tools for Technology Transfer.

[10]  Luciano Lavagno,et al.  Hardware-software co-design of embedded systems: the POLIS approach , 1997 .

[11]  Gérard Berry,et al.  Incremental development of an HDLC protocol in Esterel , 1989 .

[12]  Stephen A. Edwards,et al.  Compiling Esterel , 2007 .

[13]  Mariëlle Stoelinga,et al.  Quantitative testing , 2008, EMSOFT '08.

[14]  Jean-François Raskin,et al.  Almost ASAP semantics: from timed models to timed implementations , 2005, Formal Aspects of Computing.

[15]  Lalita Jategaonkar Jagadeesan,et al.  A formal approach to reactive systems software: A telecommunications application in Esterel , 1995, Proceedings of 1995 IEEE Workshop on Industrial-Strength Formal Specification Techniques.

[16]  Klaus Schneider,et al.  Extending synchronous languages for generating abstract real-time models , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.

[17]  Gérard Berry,et al.  Real Time Programming: Special Purpose or General Purpose Languages , 1989, IFIP Congress.

[18]  Ravi Sethi,et al.  Parallelism as a Structuring Technique: Call Processing using the Estrel Language , 1992, IFIP Congress.

[19]  S. Ramesh,et al.  Communicating reactive processes , 1993, POPL '93.