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.

3.1. DESCRIPTION GÉNÉRALE DE LA MÉTHODE 33avec l’application <strong>de</strong> la fonction <strong>de</strong> transition globale. Pour cela, nous proposons <strong>de</strong> suivre autantque possible la syntaxe et donc la logique <strong>de</strong> l’enchaînement du contrôle entre les étatsdécrits par cette syntaxe, comme dans une exécution symbolique. D’une manière générale, nouscherchons à saturer l’exploration <strong>de</strong> chaque bloc avant d’aller prospecter les comportements activéspar la terminaison <strong>de</strong> ce bloc. Lorsqu’aucun nouvel état ne peut être découvert, le calcul sepoursuit avec une autre partie <strong>de</strong> la fonction qui concerne un autre macro-état du programme.Ainsi, en explorant les états vali<strong><strong>de</strong>s</strong> bloc après bloc, nous espérons réduire les besoins en mémoiredu calcul <strong>de</strong> l’image.Notre <strong>partitionne</strong>ment du calcul <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> consiste à construire ces parties <strong>de</strong> lafonction <strong>de</strong> transition et à réorganiser les calculs d’image afin <strong>de</strong> prendre en compte séparémentplusieurs fonctions <strong>de</strong> transition disjointes contre une seule monolithique dans l’algorithme <strong>de</strong>base. Pour cela, nous nous appuyons sur la structure <strong><strong>de</strong>s</strong> <strong>programmes</strong> source : nous voulonsconstruire progressivement l’espace <strong><strong>de</strong>s</strong> états accessibles en suivant la structure algorithmiquenaturelle du programme.Alors que le calcul <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> s’effectue sur une représentation circuit, le <strong>partitionne</strong>mentque nous proposons puise son inspiration au niveau du co<strong>de</strong> <strong>Esterel</strong> source. Nous verronsdans un chapitre ultérieur comment nous effectuons la liaison entre ces <strong>de</strong>ux représentations.Pour le moment, nous admettrons que les raisonnements que nous faisons ici au niveau du co<strong><strong>de</strong>s</strong>ource peuvent être reportés au niveau circuit pour <strong>partitionne</strong>r la <strong><strong>de</strong>s</strong>cription <strong>de</strong> la fonction <strong>de</strong>transition, puis le calcul <strong><strong>de</strong>s</strong> états <strong>atteignables</strong>.3.1 Description générale <strong>de</strong> la métho<strong>de</strong>Notre métho<strong>de</strong> <strong>de</strong> <strong>partitionne</strong>ment repose sur l’idée que le corps d’un programme peut sediviser suivant <strong><strong>de</strong>s</strong> blocs (ou macro-états) <strong>de</strong> granularité appropriée. Dans <strong><strong>de</strong>s</strong> composants dits“séquentiels”, les blocs sont combinés en séquence, en boucle ou bien en alternative par lebiais d’une instruction if-then-else. La recherche partitionnée <strong><strong>de</strong>s</strong> états <strong>atteignables</strong> s’effectue àl’intérieur <strong>de</strong> chacun <strong>de</strong> ces blocs individuellement. On ne passe d’un bloc à un autre qu’une foisque l’algorithme s’est stabilisé pour le premier. L’exploration <strong>de</strong> chaque nouveau bloc démarreà partir d’un nouvel ensemble d’états initiaux, états obtenus à partir <strong>de</strong> l’exploration <strong><strong>de</strong>s</strong> blocsprécé<strong>de</strong>nts : les états situés exactement sur une frontière entre <strong>de</strong>ux blocs sont en même tempsles états finaux du premier bloc et les états initiaux du second (voir figure 3.3). En réalité,PQFig. 3.3 – Frontière entre <strong>de</strong>ux blocs P et Q. Les états finaux <strong>de</strong> P servent d’états initiaux àQ.les états situés sur une frontière appartiennent clairement au second bloc mais les transitionsqui mènent à eux proviennent du premier bloc. Pour interdire l’exploration <strong>de</strong> certains blocs,

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

Saved successfully!

Ooh no, something went wrong!