Abstract
This paper addresses the problem of designing and implementing complex control systems for real-time embedded software. Typical applications involve different control laws corresponding to different phases or modes, e.g., take-off, full flight and landing in a fly-by-wire control system. On one hand, existing methods such as the combination of Simulink/Stateflow provide powerful but unsafe mechanisms by means of imperative updates of shared variables. On the other hand, synchronous languages and tools such as Esterel or SCADE/Lustre are too restrictive and forbid to fully separate the specification of modes from their actual instantiation with a particular control automaton.
In this paper, we introduce a conservative extension of a synchronous data-flow language close to Lustre, in order to be able to define systems with modes in a more modular way, while insuring the absence of data-races. We show that such a system can be viewed as an object where modes are methods acting on a shared memory. The object is associated to a scheduling policy which specifies the ways methods can be called to build a valid synchronous reaction. We show that the verification of the proper use of an object reduces to a type inference problem using row types introduced by Wand, Rémy and Vouillon. We define the semantics of the extended synchronous language and the type system. The proposed extension has been implemented and we illustrate its use through several examples.
- Rajeev Alur and Thomas A. Henzinger. Reactive modules. Formal Methods in System Design, 15:7--48, 1999. Google Scholar
Digital Library
- A. Benveniste, P. Caspi, S.A. Edwards, N. Halbwachs, P. Le Guernic, and R. de Simone. The synchronous languages 12 years later. Proceedings of the IEEE, 91(1), January 2003.Google Scholar
Cross Ref
- A. Benveniste, P. LeGuernic, and Ch. Jacquemot. Synchronous programming with events and relations: the SIGNAL language and its semantics. Science of Computer Programming, 16:103--149, 1991. Google Scholar
Digital Library
- Gerard Berry. The constructive semantics of pure esterel. Draft book, 1999.Google Scholar
- P. Caspi, A. Curic, A. Maignan, C. Sofronis, and S. Tripakis. Translating Discrete-Time Simulink to Lustre. ACM Transactions on Embedded Computing Systems, 2005. Special Issue on Embedded Software. Google Scholar
Digital Library
- Jean-Louis Colaço, Gregoire Hamon, and Marc Pouzet. Mixing Signals and Modes in Synchronous Data-flow Systems. In ACM International Conference on Embedded Software (EMSOFT'06), Seoul, South Korea, October 2006. Google Scholar
Digital Library
- Jean-Louis Colaço, Bruno Pagano, and Marc Pouzet. A Conservative Extension of Synchronous Data-flow with State Machines. In ACM International Conference on Embedded Software (EMSOFT'05), Jersey city, New Jersey, USA, September 2005. Google Scholar
Digital Library
- L. de Alfaro and T. A. Henzinger. Interface automata. In ESEC/FSE-9: Proceedings of the 8th European software engineering conference, page 109--120, New York, NY, USA, 2001. ACM Press. Google Scholar
Digital Library
- Gregoire Hamon. Calcul d'horloge et Structures de Contrôle dans Lucid Synchrone, un langage de ots synchrones à la ML. PhD thesis, Université Pierre et Marie Curie, Paris, France, 14 novembre 2002.Google Scholar
- D. Harel. StateCharts: a Visual Approach to Complex Systems. Science of Computer Programming, 8-3:231--275, 1987. Google Scholar
Digital Library
- F. Maraninchi and T. Bouhadiba. 42: Programmable models of computation for a component-based approach to heterogeneous embedded systems. In Sixth ACM International Conference on Generative Programming and Component Engineering (GPCE'07), Salzburg, Austria, October 2007. Google Scholar
Digital Library
- F. Maraninchi and Y. Rémond. Mode-automata: a new domain-specific construct for the development of safe critical systems. Science of Computer Programming, (46):219--254, 2003. Google Scholar
Digital Library
- Bertrand Meyer. Eiffel: An Introduction. Interactive Software Eng, 1988.Google Scholar
Cross Ref
- Daniel Pilaud. Personnal communication, March 2009.Google Scholar
- D. Réemy and J. Vouillon. Objective ML: An effective object-oriented extension to ML. Theory And Practice of Object Systems, 4(1):27--50, 1998. A preliminary version appeared in the proceedings of the 24th ACM Conference on Principles of Programming Languages, 1997. Google Scholar
Digital Library
- Jean-Pierre Talpin and Pierre Jouvelot. The type and effect discipline. Information and Computation, 111(2):245--296, 1994. Google Scholar
Digital Library
Index Terms
Synchronous objects with scheduling policies: introducing safe shared memory in lustre
Recommendations
Synchronous objects with scheduling policies: introducing safe shared memory in lustre
LCTES '09: Proceedings of the 2009 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systemsThis paper addresses the problem of designing and implementing complex control systems for real-time embedded software. Typical applications involve different control laws corresponding to different phases or modes, e.g., take-off, full flight and ...
A modular memory optimization for synchronous data-flow languages: application to arrays in a lustre compiler
LCTES '12: Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded SystemsThe generation of efficient sequential code for synchronous data-flow languages raises two intertwined issues: control and memory optimization. While the former has been extensively studied, for instance in the compilation of Lustre and Signal, the ...
A modular memory optimization for synchronous data-flow languages: application to arrays in a lustre compiler
LCTES '12The generation of efficient sequential code for synchronous data-flow languages raises two intertwined issues: control and memory optimization. While the former has been extensively studied, for instance in the compilation of Lustre and Signal, the ...







Comments