| Themen |
|
Syntax einer Programmiersprache
Die Syntax einer Programmiersprache legt fest, welche Zeichenreihen bzw.
Folgen von Wörtern korrekt formulierte ("syntaktisch korrekte") Programme der
Sprache darstellen und welche nicht. Zur Überprüfung der syntaktischen
Korrektheit eines Programms muss deshalb zuvor die Syntax der
Programmiersprache formal beschrieben werden. Hierzu existieren verschiedene
Möglichkeiten. In diesem Kurs werden dazu Syntaxdiagramme verwendet. Nicht mit
ihrer Hilfe formulierbare Eigenschaften der Syntax werden umgangssprachlich
ergänzt.
Bei den Syntaxdiagrammen handelt es sich um eine grafische und daher
sehr übersichtliche Notation zur Definition der Syntax einer
Programmiersprache. Syntaxdiagramme sind folgendermaßen definiert:
-
Zur Beschreibung der Syntax einer Sprache existiert in der Regel eine Menge
von Syntaxdiagrammen, die zusammen die Syntax definieren. In der Menge
existiert genau ein übergeordnetes Syntaxdiagramm, bei dem die Definition
beginnt.
-
Jedes Syntaxdiagramm besitzt einen Namen (Bezeichnung).
-
Jedes Syntaxdiagramm besteht aus runden und eckigen Kästchen sowie aus Pfeilen.
-
In jedem rechteckigen Kästchen steht die Bezeichnung eines (anderen)
Syntaxdiagramms der Menge von Syntaxdiagrammen (ein so genanntes
Nicht-Terminalsymbol).
-
In jedem runden Kästchen steht ein Wort (Token, Terminalsymbol) der Sprache.
-
Aus jedem Kästchen führt genau ein Pfeil hinaus und genau einer hinein.
-
Pfeile dürfen sich aufspalten und zusammengezogen werden.
-
Jedes Syntaxdiagramm besitzt genau einen Pfeil, der von keinem Kästchen
ausgeht (eintretender Pfeil) und genau einen Pfeil, der zu keinem Kästchen
führt (austretender Pfeil).
Token einer Programmiersprache werden durch die Lexikalik der Sprache
definiert. Sie stellen die kleinsten zusammenhängenden Grundsymbole einer
Sprache, beispielsweiese:
-
einfache und zusammengesetzte Symbole (+, =, (, ...).
-
Schlüsselwörter (reservierte Wörter)
-
Bezeichner
-
Konstanten
Trennzeichen (Zeichen für die Trennung von Token) wie Blanks, Tabulatoren oder
Zeilenumbrüche sowie Kommentare werden im Allgemeinen nicht in den
Syntaxdiagrammen berücksichtigt.
Mit Hilfe von Syntaxdiagrammen kann festgestellt werden, ob eine
bestimmte Zeichenfolge (ein Programm) syntaktisch korrekt ist. Dazu fängt man
bei dem eintretenden Pfeil des übergeordneten Syntaxdiagramm an und verfolgt
die Pfeile. Erreicht man ein rundes Kästchen, so muss das entsprechende Token
als nächstes in der Zeichenfolge auftreten. Erreicht man ein eckiges Kästchen,
springt man in das entsprechend bezeichnete Syntaxdiagramm. Existieren
alternative Wege, so wählt man den entsprechenden aus. Gibt es keinen Weg
durch die Syntaxdiagramme, so ist das Programm syntaktisch nicht korrekt. Nach
der Abarbeitung der Zeichenfolge muss der austretende Pfeil des übergeordneten
Syntaxdiagramms erreicht worden sein. Sonst ist das Programm ebenfalls nicht
syntaktisch korrekt.
Das Prinzip, nach dem Syntaxdiagramme arbeiten, lässt sich durch eine
Analogie veranschaulichen: In einem Zoo gibt es eine Menge von Gehegen mit
verschiedenen Tieren. Die Gehege können durch Besucher auf Wegen erreicht
werden. Wegen der großen Besucherzahlen dürfen dabei die Wege jeweils nur in
einer Richtung begangen werden. Es existieren Kreuzungen, an denen mehrere
Wege eingeschlagen werden können. In der folgenden Abbildung werden anhand
eines Syntaxdiagramms (Wegeplan des Zoos) die möglichen Wege durch den Zoo
veranschaulicht. Die Gehege stellen dabei die Token dar. Der Übersichtlichkeit
halber ist der Plan in zwei Teilpläne (Zoo, Säugetiere) aufgeteilt.
Abbildung: Wegeplan im Zoo als Syntaxdiagramm
Ein Fotograph möchte nun im Zoo eine Fotoserie erstellen. Dabei muss(!) er
jeweils ein Foto schießen, wenn er an einem Gehege vorbei kommt. Er orientiert
sich an dem Wegeplan. Offenbar kann er die möglichen Bildsequenzen ermitteln,
indem er die möglichen Wege durch den Zoo nachvollzieht. Erreicht er im Plan
das eckige Kästchen Säugetiere, so zeigt der Teilplan Säugetiere den weiteren
Weg, bis er diesen wieder verlässt und am Ausgang des eckigen Kästchens
Säugetiere seinen Weg fortsetzt.
Mögliche Bildsequenzen sind zum Beispiel:
-
Schlangen Delphine
-
Schlangen Elephanten Pinguine Delphine
-
Schlangen Elephanten Pinguine Affen Delphine
-
Schlangen Elephanten Pinguine Elephanten Pinguine Delphine
Dahingegen sind folgende Bildsequenzen nicht möglich (Warum?):
-
Elephanten Delphine
-
Schlangen Pinguine
-
Schlangen Elephanten Affen Delphine
-
Schlangen Pinguine Schlangen Delphine
» drucken: pdf | html
|