Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
Calcul des etats atteignables de programmes Esterel partitionne ...
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapitre 4NotationsCe chapitre à pour but <strong>de</strong> formaliser la mise en oeuvre algorithmique <strong><strong>de</strong>s</strong> notions décritesau chapitre précé<strong>de</strong>nt. Dans la section 4.1, nous introduisons une notation permettant <strong>de</strong>représenter les <strong>programmes</strong> <strong>Esterel</strong> sous forme d’arbre syntaxique. A partir <strong>de</strong> cet arbre,la section 4.2 décrit la construction d’un graphe <strong>de</strong> flot <strong>de</strong> contrôle contenant <strong><strong>de</strong>s</strong> frontières.Enfin, la section 4.3 définit une relation d’ordre entre les frontières <strong>de</strong> ce graphe.4.1 L’arbre <strong>de</strong> syntaxe abstraitePour notre étu<strong>de</strong>, nous nous restreindrons à un sous-ensemble du langage <strong>Esterel</strong> danslequel nous n’avons conservé qu’un noyau caractéristique <strong><strong>de</strong>s</strong> instructions du langage original.Les variables et la gestion <strong><strong>de</strong>s</strong> données ont été supprimées par abstraction comme il est d’usagepour les techniques liées au mo<strong>de</strong>l-checking vu comme exploration <strong><strong>de</strong>s</strong> états <strong>de</strong> contrôle. Unprogramme complet est composé d’une en-tête <strong>de</strong> déclarations définissant l’ensemble <strong><strong>de</strong>s</strong> signauxd’entrée et <strong>de</strong> sortie, suivie d’un corps dont la syntaxe est définie par la grammaire suivante :P ::= nothing| pause| P ; P| loop P end| P ‖ P| emit S| signal S in P end| present S then P else P end| abort P when SLes autres instructions du langage n’introduisent pas <strong>de</strong> difficultés particulières et ne sontpas nécessaires à la compréhension <strong>de</strong> notre métho<strong>de</strong> <strong>de</strong> <strong>partitionne</strong>ment. Par exemple, dansle contexte <strong>de</strong> nos travaux, l’instruction trap peut être traitée <strong>de</strong> la même manière quel’instruction abort. Ces instructions ne font par conséquent pas partie du langage noyau µ-<strong>Esterel</strong>. En revanche, ces instructions ont été prises en compte pour l’implémentation <strong>de</strong>notre logiciel présenté au chapitre 6.Avant <strong>de</strong> commencer la <strong><strong>de</strong>s</strong>cription du graphe <strong>de</strong> flot <strong>de</strong> contrôle que nous allons utiliser, noussupposerons que nous possédons une représentation du programme <strong>Esterel</strong> sous forme d’arbresyntaxique. Chaque noeud <strong>de</strong> l’arbre est typé en fonction <strong>de</strong> l’instruction qu’il représente mais51