• Keine Ergebnisse gefunden

Teil 3: Dynamische Semantik

Die Information, die ein Baum der abstrakten Syntax 1 enthält, kann man grob in die Struktur, das Verhalten, und die Daten eines SDL-Systems gliedern. Diese Informationen müssen in der dynamischen Semantik durch Programme von ASM-Agenten repräsentiert werden.

Dazu liegt es nahe, SDL-Agenten auf ASM-Agenten abzubilden. Es zeigt sich, dass zusätz-lich Agenteninstanzmengen und Kanäle (Signalfluss) durch ASM-Agenten repräsentiert

wer-Abbildung 9: Statische Semantik von SDL

13. Die Mapping-Funktion ist insgesamt durch einen case-Ausdruck definiert. Jedes Fragment definiert eine Reihe von Mustern in diesem Ausdruck.

Abstrakte Syntax 0 Transformationen

Bedingungen für die abstrakte Syntax 0

Abstrakte Syntax 1 Bedingungen für die abstrakte Syntax 1 Mapping

den müssen. Die Erzeugung dieser Agenten erfolgt in der Initialisierungsphase der Interpretation. Dazu traversiert ein Initialisierungsprogramm die in der abstrakten Syntax dar-gestellte Struktur und erzeugt die initialen ASM-Agenten. Diejenigen ASM-Agenten, die SDL-Agenten repräsentieren, beginnen anschließend mit der Abarbeitung der Starttransitionen.

Abbildung 10 stellt eine Übersicht über die dynamische Semantik von SDL dar. Hauptinhalt der dynamischen Semantik ist die virtuelle SDL-Maschine (SDL virtual machine, SVM), die auf Basis der abstrakten Syntax das Verhalten eines SDL-Systems in Form von ASM-Agenten repräsentiert. Ein Teil dieser virtuellen SDL-Maschine besteht aus Funktionen und ASM-Pro-grammen, die unabhängig von der konkreten SDL-Spezifikation das SDL-Laufzeitsystem bil-den. Dazu gehören neben zahlreichen Hilfsfunktionen insbesondere die Algorithmen zur Transitionsauswahl (selection) und Ablaufkontrolle (firing). Die Abbildung der abstrakten Syn-tax auf ASM-Agenten benutzt direkt nur einen Teil der SVM, der abstrakte SDL-Maschine (SDL abstract machine, SAM) genannt wird.

Die Transitionen eines SDL-Agenten werden in Elementaraktionen (primitives) der SAM übersetzt. Diese Übersetzung erfolgt durch eine Kompilationsfunktion.

In manchen Aktionen der SDL-Agenten wird auf Datentypen Bezug genommen. Das Daten-typsystem wird in die formale Semantik durch eine funktionale Schnittstelle integriert (siehe Abschnitt 8.1). Die Elementaraktionen verwenden Funktionen dieser Schnittstelle, die ihrer-seits die datentyp-relevanten Knoten der abstrakten Syntax 1 verwenden.

Abbildung 10: Dynamische Semantik von SDL

Abstrakte Syntax 1

Struktur Verhalten Daten

Initialisierung

Kompilation

Schnittstelle

SDL Abstract Machine (SAM)

Signalfluss Agenten Elementaraktionen

Verteilte Echtzeit-ASM

Nebenläufigkeit Zeit Asynchronität

Virtuelle SDL-Maschine (SVM)

Laufzeitsystem

Transitions-auswahl Ablauf-kontrolle

Die virtuelle SDL-Maschine wird durch eine Reihe von ASM-Programmen definiert, die von einer verteilten Echtzeit-ASM abgearbeitet werden. Die möglichen Abläufe dieser Maschine stellen die Semantik des SDL-Systems dar.

5.6 Fazit

Die formale Spachdefinition von SDL besteht aus drei Teilen: Einleitung, statischer und dynamischer Semantik. Alle drei Teile basieren auf dem ASM-Kalkül, auf dessen Grundlage Abstraktionen definiert wurden, die für jeden Teil der Sprachdefinition eine leichter verständliche und kompaktere Notation der Semantik erlauben.

6 Die Datentypen von SDL-2000

Gegenüber SDL-92 wurde das Datentypsystem in SDL-2000 vollständig überarbeitet. Das neue Datentypmodell ist gegenüber dem alten vor allem durch die folgenden Eigenschaften charak-terisiert:

• Neben der Wertesemantik bietet SDL nun auch eine Referenzsemantik, die ihrerseits Grundlage eines objektorientierten Datentypsystems ist.

• Die Semantik eines Datentyps ergibt sich nicht mehr durch die Definition von Axiomen über Terme von Operatoranwendungen, sondern einerseits durch Konstruktion neuer Datentypen aus Elementartypen, und andererseits durch die algorithmische Definition von Operatoren und Methoden.

• Die Konstruktionsverfahren für neue Datentypen wurden so ausgewählt, dass eine geradli-nige Abbildung von ASN.1 [X.680] auf SDL im Rahmen von [Z.105] möglich wird.

Diese Änderungen hatten weit reichende Auswirkungen sowohl auf die gesamte SDL-Sprach-definition und die Formalisierung des Datentypkalküls. Verglichen mit SDL-92 sind die viel-leicht einschneidendsten Auswirkungen die folgenden:

• Durch Ersetzen der algebraischen Definition von Datentyp auf Basis von Axiomen durch algorithmische Definitionen entfällt das in [Sch02] identifizierte Problem der prinzipiellen Unberechenbarkeit von Datentypen; Datentypen werden damit auch effizient implementier-bar (siehe auch Abschnitt 3.4). Der Verzicht auf ein separates Kalkül erlaubt es, eine ein-heitliche semantische Grundlage für die gesamte SDL-Semantik zu finden.

• Durch die Einführung von identifizierbaren Objekten und die Möglichkeit zur Definition von Methoden an diesen Objekten ist die Berechnung eines Ausdrucks nun nicht mehr not-wendigerweise seiteneffektfrei. Da diese Änderung einen deutlichen Bruch mit der SDL-Tradition darstellt, wurden von den Autoren des Sprachstandards Versuche unternommen, Seiteneffekte in Operationen (Operatoren und Methoden) in bestimmten Kontexten zu untersagen. Letztlich hat sich aber gezeigt, dass eine solche Einschränkung entweder nicht überprüfbar ist oder aber die Sprache so stark einschränkt, dass sie unbenutzbar wird (siehe Abschnitt 6.6).

• Da Operationen nun oft durch Algorithmen definiert werden, unterliegt die Abarbeitung von Operationen einem Zeitverbrauch. Insbesondere ist es möglich, dass die Berechnung eines Operators nicht terminiert.

• Durch die Einführung von virtuellen Operationen ist es statisch nicht mehr möglich anzuge-ben, welcher Operationsruf durch welche Operationsdefinition implementiert wird.

• Mit der Definition einer Referenzsemantik und der Möglichkeit, rekursive und zyklische Datenstrukturen zu definieren, ergibt sich praktisch die Frage der Speicherverwaltung14. Da eine explizite Speicherverwaltung durch das SDL-Programm einen weiteren Bruch mit der SDL-Tradition dargestellt hätte, ist die Lebenszeit von Objekten in SDL-2000 unspezifiziert – es ist Aufgabe der SDL-Implementierung, den Speicher nicht verwendeter Objekte freizu-geben.

Dieses Kapitel erläutert alle Datentypkonzepte von SDL-2000, um den Leser dieser Arbeit in die Lage zu versetzen, die in den folgenden Kapiteln angegebenen Beispiel für die Definition der formalen Semantik in das Gesamtbild der SDL-Konzepte einzuordnen. Die Vorstellung der Datentypen orientiert sich dabei an der abstrakten Syntax 0, die einerseits sich stark an die kon-krete Syntax anlehnt, andererseits aber unmittelbare Basis vieler Formeln der statischen

Seman-14. Die Wertesemantik von SDL-92 legte eine Implementierungsstrategie nahe, die keine Kontrolle der Speicherverwaltung durch das SDL-Programm erforderte.

tikdefinition ist. Auch wenn der Leser damit die konkrete Syntax hier nicht findet, so kann er doch anhand der Beispiele und erläuternden Text einen Eindruck der konkreten Syntax gewin-nen.