Event-Driven Programming with Logical Execution Times

We present a new high-level programming language, called xGiotto, for programming applications with hard real-time constraints. Like its predecessor, xGiotto is based on the LET (logical execution time) assumption: the programmer specifies when the outputs of a task become available, and the compiler checks if the specification can be implemented on a given platform. However, while the predecessor language xGiotto was purely time-triggered, xGiotto accommodates also asynchronous events. Indeed, through a mechanism called event scoping, events are the main structuring principle of the new language. The xGiotto compiler and run-time system implement event scoping through a tree-based event filter. The compiler also checks programs for determinism (absence of race conditions).

[1]  A. D. Stoyenko,et al.  Real-time Euclid: a language for reliable real-time systems , 1989 .

[2]  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).

[3]  Thomas A. Henzinger,et al.  Time-Safety Checking for Embedded Programs , 2002, EMSOFT.

[4]  Thomas A. Henzinger,et al.  A programmable microkernel for real-time systems , 2005, VEE '05.

[5]  Edward A. Lee,et al.  Timed multitasking for real-time embedded software , 2003 .

[6]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[7]  Kwei-Jay Lin,et al.  Building flexible real-time systems using the Flex language , 1991, Computer.

[8]  Stavros Tripakis,et al.  From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications , 2003, LCTES '03.

[9]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

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

[11]  Alain Girault,et al.  Automatic Production of Globally Asynchronous Locally Synchronous Systems , 2002, EMSOFT.

[12]  Alexander D. Stoyen,et al.  Real-Time Euclid: A language for reliable real-time systems , 1989, IEEE Transactions on Software Engineering.

[13]  David E. Culler,et al.  The nesC language: A holistic approach to networked embedded systems , 2003, PLDI.

[14]  Marvin V. Zelkowitz,et al.  Programming Languages: Design and Implementation , 1975 .

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

[16]  Alain Girault,et al.  Clock-Driven Automatic Distribution of Lustre Programs , 2003, EMSOFT.

[17]  Thomas A. Henzinger,et al.  Giotto: a time-triggered language for embedded programming , 2001, Proc. IEEE.

[18]  Thomas A. Henzinger,et al.  From control models to real-time code using Giotto , 2003 .