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...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

52 CHAPITRE 4. NOTATIONSnous nous intéressons en fait aux occurrences <strong><strong>de</strong>s</strong> instructions dans le programme source. Ainsi,dans l’arbre syntaxique, chaque instance d’instruction sera i<strong>de</strong>ntifiée <strong>de</strong> manière unique par unlabel unique. Au besoin, ces <strong>de</strong>rniers seront explicitement mentionnés en position d’exposant<strong>de</strong> l’instance d’instruction considérée. Le noeud d’une instruction <strong>de</strong> type instruction portantle label L s’écrit alors <strong>de</strong> la manière suivante :(instruction L argument 1 . . . argument n )Les pauses. Le calcul <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> s’obtient à partir d’une représentation <strong><strong>de</strong>s</strong> <strong>programmes</strong><strong>Esterel</strong> sous forme <strong>de</strong> circuit alors que le <strong>partitionne</strong>ment que nous proposons s’appuiesur la syntaxe du langage source. Il est donc nécessaire <strong>de</strong> savoir relier un <strong>programmes</strong>ource à sa représentation sous forme <strong>de</strong> circuit. Dans la traduction d’<strong>Esterel</strong> en circuits quenous utilisons, chaque instruction pause produit exactement un registre booléen. Dans le formatcircuit, un registre est i<strong>de</strong>ntifié <strong>de</strong> manière unique par son nom. Ce nom apparaît explicitementdans chaque instruction pause <strong>de</strong> l’arbre syntaxique ce qui nous procure l’association nécessaireentre le co<strong>de</strong> source et le format circuit. Ainsi, une instruction pause est représentée par unnoeud <strong>de</strong> la forme :(pause L register id)où register id représente le nom du registre généré par la traduction <strong>de</strong> l’instruction pause.Dans un arbre syntaxique, chaque pause possè<strong>de</strong> évi<strong>de</strong>mment un register id distinct.Les instructions atomiques. Dans l’arbre syntaxique, les instructions nothing et emit sontnaturellement représentées par <strong><strong>de</strong>s</strong> feuilles <strong>de</strong> la forme :(nothing L )(emit L signal id)où signal id représente le nom du signal dans la traduction en circuit. Le nom <strong><strong>de</strong>s</strong> signaux etle nom <strong><strong>de</strong>s</strong> registres constituent les seuls liens entre l’arbre syntaxique et la traduction sousforme <strong>de</strong> circuit mais contrairement aux registres, le nom <strong><strong>de</strong>s</strong> signaux n’est pas utilisé par notretechnique <strong>de</strong> <strong>partitionne</strong>ment.Les constructions hiérarchiques. Une déclaration <strong>de</strong> signal local est représentée par unnoeud <strong>de</strong> la forme :(signal L signal id instruction l end L′ )où instruction est un sous-arbre représentant le corps <strong>de</strong> l’instruction signal. La fin <strong>de</strong> laportée est marquée par le délimiteur end. Par la suite, nous verrons que ce type <strong>de</strong> délimiteurest utilisé dans la construction du graphe <strong>de</strong> flot <strong>de</strong> contrôle.De la même manière, une boucle est représentée par un noeud <strong>de</strong> la forme :Une séquence est un noeud <strong>de</strong> la forme :(loop L instruction l end L′ )(seq L instruction l 1instruction l 2end L′ )

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

Saved successfully!

Ooh no, something went wrong!