A Multi-Periodic Synchronous Data-Flow Language

Implementing real-time critical systems is an increasingly complex process that calls for high-level formal programming languages. Existing languages mainly focus on mono-periodic systems, implementing multi-periodic systems with these languages is possible but inefficient. As a result, current practice usually consists in writing one program for each different rate and then letting a real-time operating system handle the multi-rate aspects. This can be a source of non-determinism as communications between processes of different rates are not precisely defined. We propose a new language, built upon synchronous data-flow languages, to handle multi-rate systems properly. It has strong formal semantics, which prevents non-deterministic communications, and relies on real-time primitives that enable efficient use of existing multi-periodic schedulers.

[1]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[2]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[3]  David Lorge Parnas,et al.  Scheduling Processes with Release Times, Deadlines, Precedence, and Exclusion Relations , 1990, IEEE Trans. Software Eng..

[4]  A. Benveniste,et al.  Synchronous Programming with Events and Relations: the SIGNAL Language and Its Semantics , 1991, Sci. Comput. Program..

[5]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

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

[7]  Edward A. Lee,et al.  Comparing models of computation , 1996, Proceedings of International Conference on Computer Aided Design.

[8]  Marco Spuri,et al.  Preemptive and Non-Preemptive Real-Time UniProcessor Scheduling , 1996 .

[9]  Paul Le Guernic,et al.  A Canonical Form for Affine Relations in Signal , 1997 .

[10]  Ellen Sentovich,et al.  Multiclock Esterel , 2001, CHARME.

[11]  Marc Pouzet,et al.  Lucid Synchrone - version 2.0: Tutorial and reference manual , 2001 .

[12]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[13]  Yves Sorel,et al.  Real-time scheduling for systems with precedence , periodicity and latency constraints , 2002 .

[14]  Marc Pouzet,et al.  Clocks as First Class Abstract Types , 2003, EMSOFT.

[15]  Adrian Curic Implementing Lustre programs on distributed platforms with real-time constrains , 2005 .

[16]  P. Feiler,et al.  The Architecture Analysis & Design Language (AADL): An Introduction , 2006 .

[17]  Marc Pouzet,et al.  N-synchronous Kahn networks: a relaxed model of synchrony for real-time systems , 2006, POPL '06.