• Aucun résultat trouvé

INF 321 Paradigme réactif synchrone

N/A
N/A
Protected

Academic year: 2022

Partager "INF 321 Paradigme réactif synchrone"

Copied!
68
0
0

Texte intégral

(1)

INF 321

Paradigme r´ eactif synchrone

Eric Goubault

Cours 10

29 juin 2012

(2)

Dans le dernier ´ episode...

On a vu:

Retour sur la programmation fonctionnelle (Caml, Haskell...)!

Strat´egies d’´evaluation (eager/lazy)

Typage `a la Hindley-Milner (Robin Milner, prix Turing 1991) On va voir:

Un peu de graphes (pour le TD, et pour introduire les r´eseaux de Kahn)

Les langages synchrones, r´eseaux de Kahn LUSTRE et la programmation r´eactive Quelques conseils avant les vacances

(3)

Pourquoi des graphes?

Vous avez vu les arbres en taupe...

On pousse l’id´ee du partage au maximum...

Exemple, repr´esentation graphique a

b c

d e

f g

(4)

Pourquoi des graphes?

Les 7 ponts de K¨onigsberg (Euler, 1735)

...pas de promenade possible en passant une et une seule fois par chaque pont (graphe Eul´erien)

(5)

Pourquoi des graphes?

En un peu plus compliqu´e...r´eseau de transport

(6)

Pourquoi des graphes?

Mod´elisation de r´eseaux de distribution

...´electriques par exemple

(7)

Pourquoi des graphes?

Mod´elisation de r´eseaux

(internet)

(8)

Pourquoi des graphes?

Mod´elisation de relations

Ici, r´eseau social... plus g´en´eralement, relations de d´ependances (de tˆaches par exemple)

(9)

Pourquoi des graphes?

S´emantique de langages de programmation...

(ici, algorithme d’exclusion mutuelle de Dekker, entre 2 processus)

−→syst`emes dynamiques discrets

(10)

Vous en avez d´ ej` a manipul´ e au lyc´ ee...

Circuits ´electriques!

Vin

R1

R3

Va

R2

(11)

Vous en avez d´ ej` a manipul´ e au lyc´ ee...

Circuits ´electriques!

Vin

R1

R3 Va R2

a b c

d e f

Les lois de Kirschoff sont li´ees au graphe sous-jacent...

(12)

Vous en avez d´ ej` a manipul´ e au lyc´ ee...

Circuits ´electriques!

Vin

R1

R3 Va R2

Va= R2R3

R1R2+R1R3+R2R3

Vin

(13)

Graphes non-orient´ es

D´efinition

Un graphe est constitu´e de:

noeuds ou sommets (N) arˆetes (=paire de noeuds, E) On ´ecrit G = (N,E),E ⊆N×N Dans l’exemple pr´ec´edent:

a

b c

d e

f g

N={a,b,c,d,e,f,g} E =

{(a,b),(a,d),(b,d),(b,c), (b,e),(c,e),(e,f),(e,d), (e,g),(f,d),(f,g)}

(14)

Graphes non-orient´ es

D´efinition

Un graphe est constitu´e de:

noeuds ou sommets (N) arˆetes (=paire de noeuds, E) On ´ecrit G = (N,E),E ⊆N×N Dans l’exemple pr´ec´edent:

a

b c

d e

f g

N={a,b,c,d,e,f,g} E =

{(a,b),(a,d),(b,d),(b,c), (b,e),(c,e),(e,f),(e,d), (e,g),(f,d),(f,g)}

(15)

Graphes non-orient´ es

D´efinition

Un graphe est constitu´e de:

noeuds ou sommets (N) arˆetes (=paire de noeuds, E) On ´ecrit G = (N,E),E ⊆N×N Dans l’exemple pr´ec´edent:

a

b c

d e

f g

N={a,b,c,d,e,f,g} E =

{(a,b),(a,d),(b,d),(b,c), (b,e),(c,e),(e,f),(e,d), (e,g),(f,d),(f,g)}

(16)

Repr´ esentation par matrice d’adjacence

Matrice d’adjacence

Supposons queG, graphe, contiennep noeuds num´erot´es n1, . . . ,np, on construit une matriceM de taillep×p avec:

Mi,j =

1 si (ni,nj)∈E 0 sinon

Impl´ementation Java c l a s s Graph {

i n t p ; i n t[ ] [ ] M;

Graph (i n t n ) { p = n ;

M = new i n t[ n ] [ n ] ; }

}

(17)

Exemple de matrice d’adjacence

Graphe

a

b c

d e

f g

M =

0 1 0 1 0 0 0

1 0 1 1 1 0 0

0 1 0 0 1 0 0

1 1 0 0 1 1 0

0 1 1 1 0 1 1

0 0 0 1 1 0 1

0 0 0 0 1 1 0

(en num´erotant de 1 `a 7, a,b,c,d,e,f,g resp.)

(18)

Avantages et inconv´ enients

Avantages

Certains calculs sont faciles, ex. l’existence de chemins de longueur n par exemple, grˆace au th´eor`eme suivant:

Mi,jn = 1 ssi∃ chemin de i `aj de longueurn Exemple

a

b c

d e

f g

M2 =

1 1 1 1 1 1 0

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

0 1 1 1 1 1 1

(19)

Avantages et inconv´ enients

Avantages

Certains calculs sont faciles, ex. l’existence de chemins de longueur n par exemple, grˆace au th´eor`eme suivant:

Mi,jn = 1 ssi∃ chemin de i `aj de longueurn Exemple

a

b c

d e

f g

M2 =

1 1 1 1 1 1 0

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

1 1 1 1 1 1 1

0 1 1 1 1 1 1

(20)

Avantages et inconv´ enients

Inconv´enients

Repr´esentation peu ´economique!

Il vaut mieux utiliser une repr´esentationcreuse de la matrice (ne repr´esenter que les 1 et pas les 0)

(21)

Repr´ esentation par structures dynamiques

En Java, repr´esentation creuse de matrice d’adjacence

c l a s s G r a p h c r e u x { i n t p ;

L i s t [ ] M;

G r a p h c r e u x (i n t n ) { p = n ;

M = new L i s t [ n ] ; }

}

(22)

Autre repr´ esentation: matrice d’incidence, un exemple

Matrice arˆetes/sommets:

a

b c

d e

f g

a b c d e f g

(a,b) 1 −1 0 0 0 0 0

(a,d) 1 0 0 −1 0 0 0

(b,d) 0 1 0 −1 0 0 0

(b,c) 0 1 −1 0 0 0 0

(b,e) 0 1 0 0 −1 0 0

(d,f) 0 0 0 1 0 −1 0

(e,c) 0 0 −1 0 1 0 0

(e,d) 0 0 0 −1 1 0 0

(e,f) 0 0 0 0 1 −1 0

(e,g) 0 0 0 0 1 0 −1

(f,g) 0 0 0 0 0 1 −1

(23)

Repr´ esentation par matrice d’incidence - exemple

Graphe

a

b c

d e

f g

a b c d e f g

(a,b) 1 −1 0 0 0 0 0

(a,d) 1 0 0 −1 0 0 0

(b,d) 0 1 0 −1 0 0 0

(b,c) 0 1 −1 0 0 0 0

(b,e) 0 1 0 0 −1 0 0

(d,f) 0 0 0 1 0 −1 0

(e,c) 0 0 −1 0 1 0 0

(e,d) 0 0 0 −1 1 0 0

(e,f) 0 0 0 0 1 −1 0

(e,g) 0 0 0 0 1 0 −1

(f,g) 0 0 0 0 0 1 −1

(24)

Repr´ esentation par matrice d’incidence - exemple

Graphe

a

b c

d e

f g

a b c d e f g

(a,b) 1 −1 0 0 0 0 0

(a,d) 1 0 0 −1 0 0 0

(b,d) 0 1 0 −1 0 0 0

(b,c) 0 1 −1 0 0 0 0

(b,e) 0 1 0 0 −1 0 0

(d,f) 0 0 0 1 0 −1 0

(e,c) 0 0 −1 0 1 0 0

(e,d) 0 0 0 −1 1 0 0

(e,f) 0 0 0 0 1 −1 0

(e,g) 0 0 0 0 1 0 −1

(f,g) 0 0 0 0 0 1 −1

(25)

Graphes orient´ es

D´efinition

Un graphe orient´e est la donn´ee de:

N un ensemble de noeuds

A un ensemble d’arcs,A⊆N×N

La diff´erence par rapport aux graphes non-orient´es est qu’un arc (ni,nj) est orient´e de ni vers nj

Repr´esentation graphique

a

b c

d e

f g

(26)

En math´ ematiques...

On appelle carquois un graphe orient´e...

...car il y a des arcs et des fl`eches ;-)

(27)

Graphes orient´ es - matrices d’adjacence

Matrices d’adjacence

Cette fois-ci,Mi,j = 1 ssi il existe un arc de i vers j. M n’est plus n´ecessairement sym´etrique

Exemple

a

b c

d e

f g

M =

0 1 0 0 0 0 0

0 0 0 1 0 0 0

0 1 0 0 0 0 0

1 0 0 0 0 0 0

0 1 1 1 0 0 0

0 0 0 1 1 0 0

0 0 0 0 1 1 0

(en num´erotant de 1 `a 7, a,b,c,d,e,f,g resp.)

(28)

Impl´ ementation Java

Impl´ementation Java c l a s s Graphmat {

i n t p ; i n t[ ] [ ] M;

Egalement repr´esentation creuse similaire...

(29)

Quelques notions utiles...

Chemins, cycles...

Unchemin (orient´e) est une suite de noeuds connect´es par des arcs, donc une suite (ni1,ni2),(ni2,ni3), . . . ,(nik,nik+1)

Uncircuit (oucycle) est un chemin (orient´e) dont le d´ebut est

´

egal `a la fin

Et composantes “fortement connexes”

On peut partitionner l’ensemble des noeuds d’un graphe orient´e en composantes fortement connexes: x, et y dans la mˆeme composante ⇒ x et y appartiennent `a un cycle (notion d’interd´ependance)

Il y a moyen de modifier un peu le parcours en profondeur d’abord, des arbres, pour les graphes (DFS), pour d´eterminer les cycles d’un graphe, et un peu plus...

Algorithme de Tarjan par exemple Plus en INF431!!

En fait, pour l’instant, on montre juste par l’exemple que DFS cr´29 ee

(30)

Graphes orient´ es valu´ es

Valuation?

Une g´en´eralisation bien utile!

Chaque arc poss`ede une valuation (valeur enti`ere ou r´eelle typiquement); on passe ainsi d’une matrice d’adjacence `a coefficients dans {0,1} `a des matrices g´en´erales `a coefficients dans NouR!

Impl´ementation Java Toujours la mˆeme!

(31)

Exemple

a

b c

d e

f g

3 5 2

1 2

3 7

7

1

5 15

(32)

Autre exemple

Capacit´e de transport ´electrique

(33)

Pour aller plus loin...

Rapport avec l’alg`ebre lin´eaire...

Tr`es profond... d´ebut de la th´eorie des matro¨ıdes (Whitney, 1935)

Notre exemple

a

b c

d e

f g

3 2

5 1 2

7 3 7

1 5 15

M =

0 3 0 0 0 0 0

0 0 0 1 0 0 0

0 2 0 0 0 0 0

5 0 0 0 0 0 0

0 2 3 7 0 0 0

0 0 0 7 1 0 0

0 0 0 0 5 15 0

(34)

Algorithmes de ranking (google...)

Rapport avec l’alg`ebre lin´eaire...

Une th´eorie profonde: Perron-Frobenius, “parle” des matrices `a coefficients positifs, de leur d´ecomposition spectrale etc.

Utilis´e pour le classement des pages web google!:

GrapheG (monstrueux!) o`u les noeuds sont les pages web accessibles

O`u on a un arc d’un noeud vers un autre si la premi`ere page web pointe sur la seconde...

On peut associer une valuation (nombre d’acc`es `a la deuxi`eme page en passant par la premi`ere)

Le rayon spectral de M donne une bonne indication des pages les plus r´ef´erenc´ees

(35)

Lustre?

Introduction

Mariage du contrˆole et de l’informatique

Description par sch´ema-bloc (comme Matlab/Simulink, repr´esentation d’un programme par un graphe!) - mais

´

egalement langage textuel

Langage d´eclaratif: ensemble d’´equations En pratique

Versions acad´emique LUSTRE, industrielle SCADE (Esterel Technologies)

Nombreux outils, de preuve, test etc.

Belle s´emantique et utilis´e couramment dans le contrˆole commande (Airbus, Siemens etc.)!

(36)

Pr´ eliminaires: r´ eseaux de Kahn

de Gilles Kahn (1974)

Machine th´eorique form´ee d’un graphe:

dont les noeuds traitent des informations envoy´ees d’autres noeuds, envoy´ees par message, par une file non-born´ee de messages

et renvoient sur les arcs sortant des messages `a d’autres noeuds Abstrait en quelque sorte l’´echantillonage et le traitement discret des donn´ees (automatique, traitement du signal etc.) Il va falloir imposer une restriction sur le traitement fait par les noeuds pour que cela ait un sens...

(37)

Exemple

Fonctionsa,b,c,d,e,f et g des arcs entrant; flots s transitant sur les arcs:

a

b c

d e

f g

sab

scb sda

sbd seb

sec sed

sfd

sfe

sge

sgf

(38)

CPO des suites

Domaine s´emantique

Le domaine des donn´ees S est celui des suitesde valeurs (dans Val) finies (x0, . . . ,xn) ou pas (x0, . . . ,xn, . . .).

On identifiera la suite finie (x0, . . . ,xn) avec la suite infinie `a valeur dans Val∪ {⊥}: (x0, . . . ,xn,⊥, . . . ,⊥, . . .) donc S ={x :N→Val|xi =⊥ ⇒(∀j ≥i,xj =⊥)}

(39)

Ordre pr´ efixe

Ordre partiel

On d´efinit l’ordre partielpr´efixe surS par, pourx,y ∈ S, x ≤y si:

xi 6=⊥ ⇒yi =xi

Dit de fa¸con plus simple, x est un pr´efixe de y; et l’ordre pr´efixe est la restriction `aS de l’ordre d´efini au cours 7 pour N→Val (Val ´etant un CPO)!

S est donc un CPO! (v´erification triviale) Exemple pour l’ordre pr´efixe

⊥ ≤(0,1,2, . . .)

(0)≤(0,1)≤(0,1,2)≤. . .≤(0,1,2, . . .)

(40)

Les fonctions aux noeuds

Pr´erequis

En quelque sorte, on veut qu’elles soient calculables On impose la continuit´e! (cf. cours 7)

On se contente d’imposer pourf :Sn→ Sm la commutation aux sup; celle-ci peut s’imposer coordonn´ee par coordonn´ee (on suppose icim=n = 1): pour touteω-chaˆıne

x0 ≤x1 ≤. . .≤xj ≤. . . deS, f

 [

jN

xj

= [

j∈N

f(xj)

(comme f(xj) n’est pas n´ecessairement croissante, il faut supposer qu’il existe un supde cette suite, ´egale au terme de gauche, dans cette d´efinition)

(41)

“Continuit´ e” dans notre cas

Pour touteω-chaˆınex0 ≤x1 ≤. . .≤xn≤. . . on a, pour tout j ∈N:

S

i∈Nf(xi)

j =

f(xk)j ∃k ∈N,f(xk)j 6=⊥ et ∀l ≥k,f(xl)j =f(xk)j

⊥ sinon

= f S

i∈Nxi

j = f

y →

xjk ∃k0 ∈N,xjk0 6=⊥

⊥ sinon

(x)

(42)

Interpr´ etation de la continuit´ e

Intuitivement

Pour j fix´e, laji`eme valeur du flot de sortie def est

d´etermin´ee par l’image parf sur un pr´efixe fini du flot d’entr´ee Sorte d’axiome de “causes finies”!

Exemple de fonction non continue sur S Soitg :S → S telle que:

g(x) =

(0, . . . ,0, . . .) si x est fini (1, . . . ,1, . . .) si x est infini Soity flot infini et yi,i = 0,1, . . . ,tous ses pr´efixes finis:

S

i∈Nyi =y maisf(S

i∈Nyi) = (1, . . .) et S

i∈Ng(yi) =S

iN(0, . . .) = (0, . . .)!

(43)

Apart´ e - causalit´ e?

Continuit´e et croissance

A l’origine, Kahn demandait juste cette pr´eservation des bornes sup´erieures. Quid de la croissance (=causalit´e!)?

Cela implique la croissance!

Supposons que l’on ait une fonctionf :S → S telle que pour touteω-chaˆınex0 ≤x1 ≤. . .≤xj ≤. . .,

f

 [

jN

xj

= [

j∈N

f(xj) Soit, pour x≤y, la suite

X = (x0=x,x1=y, . . . ,xn=y, . . .)∈ S, alors f

S

j∈Nxj

=f(y) maisS

j∈Nf(xj) =Z est tel que f(x)≤Z =f(y) par hypoth`ese; CQFD

(44)

S´ emantique des r´ eseaux de Kahn

Principe

Chaque noeudN est une fonction continue fN :Sn→ Sm

On ´ecrit une ´equation de point fixe, d´ecompos´ee sur chaque noeud N, pour tous lesm arcs sortants de N versM1 `aMm:

XM1 = f1N(XL1, . . . ,XLn) . . . = . . .

XMm = f1N(XL1, . . . ,XLn)

Les XL1, . . . ,XLn versN sont lesn arcs entrants enN Par Kleene, on a un plus petit point fixe (tous les fiN sont continues sur un CPO): s´emantique (dans les suite infinies de valeurs) du r´eseau!

Maintenant on va voir en pratique `a quoi cela ressemble, dans

(45)

Principes de Lustre

R´eseau de Kahn synchrone!

Synchrone: un message par arc du r´eseau est envoy´e/re¸cu `a chaque “tic” d’horloge (globale) - permet d’´eviter l’utilisation detampons de communications potentiellement non born´es;

puissance de calcul similaire aux r´eseaux de Kahn g´en´eraux Un programme Lustre op`ere sur un flot = une suite de valeurs: une variable xen Lustre repr´esente une suite infinie de valeurs (x0,x1, . . . ,xn, . . .)

xi est la valeur dexau temps i

Un programme prend un flot et renvoie un flot Toutes les op´erations sont globales sur un flot:

L’´equation de flotx=eest un raccourci pour∀n, xn=en

L’expression arithm´etique sur les flotsx+y renvoie le flot (x0+y0,x1+y1, . . . ,xn+yn, . . .)

(46)

Op´ erateurs temporels

pre(pr´ec´edent)

Donne la valeur au temps pr´ec´edent, d’un flot argument: pre(x) est le flot (⊥,x0, . . . ,xn−1, . . .)

-> (suivi de)

Est utilis´e pour donner des valeurs initiales d’un flot: x->yest le flot (x0,y1, . . . ,yn, . . .)

Remarque: les flots sont typ´es boolest le type des flots de bool´eens etc.

(47)

Quelques constructions syntaxiques

Expressions arithm´etiques et bool´eennes

Les mˆemes que d’habitude, mais ´etendues point `a point aux flots Affectations, conditionnelles, s´equence...

Affectation: let ... = ... tel

Conditionnelles: if ... then ... else S´equence:

(48)

Organisation d’un programme Lustre

Noeuds des ´equations

Un programme Lustre est un ensemble d’´equations Chaque ´equation (a priori potentiellement mutuellement r´ecursives) est d´efinie par un noeud identifi´e par le mot cl´e node

Une ´equation ou noeud est une fonction prenant des flots en argument, renvoyant un flot en r´esultat

(49)

Exemple

Compteur d’´ev´enements

node Count ( e v t , r e s e t : b o o l ) r e t u r n s ( c o u n t : i n t) ; l e t

c o u n t = i f ( t r u e>r e s e t ) t h e n 0

e l s e i f e v t t h e n p r e ( c o u n t )+1 e l s e p r e ( c o u n t ) ;

t e l

Explication informelle

true->reset est un flot bool´een: ´egal `a vrai `a l’instant initial et quand resetest vrai

quand il est vrai, la valeur de countest renvoy´ee ´egale `a z´ero sinon, quand evtest vrai, on renvoie la valeur `a l’instant pr´ec´edent decountplus 1; sinon on conserve l’ancienne valeur

(50)

Exemple d’utilisation

Compter les minutes et secondes mod60 = Count ( s e c o n d , m i n u t e ) ; m i n u t e = s e c o n d and p r e ( mod60 ) = 5 9 ;

Explication

mod60 est la sortie du noeudCount, qui compte les secondes, et se remet `a z´ero chaque minute

minute est vrai quandseconde est cadenc´e et que sa valeur pr´ec´edente est de 59

(51)

Repr´ esentation graphique

(52)

Autre exemple: FIR

Filtres lin´eaires `a r´eponse finie Entr´ee `a l’instant n,xn

Sortie `a l’instant n,yn donn´ee par:

yn=

L−1

X

m=0

bmxn−m

Graphiquement

(53)

Autre exemple: IIR

Filtres lin´eaires `a r´eponse infinie (filtres r´ecursifs) Entr´ee `a l’instant n,xn

Sortie `a l’instant n,yn donn´ee par:

yn=

L−1

X

m=0

bmxn−m+

M−1

X

m=1

amyn−m

(54)

IIR

Graphiquement

(55)

Exemple: IIR

Code Lustre

Exemple: yn=xn+ 0.9yn−1:

node f i l t e r ( x : r e a l ) r e t u r n s ( y : r e a l ) ; l e t

y = x +0.0 > 0 . 9∗p r e ( y ) ; t e l ;

(56)

Exemple: chien de garde

“Watchdog”

permet de g´erer des ´ech´eances

´

emet alarmquand watchdogest en attente et quedeadline est vrai:

node WATCHDOG1( s e t , r e s e t , d e a d l i n e : b o o l ) r e t u r n ( a l a r m : b o o l ) ;

v a r w a t c h d o g i s o n : b o o l ; l e t

a l a r m = d e a d l i n e and w a t c h d o g i s o n ;

w a t c h d o g i s o n = f a l s e > i f s e t t h e n t r u e e l s e i f r e s e t t h e n f a l s e e l s e p r e ( w a t c h d o g i s o n ) ; a s s e r t n o t ( s e t and r e s e t ) :

t e l ;

(les flots bool´eenssetet resetne doivent pas ˆetre vrais en mˆeme temps!)

(57)

Causalit´ e?

Restriction syntaxique

let x=x+1;: le flot xd´epend instantan´ement de lui-mˆeme, pas possible! (ou alors r´esolution d’´equations, qui ne

donnerait pas de solution ici!)

condition syntaxique impos´ee: une variable r´ecursive doit ˆetre gard´ee par un d´elai. On ne peut pas ´ecrire les choses

suivantes:

x = x +1;

ni:

x = i f b t h e n y e l s e z ; y = i f b t h e n t e l s e x ;

(58)

Calcul d’horloges

Op´erateur de sous ´echantillonnage when

Permet de cadencer diff´eremment des processus (=noeuds), mais toujours selon un multiple du temps de base

Op´erateur de sous-´echantillonageX when B, o`u Xest un flot quelconque,Bun flot bool´een

Exemple:

B false false true true false true

X X0 X1 X2 X3 X4 X5

Y=X when B X2 X3 X5

(59)

Sur´ echantillonnage

Op´erateur current

Injecter un flot lent dans un nouveau flot rapide (cadenc´e au temps de base)

Exemple:

B false false true true false true

X X0 X1 X2 X3 X4 X5

Y=X when B X2 X3 X5

Z=current Y ⊥ ⊥ X2 X3 X3 X5 Remarque: au d´ebut Zn’a pas de valeur; on utilise souvent current ...->Y plutˆot que current Y

(60)

Exemple (Marc Pouzet)

Additionneur

On consid`ere le code:

node somme ( i : i n t) r e t u r n s ( s : i n t) ; l e t s = i > p r e s + i

t e l ;

On a par exemple:

1 1 1 1 1 1 1

cond true false true true false true

somme 1 1 2 3 4 5 6

somme(1 when cond) 1 2 3 4

(somme 1) when cond 1 3 4 6

Donc en g´en´eral: f(x when c)6=(f x) when c; de mˆeme current(x when c)6=x

(61)

On pourrait vouloir ´ ecrire:

l e t h a l f = t r u e > n o t ( p r e h a l f ) ; o = x & ( x when h a l f )

Compilation?

Le code correspond au calcul yn=xn&x2n

Il faudrait donc un m´ecanisme de passage de valeurs par buffers

Qui ici ne serait pas born´e! (n, . . . ,2n!) Ceci est interdit pas un calcul d’horloge

(62)

Calcul d’horloges, encore!

Les horloges utilis´ees par un noeud doivent ˆetre d´eclar´ees et visibles dans l’interface du noeud:

Exemple: d´eclaration d’horloge node s t a b l e s ( i : i n t)

r e t u r n s ( s :i n t; ncond : b o o l ; ( n s : i n t) when ncond ) ; puis d´eclaration d’horloges locales:

v a r cond : b o o l ;

( l : i n t) when cond ; puis le code lui-mˆeme:

l e t

cond = t r u e > i <> p r e i ; ncond = n o t cond ; l = somme ( i when cond ) ; s = c u r r e n t ( l ) ; n s = somme ( i when ncond ) :

t e l ;

(63)

D´ eclarations d’horloges et choix d’impl´ ementation

Les horloges

les constantes sont cadenc´ees sur l’horloge de base du noeud courant

par d´efaut, les variables sont sur l’horloge de base du noeud clock(e1 op e2) =clock(e1) =clock(e2)

clock(e when c) =c

clock(current(e)) =clock(clock(e)) Choix d’impl´ementation

Les horloges sont d´eclar´ees et v´erifi´ees

Pas d’inf´erence, tout est d´eclar´e (ou r`egles implicites, voir plus haut)

Deux horloges sont exactes si elles sont syntaxiquement ´egales

(64)

Pour aller plus loin...

Preuve

On peut v´erifier despropri´et´es temporelles, parlant

d’´ev´enements dans le futur (“toujours dans le futur” ou “un jour dans le futur”) - plus g´en´eral que les invariants de la preuve `a la Hoare

“Si `a un instantn,x (=xn) est positif, alors il existe un instant m>n tel que pour tous les instantsk ≥m,y (=yk) est positif”

Une approche: propri´et´es codables en Lustre! (processus

“observateur” - model-checking etc.) Lucid synchrone

Mariage du paradigme fonctionnel, et r´eactif...

(65)

Avant de partir en vacances...

Vous aurez bientˆot de vrais choix `a faire...

En fin de deuxi`eme ann´ee: choisir un PA Puis choisir un stage de recherche...

Puis choisir sa quatri`eme ann´ee

Continuer apr`es la quatri`eme ann´ee? (recherche ou pas recherche?)

(66)

La formation universitaire en g´ en´ eral...

R´eforme europ´eenne LMD

Produit duprocessus de Bologne(1999):

L: “license” 3 ans(+), pr´epa plus ann´ee 2 de l’X M: “master” 2 ans, PA (Informatique, Conception et

Management de Syst`emes Informatiques Complexes, Electrical Engineering, Bio-informatique etc.) et stage et quatri`eme ann´ee

D: “doctorat” 3 ans(+), en laboratoire ou mixte laboratoire/industrie

Corps, ´ecoles d’applis, master `a l’etranger?

Corps: 2/3 ans, essentiellement un MPA (“Master of Public Administration”) plus corps de fonctionnaire

Ecoles d’application, 1 an fin de M2 (T´el´ecom, Ensimag, Sup´elec etc.)

Master en France (MPRI, COMASIC etc.), Master `a l’´etranger...

Rien n’empˆeche de faire de la formation par la recherche en cours 66

(67)

Surtout...

Commencer `a r´efl´echir...

Parlez `a vos enseignants...

Profitez des stages Visitez des entreprises Parlez avec vos anciens

Allez voir les conf´erences multiples d’anciens etc.

Mais faites un choix avant d’ˆetre “choisi”!

Coh´erence d’un projet professionnel!

Industrie, recherche ou administration?

Apr`es un M ou un D?

(68)

C’est tout pour aujourd’hui..

La prochaine fois Pˆale!!! (12 juillet) Bon TD!

Références

Documents relatifs

D´ emontrer que ces deux suites sont bien d´ efinies et pr´ eciser leurs signes.. (ii) D´ emontrer successivement que u n &gt; v n pour tout n, que la suite (u n ) est d´ ecroissante

Pas de nouvelle cr´ eation de point dans la table pour (1,2,3) En deux comparaisons avec un autre point (au lieu de potentiellement 4).. Points

On dit qu’une machine (ou langage) est Turing complet s’il permet de calculer toutes les fonctions calculables - Java, C, Caml sont Turing complets.. C’est bien la calculabilit´

Retour sur la s´ emantique des boucles et de la r´ ecursivit´ e En vue de d´ eterminer un syst` eme de preuves pour les programmes (cours 8).. ici sont en fait les extensions

OBS prend le flot E d’entr´ ee (le mˆ eme que pour P), prend un flot de sortie (du mˆ eme type que le flot de sortie de P) et renvoie un chaque instant un bool´ een disant si

(Pour ne pas générer d'erreur cette valeur doit être un nombre entier) Entrez par exemple la valeur 0.. Le tableau de

On appelle X la variable al´eatoire ´egale au nombre de voitures traversant ce p´eage dans une journ´ee.. D´eterminer les valeurs propres et les sous-espaces propres

et donc G prendra ses valeurs dans N ∗. En se servant de l'exercice précédent, on voit que G peut être interprété comme le premier temps d'apparition d'un pile dans un jeu de lancer