2.4 Kommunizierende endliche Automaten
67
den berechnet und die entsprechenden Zustandsübergänge ausgeführt. Dazu ist ein
schneller Broadcast-Mechanismus notwendig, der alle Teile des Modells erreicht.
Diese idealisierte Betrachtung von Gleichzeitigkeit hat den Vorteil, dass dadurch
deterministisches Verhalten garantiert wird. Es stellt eine Einschränkung des allgemeinen Modells kommunizierender Automaten dar, bei dem jeder Automat seinen
eigenen Takt haben darf. Synchrone Sprachen stellen das Prinzip der Gleichzeitigkeit in synchroner Hardware dar und repräsentieren die Semantik von Sprachen für
Industriesteuerungen wie IEC 60848 [232] und STEP 7 [488]. Ein Überblick über
synchrone Sprachen ist bei Potop-Butucaru et al. [458] zu finden.
Beispiele für synchrone Sprachen: Esterel, Lustre und SCADE
Ein deterministisches Verhalten für alle Sprachkonstrukte zu garantieren, war eines
der Hauptziele bei der Entwicklung der synchronen Sprachen Esterel [154, 61] ,
Lustre [200] und Quartz [480].
Esterel ist eine reaktive Sprache: wenn Esterel-Modelle mit einem Eingabeereignis aktiviert werden, reagieren sie mit der Erzeugung eines Ausgabeereignisses.
Esterel ist eine synchrone Sprache: es wird angenommen, dass alle Reaktionen ohne
Zeitverzögerung abgeschlossen werden, und dass es ausreichend ist, das Verhalten
zu diskreten Zeitpunkten zu analysieren. Dieses idealisierte Modell vermeidet die
Probleme von überlappenden Zeiträumen und von Ereignissen, die ankommen, während die vorhergehende Reaktion noch nicht abgeschlossen war. Wie andere Sprachen
auch, hat Esterel einen Parallelisierungsoperator, der als || geschrieben wird. Wie
in StateCharts findet Kommunikation über einen Broadcast-Mechanismus statt. Im
Gegensatz zu StateCharts findet die Kommunikation allerdings augenblicklich, ohne
jede Verzögerung, statt. Das bedeutet, dass alle Signale, die zu einem bestimmten
Zeitpunkt erzeugt werden, in genau diesem Zeitpunkt auch von allen anderen Teilen
des Modells gesehen werden. Wenn diese anderen Teile sensitiv auf die erzeugten
Signale reagieren, reagieren sie auch in genau diesem einen Zeitpunkt. Dabei können mehrere Runden von Auswertungen erforderlich sein, bis schließlich ein stabiler
Zustand erreicht wird. Die dadurch maximal mögliche Antwortzeit wird beispielsweise von Boldt et al. berechnet [56]. Diese Weiterleitung von Werten während ein
und derselben makroskopischen Zeiteinheit entspricht der Erzeugung des nächsten
Zustands für den gleichen Zeitpunkt in StateCharts, wobei der Broadcast hier augenblicklich geschieht. Für weitere aktuelle Informationen zu Esterel verweisen wir
auf die Web-Seite [154].
Esterel und Lustre verwenden eine unterschiedliche Syntax, um kommunizierende endliche Automaten zu beschreiben. Esterel sieht dabei wie eine imperative Programmiersprache aus, wogegen Lustre eher an eine Datenflusssprache erinnert (siehe
Seite 75 für eine Beschreibung von Datenflussmodellen). Eine grafische Version von
Esterel ist mit SyncCharts verfügbar. Alle diese Implementierungen verwenden die
Semantik der zu Grunde liegenden kommunizierenden endlichen Automaten. Die
kommerziell verfügbare graphische Sprache SCADE [18] verbindet Elemente al-
Précédent

- 90/485

Suivant