Fachkonzept
Im Einstieg hast du mit Diagrammen vereinfachte E-Mail-Adressen und Klammerwörter hergestellt und geprüft. Hier bekommen die Diagramme, ihre Bestandteile und ihre Bausteine Fachbegriffe.
Syntaxdiagramme und ihre Symbole
Ein Syntaxdiagramm beschreibt grafisch, wie Wörter aufgebaut sind. Es hat einen Eingang (links) und einen Ausgang (rechts). Jeder Weg vom Eingang zum Ausgang liefert eine Folge von Symbolen.
In einem Syntaxdiagramm gibt es zwei Arten von Symbolen:
- Ein Terminalsymbol steht in einem runden Kasten. Es ist ein Zeichen des Alphabets Σ und bleibt im Wort stehen.
- Ein Nichtterminalsymbol steht in einem eckigen Kasten. Es ist der Name eines Syntaxdiagramms. Auf dem Weg wird es durch die Symbole eines Weges durch dieses Diagramm ersetzt.
Die Diagramme für vereinfachte E-Mail-Adressen aus dem Einstieg:
- Terminalsymbole:
b,@und.. Sie bilden das Alphabet Σ = {b, @, .}. - Nichtterminalsymbole:
Emailadresse,User,Domain,Subdomains,Topleveldomain,NameundBuchstabe. Zu jedem gibt es ein eigenes Diagramm.
Die Sprache eines Syntaxdiagramms
Meist beschreiben mehrere Syntaxdiagramme gemeinsam eine Sprache. Eines davon ist das Startdiagramm.
Ein Wort wird so hergestellt: Man beginnt mit dem Nichtterminalsymbol des Startdiagramms. Dann ersetzt man so lange Nichtterminalsymbole durch Wege durch ihr Diagramm, bis nur noch Terminalsymbole übrig sind.
Zur Sprache, die die Syntaxdiagramme beschreiben, gehören genau die Wörter, die man auf diese Weise herstellen kann.
Das Startdiagramm ist Emailadresse. Stelle b@b.b her und verfolge, wie aus dem Nichtterminalsymbol Emailadresse Schritt für Schritt ein Wort aus Terminalsymbolen wird.
Die letzte Zeile enthält nur noch Terminalsymbole. b@b.b gehört also zur Sprache der vereinfachten E-Mail-Adressen. b.b@b.b lässt sich dagegen nicht herstellen, denn im Diagramm User gibt es keinen Weg mit einem Punkt.
Bausteine von Syntaxdiagrammen
Syntaxdiagramme werden aus vier Bausteinen zusammengesetzt:
| Baustein | Diagramm | So verläuft der Weg | Wirkung im Wort |
|---|---|---|---|
| Folge | Symbole liegen hintereinander auf einem Weg. | Sie stehen in dieser Reihenfolge im Wort. | |
| Verzweigung | Der Weg teilt sich. Man wählt genau einen Zweig. Ein Zweig kann auch leer sein, also an allem vorbeiführen (unteres Diagramm). | Eine von mehreren Möglichkeiten. Mit einem leeren Zweig ist ein Teil optional. | |
| Schleife | Ein Weg führt zurück, sodass ein Wegstück mehrfach durchlaufen werden kann. Ein zweiter Weg führt ganz daran vorbei. | Ein Teil wird beliebig oft wiederholt, auch keinmal. | |
| Rekursion | Ein Diagramm enthält sein eigenes Nichtterminalsymbol, direkt oder über andere Diagramme. | Teile können ineinander verschachtelt werden, zum Beispiel passende Paare. |
Das Diagramm Emailadresse ist eine Folge: erst User, dann @, dann Domain. Jede Adresse hat genau diesen Aufbau.
Im Diagramm Topleveldomain für Schuladressen aus dem Einstieg wählt man genau eine der drei Endungen.
Im Diagramm Antwort führt ein Zweig am Ausrufezeichen vorbei. Das Ausrufezeichen ist also optional: Die Sprache enthält genau die Wörter ja und ja!.
Ein Torjubel beginnt mit T, hat mindestens ein o und endet mit r. Die Schleife erlaubt beliebig viele weitere o: Tor, Toor, Tooooor, …
Das Diagramm Klammer enthält sein eigenes Nichtterminalsymbol. Auf dem Weg durch das Diagramm entstehen eine öffnende und eine schließende Klammer immer gemeinsam. Dazwischen kann wieder ein ganzes Klammer-Wort stehen. So entstehen genau die Wörter (), (()), ((())), …
Mit einer Schleife allein lässt sich das nicht beschreiben, denn die Schleife „weiß“ nicht, wie oft eine andere Schleife durchlaufen wurde.
Bemerkungen
- Verschiedene Syntaxdiagramme können dieselbe Sprache beschreiben. Das Diagramm
Namelässt sich zum Beispiel mit einer Schleife oder mit Rekursion zeichnen. - Ein gestrichelter Kasten wie
0–9ist eine Abkürzung für eine Verzweigung: Man wählt genau eines der Zeichen von0bis9. - Syntaxdiagramme legen nur die Syntax fest, also den Aufbau der Wörter. Was ein Wort bedeutet, beschreiben sie nicht.
- Syntaxdiagramme werden auch in der Praxis verwendet, zum Beispiel in der Dokumentation von Programmiersprachen und Datenformaten.
Teste dich
In den Übungen liest du weitere Syntaxdiagramme, prüfst Wörter und entwirfst eigene Diagramme.