12.07.2015 Views

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

Calcul des etats atteignables de programmes Esterel partitionne ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.2. CORRECTION DES ALGORITHMES 651 . . .2 pending ′ ← pending3 tantque ( (pending ∩ area) = ∅ ) faire4 . . .5 si ( pending ′ ∩ Or(R new ) ≠ ∅ ) alors6 pending ′ ← pending ′ ∩ Or(R new )7 open? ← true8 . . .Algorithme 5.5 – Test <strong>de</strong> franchissement d’une frontière “compatible”Dans notre exemple précé<strong>de</strong>nt, une fois que r 1 a été activé, il est impossible d’activer r 2 avantr 3 par cette technique.5.1.2.3 Ouverture d’une frontièreA partir du moment où nous avons décidé l’ouverture d’un arc-frontière, nous <strong>de</strong>vons simplementeffectuer quelques mises à jour :1 E ← E ∪ {f}2 F ← F {f}3 inner ← inner ∪ inner new4 R + ← R + ∪ R new5 area ← NOr(R R + )Algorithme 5.6 – Ouverture d’une frontièreTout d’abord, l’arc f est déplacé <strong>de</strong> l’ensemble <strong><strong>de</strong>s</strong> frontières F vers l’ensemble <strong><strong>de</strong>s</strong> noeudsnormaux E (lignes 1 et 2). L’intérieur <strong>de</strong> la frontière est élargi en conséquence (ligne 3) et lesnouveaux registres actifs <strong>de</strong> R new sont ajoutés à l’ensemble <strong><strong>de</strong>s</strong> registres actifs <strong>de</strong> R + (ligne 4).Enfin, l’ensemble area est élargi (ligne 5).5.2 Correction <strong><strong>de</strong>s</strong> algorithmesNous définissons formellement l’ensemble <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> d’une machine séquentiellefsm = (ι, Υ, ∆, Γ) comme le plus petit point fixe d’une fonction Θ définie <strong>de</strong> la manière suivante :Θ(X) = ι ∪ ∆(X) (5.1)Ce point fixe est forcément défini puisque Θ est une fonction croissante et que nous travaillonsdans l’ensemble fini B K . Dans cette section, nous choisissons <strong>de</strong> ne pas tenir compte <strong>de</strong> l’ensemble<strong><strong>de</strong>s</strong> entrées vali<strong><strong>de</strong>s</strong> Υ <strong>de</strong> la machine séquentielle qui ne pose aucun problème particuliersinon rendre la lecture plus difficile.Si nous appelons R bfs l’ensemble <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> calculé par l’algorithme traditionnel etR part l’ensemble <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> calculé par notre algorithme partitionné, alors le but <strong>de</strong>cette section est <strong>de</strong> montrer que :R bfs = µ(Θ) (5.2)et R part = µ(Θ) (5.3)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!