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.

10 CHAPITRE 2. CONTEXTE DE L’ETUDE(a) (b) (c)Fig. 2.1 – Différents types <strong>de</strong> <strong>programmes</strong> : transformationnel (a), réactif (b), synchrone (c).En réalité, la réaction <strong>de</strong> durée nulle n’est qu’une abstraction. Une hypothèse équivalente maisplus réaliste consiste à dire que le temps est divisé en une séquence d’instants logiques. Lesinstants logiques sont vus comme <strong><strong>de</strong>s</strong> intervalles <strong>de</strong> temps communs à tous les composants etsont <strong>de</strong>ux à <strong>de</strong>ux disjoints. A l’intérieur <strong>de</strong> ces instants, chaque réaction est non interruptibleet termine forcément avant le début <strong>de</strong> l’instant suivant.L’hypothèse synchrone permet <strong>de</strong> définir clairement les notions <strong>de</strong> simultanéité entre occurrencesd’événements ainsi que la notion d’absence d’un événement.En plus <strong><strong>de</strong>s</strong> constructions classiques <strong><strong>de</strong>s</strong> langages impératifs (séquence, boucle, if-then-else),le noyau du langage <strong>Esterel</strong> procure un opérateur <strong>de</strong> parallélisme ainsi qu’un mécanisme d’exceptionet <strong>de</strong> suspension. La communication entre les différentes parties actives du programmeest réalisée par la diffusion <strong>de</strong> signaux purs (un signal est soit présent soit absent). Cette communicationest instantanée, ce qui signifie qu’un signal est reçu à l’instant précis où il est émis.Une réaction consiste en une propagation <strong><strong>de</strong>s</strong> entrées vers les sorties. Cette propagation passepar l’utilisation <strong>de</strong> variables et <strong>de</strong> signaux locaux. A chaque instant, un signal peut être émis,donc présent ou bien ne plus être émissible, donc absent. L’absence d’un signal est donc unenotion effective et non une notion implicite. Les instructions du langage noyau sont :– nothing : l’instruction vi<strong>de</strong> du langage.– pause : cette instruction marque un délai, elle se met en attente <strong>de</strong> l’instant suivant.– emit S : instruction <strong>de</strong> durée nulle qui provoque l’émission du signal S.– present S then p else q end : test <strong>de</strong> présence d’un signal.– suspend p when S : suspend l’exécution du bloc p chaque fois que S est reçu.– p;q : opérateur <strong>de</strong> séquencement. L’exécution <strong>de</strong> q suit immédiatement l’exécution <strong>de</strong> p.La notion <strong>de</strong> séquence est orthogonale à la notion d’instant. Ainsi, la fin du bloc p et ledébut du bloc q peuvent s’exécuter au sein d’une unique réaction (<strong>de</strong> durée nulle d’aprèsl’hypothèse synchrone).– loop p end : exécute le bloc p en boucle. p ne doit pas être instantané.– p || q : opérateur parallèle. L’exécution termine lorsque p et q ont tous les <strong>de</strong>ux terminé.– trap T in p end : exécute le bloc p jusqu’à la levée d’une exception T ou bien jusqu’à-ceque p termine.– exit T : lève l’exception T.– signal S in p end : déclaration d’un signal local dans p.A partir du langage noyau, d’autres instructions d’usage fréquent ont été introduites. Parmielles :– halt : équivalent <strong>de</strong> loop pause end.– await S : attend la réception du signal S.– sustain S : émet S à chaque instant.– every S do p end : démarre l’exécution <strong>de</strong> p à chaque réception du signal S.

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

Saved successfully!

Ooh no, something went wrong!