91 Pages
English
Gain access to the library to view online
Learn more

Programming hybrid systems with synchronous languages

-

Gain access to the library to view online
Learn more
91 Pages
English

Description

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


Subjects

Informations

Published by
Reads 16
Language English
Document size 1 MB

Exrait

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