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.

56 CHAPITRE 4. NOTATIONSabortloop pause 1 end||pause 2 ; pause 3when S;present T thenpause 4 ;[ pause 5 || pause 6 ]elsepause 7 ; pause 8end;pause 9La construction <strong><strong>de</strong>s</strong> frontières permet <strong>de</strong> diviser le programme en quatre blocs. Le premierconstitue le corps <strong>de</strong> l’instruction abort, le second et le troisième correspon<strong>de</strong>nt à la branche“then” et à la branche “else” du present et le <strong>de</strong>rnier bloc est constitué <strong>de</strong> la <strong>de</strong>rnière pausesituée après l’instruction present.||F 1 F2.114 ||2 3?TF 2.27 856FF2.12.29Fig. 4.1 – Exemple <strong>de</strong> graphe <strong>de</strong> flot <strong>de</strong> contrôle <strong>de</strong> programme <strong>Esterel</strong>. Les frontières F 1 ,F 2.1 et F 2.2 représentées par les lignes discontinues ont été produites par les instructions abortet present.4.2.3 Graphe <strong>de</strong> contrôle et <strong>partitionne</strong>mentDans notre graphe <strong>de</strong> flot <strong>de</strong> contrôle, les arcs <strong>de</strong> type “frontière” permettent <strong>de</strong> diviser leprogramme en <strong>de</strong>ux parties : à l’intérieur <strong>de</strong> la frontière se trouve l’ensemble <strong><strong>de</strong>s</strong> blocs actifsque nous souhaitons explorer. A l’extérieur <strong>de</strong> la frontière se trouve l’ensemble <strong><strong>de</strong>s</strong> blocs quenous ne souhaitons pas explorer et qui doivent <strong>de</strong>meurer inactifs.La traduction <strong><strong>de</strong>s</strong> <strong>programmes</strong> <strong>Esterel</strong> en circuit produit un registre <strong>de</strong> contrôle pour chaqueinstruction pause. Cette traduction nous permet <strong>de</strong> caractériser très précisément l’ensemble <strong><strong>de</strong>s</strong>états du programme situés à l’intérieur <strong>de</strong> la frontière. Si P désigne les blocs <strong>de</strong> <strong>programmes</strong>itués à l’intérieur <strong>de</strong> la frontière et si Q désigne les blocs <strong>de</strong> programme situés à l’extérieur <strong>de</strong>la frontière, alors les états situés à l’intérieur <strong>de</strong> la frontière sont les états dans lesquels aucunregistre <strong>de</strong> Q n’est actif. L’intérieur <strong>de</strong> la frontière n’est donc pas décrit à partir <strong>de</strong> l’ensemble<strong><strong>de</strong>s</strong> registres potentiellement actifs mais à partir <strong><strong>de</strong>s</strong> registres que nous forçons à être inactifs.Codage <strong><strong>de</strong>s</strong> blocs actifs. Etant donné un ensemble <strong>de</strong> variables <strong>de</strong> BDD R = {r 1 , . . . r n },nous introduisons l’opérateur NOr(R) défini <strong>de</strong> la manière suivante :NOr(R) = λX → ¬ r 1 ∧ . . . ∧ ¬ r n (4.13)

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

Saved successfully!

Ooh no, something went wrong!