Logo Logo
InfoHome Themen Projekte Links Software
Themen
JavaHamster
Vorbereitungen
Hamstersimulator
Syntaxdiagramme
Anweisung&Programme
Prozeduren
Auswahlanweisungen
Wiederholungsanw.
Boolsche Funktionen
int-Variablen
Boolsche Variablen
Funktionsparameter
Exkurs: Dualzahlen
Aufgaben
BlueJ
Java
HTML
XHTML
CSS
XML
Datenbanken
MySQL
Theoretische Informatik
PHP
Kara
Lego-Roboter
Algorithmen

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

© 2004-2024 M. Blanke · Ursulaschule · Kleine Domsfreiheit 11-18 · 49074 Osnabrück