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