//img.uscri.be/pth/7ba81f734a89bc9fef534edff409af571ea0825b
Cet ouvrage fait partie de la bibliothèque YouScribe
Obtenez un accès à la bibliothèque pour le lire en ligne
En savoir plus

Programming hybrid systems with synchronous languages

De
91 pages
Programming hybrid systems with synchronous languages Marc Pouzet1,2,3 Albert Benveniste3 Timothy Bourke3,1 Benoît Caillaud3 1. École normale supérieure (LIENS) 2. Université Pierre et Marie Curie 3. INRIA CSDM 2011, December 7–9, Paris

  • time scale

  • ecole normale

  • ?? temporal

  • zero time

  • synchronous languages

  • spécification assistée par ordinateur


Voir plus Voir moins

Programming hybrid systems with synchronous
languages
1,2,3Marc Pouzet
3 3,1 3Albert Benveniste Timothy Bourke Benoît Caillaud
1. École normale supérieure (LIENS)
2. Université Pierre et Marie Curie
3. INRIA
CSDM 2011, December 7–9, ParisReactive systems
I They react continuously to the external environment.
I At the speed imposed by this environment.
I Statically bounded memory and response time.
Conciliate three notions in the programming model:
I Parallelism, concurrency while preserving determinism.
e.g, control at the same time rolling and pitching
,→ parallel description of the system
I Strong temporal constraints.
e.g, the physics does not wait!
,→ temporal constraints should be expressed in the system
I Safety is important (critical systems).
,→ well founded languages, verification methodsSynchronous Kahn Networks
M1 M2
M4
M3
I parallel processes communicating through data-flows
I communication in zero time: data is available as soon as it is
produced.
I a global logical time scale even though individual rhythms may differ
I these drawings are not so different from actual computer programsSAO (Spécification Assistée par Ordinateur)—Airbus 80’s
Describe the system as block diagrams (synchronous communicating
machines)SCADE 4 (Safety Critical Application Development Env. – Esterel-Tech.)
From computer assisted drawings to executable (sequential/parallel) code!constants 1 = 1 1 1 1 ···
operators x + y = x +y x +y x +y x +y ···0 0 1 1 2 2 3 3
(z = x + y means that at every instant i : z = x +y )i i i
unit delay 0 fby (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 2
pre (x + y) = nil x +y x +x x +x ···0 0 1 1 2 2
0→pre (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 2
Lustre: a dataflow programming language
Caspi, Pilaud, Halbwachs, and Plaice. Lustre: A Declarative Language for Programming Synchronous Systems. 1987.
Programming with streamsoperators x + y = x +y x +y x +y x +y ···0 0 1 1 2 2 3 3
(z = x + y means that at every instant i : z = x +y )i i i
unit delay 0 fby (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 2
pre (x + y) = nil x +y x +x x +x ···0 0 1 1 2 2
0→pre (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 2
Lustre: a dataflow programming language
Caspi, Pilaud, Halbwachs, and Plaice. Lustre: A Declarative Language for Programming Synchronous Systems. 1987.
Programming with streams
constants 1 = 1 1 1 1 ···unit delay 0 fby (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 2
pre (x + y) = nil x +y x +x x +x ···0 0 1 1 2 2
0→pre (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 2
Lustre: a dataflow programming language
Caspi, Pilaud, Halbwachs, and Plaice. Lustre: A Declarative Language for Programming Synchronous Systems. 1987.
Programming with streams
constants 1 = 1 1 1 1 ···
operators x + y = x +y x +y x +y x +y ···0 0 1 1 2 2 3 3
(z = x + y means that at every instant i : z = x +y )i i ipre (x + y) = nil x +y x +x x +x ···0 0 1 1 2 2
0→pre (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 2
Lustre: a dataflow programming language
Caspi, Pilaud, Halbwachs, and Plaice. Lustre: A Declarative Language for Programming Synchronous Systems. 1987.
Programming with streams
constants 1 = 1 1 1 1 ···
operators x + y = x +y x +y x +y x +y ···0 0 1 1 2 2 3 3
(z = x + y means that at every instant i : z = x +y )i i i
unit delay 0 fby (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 20→pre (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 2
Lustre: a dataflow programming language
Caspi, Pilaud, Halbwachs, and Plaice. Lustre: A Declarative Language for Programming Synchronous Systems. 1987.
Programming with streams
constants 1 = 1 1 1 1 ···
operators x + y = x +y x +y x +y x +y ···0 0 1 1 2 2 3 3
(z = x + y means that at every instant i : z = x +y )i i i
unit delay 0 fby (x + y) = 0 x +y x +x x +x ···0 0 1 1 2 2
pre (x + y) = nil x +y x +x x +x ···0 0 1 1 2 2