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.

2.1. ESTEREL 132.1.1.1 RéincarnationA cause <strong><strong>de</strong>s</strong> boucles instantanées, les signaux peuvent avoir plusieurs instances simultanéesappelées réincarnations.loopsignal S inpresent S then emit O1 else emit O2 end;pause;emit Send signalend loopAu premier instant, S n’est pas émis. Au <strong>de</strong>uxième instant, le corps <strong>de</strong> la boucle termine enémettant S et se relance immédiatement. Un nouveau signal S distinct <strong>de</strong> l’ancien est déclaré.Dans cette secon<strong>de</strong> incarnation, le signal S n’est pas émis. Dans cet exemple, le signal O2 estémis à chaque instant.En réalité, la réincarnation existe dans tous les langages <strong>de</strong> programmation. Dans les langagesséquentiels classiques (C, Java...) les réincarnations ne sont pas suscitées par les boucles maispar les appels récursifs <strong>de</strong> fonctions. Le modèle d’exécution <strong>de</strong> ces <strong>programmes</strong> étant dynamique,le problème <strong>de</strong> réincarnation est résolu <strong>de</strong> manière transparente puisque chaque instance <strong>de</strong>variable est allouée dans la pile d’exécution. Le modèle d’exécution <strong><strong>de</strong>s</strong> <strong>programmes</strong> <strong>Esterel</strong>est un modèle statique dans lequel chaque instance <strong>de</strong> variable doit être allouée <strong>de</strong> manièrestatique à chaque instant. Les restrictions imposées par le langage <strong>Esterel</strong> par rapport auxlangages plus généralistes permettent <strong>de</strong> garantir que le nombre <strong>de</strong> ces instances est fini.2.1.1.2 Correction logiqueProgrammes non-réactifs. L’instantanéité <strong><strong>de</strong>s</strong> réactions et <strong>de</strong> la diffusion <strong><strong>de</strong>s</strong> signaux permetd’écrire <strong><strong>de</strong>s</strong> <strong>programmes</strong> syntaxiquement corrects mais insensés comme le programme suivant:present S then nothing else emit S endDans ce programme, le signal S ne peut être présent car il n’est émis nulle part. Le signal nepeut pas non plus être absent car dans ce cas, il est immédiatement émis. Ce programme estdonc incorrect.Programmes non-déterministes. <strong>Esterel</strong> est un langage déterministe par conséquent,tout programme non déterministe est incorrect. Considérons à présent l’exemple suivant :present S then emit S endIci, le fait que S soit présent ou absent n’entre pas en contradiction avec la sémantique dulangage. L’existence <strong>de</strong> ces <strong>de</strong>ux interprétations rend ce programme non-déterministe. Ce programmeest donc également incorrect.

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

Saved successfully!

Ooh no, something went wrong!