Exkurs - Eine Sprache zur Beschreibung von Syntaxdiagrammen
Eine Schreibweise für Syntaxdiagramme
Im Abschnitt Beispiel - Turtle-Programme wurde die Sprache der (einfachen) Turtle-Programme mit Hilfe von Syntaxdiagrammen präzise festgelegt.
Syntaxdiagramme legen Ersetzungsregeln fest. Diese Ersetzungsregeln kann man auch textuell darstellen. Die folgende Übersicht zeigt, wie das am Beispiel der Syntaxdiagramme für Logo-Programme.
| Syntaxdiagramm | Ersetzungsregeln |
|---|---|
|
Ziffer:
|
Ziffer ::= '0' |
'1' |
'2' |
'3' |
'4' |
'5' |
'6' |
'7' |
'8' |
'9'
|
|
Natzahl:
|
Natzahl ::= Ziffer+ |
|
Dezbruch:
|
Dezbruch ::= Natzahl '.' Natzahl |
|
Zahl:
|
Zahl ::= '-'? (Natzahl | Dezbruch) |
|
Leer:
|
Leer ::= ' ' |
|
WS:
|
WS ::= Leer+ |
|
Turtleanw:
|
Turtleanw ::= 'fd' WS Zahl |
'bk' WS Zahl |
'lt' WS Zahl |
'rt' WS Zahl |
'st' WS |
'ht' WS
|
|
Anwfolge:
|
Anwfolge ::= (Turtleanw WS?)+ |
|
Turtleprogr:
|
Turtleprogr ::= Anwfolge |
Aufgabe 1
Probiere das selbst mit dem Railroad Diagram Generatoraus.
Gib dazu im Feld [Edit Grammar] die "Grammatik" der Sprache in der unten gezeigten Form ein. Man nennt diese Form die sogenannte Backus-Naur-Form (BNF).
Ziffer ::= '0' |
'1' |
'2' |
'3' |
'4' |
'5' |
'6' |
'7' |
'8' |
'9'
Natzahl ::= Ziffer+
Dezbruch ::= Natzahl '.' Natzahl
Zahl ::= '-'? (Natzahl | Dezbruch)
Leer ::= ' '
WS ::= Leer+
Turtleanw ::= 'fd' WS Zahl |
'bk' WS Zahl |
'lt' WS Zahl |
'rt' WS Zahl |
'st' WS |
'ht' WS
Anwfolge ::= (Turtleanw WS?)+
Turtleprogr ::= Anwfolge
Aktiviere anschließend [View Diagram].
Aufgabe 2
Versuche, anhand des Beispiels (und weiterer Experimente) zu erschließen, was die Symbole "|", "+" und "?" bewirken.