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.

2.1. ESTEREL 11– abort p when S : préemption forte. Interrompt l’exécution <strong>de</strong> p dès la réception <strong>de</strong> S.– weak abort p when S : préemption faible. Dès la réception <strong>de</strong> S, exécute les <strong>de</strong>rnièresréactions instantanées du bloc p avant d’interrompre son exécution.Par défaut, les instructions suspend, await, every et abort/weak abort ne réagissent à laprésence du signal S qu’à partir <strong>de</strong> l’instant suivant leur première activation. Le langage étendudéfinit le mot-clé immediate qui, dans un exemple comme “abort p when immediate S”, permet<strong>de</strong> réagir à la présence <strong>de</strong> S dès le premier instant.Un simple exemple. Le programme <strong>Esterel</strong> suivant modélise une porte automatique dontle comportement consiste à s’ouvrir dès qu’un utilisateur appuie sur un bouton. La porte resteouverte pendant un délai <strong>de</strong> trois secon<strong><strong>de</strong>s</strong> après la <strong>de</strong>rnière <strong>de</strong>man<strong>de</strong> d’ouverture, puis sereferme. Le temps et le bouton d’ouverture sont les entrées du programme (portées par <strong><strong>de</strong>s</strong>signaux purs, SECONDES et BOUTON). Comble <strong>de</strong> mo<strong>de</strong>rnité, un système <strong>de</strong> sécurité empêche lafermeture <strong>de</strong> la porte quand une présence est détectée (signal PRESENCE). Le signal OUVERTUREen sortie indique si la porte est ouverte :module porte:input BOUTON, SECONDES, PRESENCE;output OUVERTURE;every BOUTON dotrap FERMER inawait 3 SECONDES;suspend exit FERMER when immediate PRESENCE||sustain OUVERTUREend trap;end everyend moduleLes données en <strong>Esterel</strong>. Dans sa version complète, le langage permet aussi <strong>de</strong> manipuler<strong><strong>de</strong>s</strong> données : booléens, entiers, flottants et chaînes <strong>de</strong> caractères. Nous avons présenté la partiecontrôle auparavant car elle constitue la partie novatrice du langage <strong>Esterel</strong>. Le traitement<strong><strong>de</strong>s</strong> données est plus classique et souvent délégué à un langage hôte plus généraliste comme C ouJava. Par ailleurs, <strong>Esterel</strong> procure également un mécanisme capable <strong>de</strong> créer et <strong>de</strong> manipulerses propres structures <strong>de</strong> données par une interface avec le langage C. Ces données peuventêtre manipulées par le biais <strong>de</strong> simples variables ou bien être transmises par <strong><strong>de</strong>s</strong> signaux. Dansce second cas, un signal est caractérisé à la fois par son statut <strong>de</strong> présence ou d’absence etpar la valeur qu’il transporte, ces <strong>de</strong>ux notions étant orthogonales. Par exemple, un signal <strong>de</strong>type booléen peut être à la fois présent et faux ou bien absent et vrai. La valeur portée parun signal <strong>de</strong>meure inchangée tant que le signal n’est pas émis. La valeur d’un signal <strong>de</strong>meuredonc indéfinie ou bien initialisée à une valeur par défaut jusqu’à ce que le signal soit émis pourla première fois. A la différence d’une variable, un signal ne peut pas prendre plusieurs valeurssuccessives au cours d’un même instant.Le langage propose évi<strong>de</strong>mment quelques opérations <strong>de</strong> base : opérateurs logiques et arithmétique,manipulation <strong>de</strong> chaînes <strong>de</strong> caractères, instruction <strong>de</strong> test sur les variables, etc. . . En

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

Saved successfully!

Ooh no, something went wrong!