Informatik

Syntaxdiagramme lesen, prüfen und erstellen

Syntaxdiagramme lesen, prüfen und erstellen
Syntaxdiagramme lesen, prüfen und erstellen
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Ein Syntaxdiagramm beschreibt mit gerichteten Wegen, welche Zeichenfolgen nach einer formalen Regel erlaubt sind. Du folgst einem vollständigen Weg vom Eingang bis zum Ausgang: Die dabei durchlaufenen Terminalsymbole ergeben ein gültiges Wort.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Vom Weg zum Wort

Ein Syntaxdiagramm besitzt einen Eingang, einen Ausgang und gerichtete Verbindungen dazwischen. Du beginnst am Eingang, folgst den Pfeilrichtungen und musst den Ausgang erreichen.

Definition

Formale Sprache

Eine formale Sprache ist eine Menge von Wörtern, die nach genau festgelegten Regeln gebildet werden. Ein Wort ist dabei eine endliche Zeichenfolge, zum Beispiel 1100 oder x+20*y.

Ein vollständiger Weg lässt sich auf zwei Arten nutzen:

  • Erzeugen: Du wählst einen erlaubten Weg und schreibst die durchlaufenen Zeichen auf.
  • Prüfen: Du suchst zu einem vorgegebenen Wort einen Weg, dessen Zeichen genau in derselben Reihenfolge erscheinen.

Gibt es keinen solchen vollständigen Weg, gehört das Wort nicht zu der beschriebenen Sprache.

Merke

Nicht irgendein Ausschnitt des Weges zählt. Ein Wort ist nur dann syntaktisch zulässig, wenn sein gesamter Zeichenverlauf vom Eingang bis zum Ausgang passt.

Teste dich
Frage 1 von 1LeichtWann akzeptiert ein Syntaxdiagramm ein Wort?
Lösung: Wenn ein vollständiger gerichteter Weg genau die Zeichen des Wortes in ihrer Reihenfolge durchläuft. — Entscheidend sind der vollständige Weg, die Pfeilrichtung und die genaue Reihenfolge aller Zeichen.
Terminale und Nichtterminale

Syntaxdiagramme trennen Zeichen, die im fertigen Wort stehen, von Bezeichnungen für Teilregeln.

Definition

Terminalsymbol

Ein Terminalsymbol ist ein Zeichen oder eine feste Zeichenfolge, die im fertigen Wort vorkommt. Es wird typischerweise in einem Kreis, Oval oder abgerundeten Kasten dargestellt. Beispiele sind 0, x, + oder if.

Definition

Nichtterminalsymbol

Ein Nichtterminalsymbol bezeichnet eine syntaktische Kategorie mit einem eigenen Diagramm. Es steht typischerweise in einem rechteckigen Kasten. Beispiele sind Ziffer, Variable oder Ausdruck.

Triffst du auf das Nichtterminal Ziffer, wechselst du in dessen Diagramm. Dort wählst du beispielsweise eines der Terminale 0 bis 9. Nach dem vollständigen Durchlauf kehrst du in das übergeordnete Diagramm zurück.

Beispiel: x+20*y ableiten

Für Rechenausdrücke können die Kategorien Ausdruck, Summand, Faktor, Variable, Zahl und Ziffer verwendet werden. Eine verkürzte Ableitung zeigt, wie Nichtterminale schrittweise verschwinden:

Beispiel

Ausdruck

Summand + Summand

Faktor + Faktor * Faktor

Variable + Zahl * Variable

x + Ziffer Ziffer * y

x + 2 0 * y

x+20*y

Am Ende sind nur noch Terminalsymbole vorhanden. Damit wurde das Wort aus den Regeln erzeugt.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Ein Zeichen, das im fertigen Wort stehen darf, ist ein . Eine Bezeichnung für ein eigenes Unterdiagramm ist ein . Nach dem Durchlaufen eines Unterdiagramms kehrst du in das zurück. Eine Ableitung endet, wenn nur noch übrig sind.

Lösungen: Lücke 1: Terminalsymbol; Lücke 2: Nichtterminalsymbol; Lücke 3: übergeordnete Diagramm; Lücke 4: Terminalsymbole. Terminale bilden das fertige Wort. Nichtterminale gliedern die Regel in wiederverwendbare Teilregeln.
Grundmuster erkennen

Komplexe Syntaxdiagramme setzen sich aus wenigen Grundmustern zusammen:

  • Sequenz: Teile müssen nacheinander durchlaufen werden.
  • Alternative: An einer Verzweigung wird genau einer der angebotenen Wege gewählt.
  • Optionaler Teil: Ein Abschnitt darf durchlaufen oder umgangen werden.
  • Wiederholung: Ein Abschnitt darf mehrfach durchlaufen werden; je nach Weg kann auch kein Durchlauf erlaubt sein.
  • Rekursion: Ein Diagramm verweist direkt oder über andere Kategorien wieder auf sich selbst.

Zyklen und Rekursion können unendlich viele verschiedene Wörter beschreiben. Jeder Weg für ein konkretes Wort muss trotzdem endlich sein.

Beispiel: Drei Muster verbinden

Eine Regel fordert:

  1. Am Anfang steht 11 oder 0.
  2. Danach folgen beliebig viele Blöcke A, BB oder CCC.
  3. Am Ende steht 1 oder 00.
Beispiel

Das Wort 11BBACCC00 ist zulässig:

  • 11 erfüllt die erste Alternative.
  • BB, A und CCC sind drei erlaubte Durchläufe der Wiederholung.
  • 00 erfüllt die letzte Alternative.

Das Wort 11CC00 ist nicht zulässig. In der Mitte ist nur der Block CCC erlaubt, nicht CC.

Teste dich
Frage 1 von 1MittelWelches Wort erfüllt die beschriebene Regel vollständig?
Lösung: 0ABB10ABB1 zerfällt in den erlaubten Anfang 0, die Blöcke A und BB sowie das erlaubte Ende 1.
Ein Wort vollständig prüfen

Beim Prüfen hilft ein festes Vorgehen:

  1. Markiere Eingang und Ausgang.
  2. Lies das nächste Zeichen des Wortes.
  3. Wähle nur einen Weg, dessen Terminal zu diesem Zeichen passt.
  4. Durchlaufe jedes angetroffene Nichtterminal vollständig.
  5. Prüfe am Ende: Sind alle Zeichen verbraucht und ist der Ausgang erreicht?

Beispiel: Gleich viele Einsen und Nullen

Die rekursive Regel

Bitmuster → 10 oder Bitmuster → 1 Bitmuster 0

erzeugt eine nichtleere Folge von Einsen, gefolgt von gleich vielen Nullen.

Beispiel

Prüfung von 1100:

Bitmuster

1 Bitmuster 0

1 1 0 0

1100

Das innere Bitmuster wird durch 10 ersetzt. Deshalb ist 1100 zulässig.

11000 ist nicht zulässig: Zwei Einsen stehen drei Nullen gegenüber. Nach einer vollständigen Ableitung bliebe eine zusätzliche 0 übrig.

Teste dich
Frage 1 von 1MittelWelches Wort gehört zu dieser Sprache?
Lösung: 111000111000 besitzt drei führende Einsen und danach genau drei Nullen.
Ein Diagramm entwerfen

Beginne beim Entwerfen nicht mit Kästen und Pfeilen, sondern mit der Zeichenregel.

  1. Bestimme feste Zeichenfolgen.
  2. Markiere Alternativen.
  3. Bestimme optionale oder wiederholbare Teile.
  4. Lagere wiederkehrende Teilregeln als Nichtterminale aus.
  5. Verbinde alles zu mindestens einem vollständigen Weg.
  6. Teste passende Wörter und gezielt gewählte Gegenbeispiele.

Beispiel: Anfang 11, Ende 00

Gesucht sind Wörter, die mit 11 beginnen und mit 00 enden. Dazwischen darf eine beliebige Folge aus 0 und 1 stehen.

Beispiel

Eine textuelle Wegbeschreibung lautet:

Eingang → 11 → Wiederholung von 0 oder 1 → 00 → Ausgang

Die Wiederholung darf ohne Durchlauf verlassen werden. Deshalb ist 1100 zulässig. Bei 110100 bildet 01 den Mittelteil, also ist auch dieses Wort zulässig.

1000 ist nicht zulässig, weil der geforderte Anfang 11 fehlt. 1100010 ist nicht zulässig, weil das Wort nicht mit 00 endet.

Gut zu wissen

Teste beim Entwerfen besonders die Grenzen: den kürzesten erlaubten Weg, keinen Durchlauf einer möglichen Wiederholung, mehrere Wiederholungen sowie Wörter mit falschem Anfang oder Ende.

Teste dich
Frage 1 von 1SchwerWelche Begründung zeigt, dass 1100 zur entworfenen Regel gehört?
Lösung: Nach 11 wird die Wiederholung keinmal durchlaufen; anschließend folgt direkt 00. — Das Wort besteht bereits aus dem festen Anfang 11 und dem festen Ende 00. Ein leerer Mittelteil ist erlaubt.
Was Syntaxdiagramme nicht prüfen

Syntaxdiagramme beschreiben die formale Struktur einer Zeichenfolge. Sie können beispielsweise festlegen, wo ein Schlüsselwort, eine Klammer oder eine Ziffer stehen darf.

Nicht jede zusätzliche Bedingung lässt sich dadurch ausdrücken. Bei einem Programm kann die Zeichenfolge syntaktisch passend aufgebaut sein, obwohl etwa der Typ eines zugewiesenen Wertes nicht zum Typ der Variablen passt. Solche bedeutungs- oder typabhängigen Bedingungen werden zusätzlich geprüft.

Merke

Syntaktisch korrekt bedeutet: Die Form passt zur Regel. Es bedeutet nicht automatisch, dass ein Programm sinnvoll ist oder alle semantischen Bedingungen erfüllt.

Teste dich
Frage 1 von 1SchwerEin Zuweisungsausdruck folgt dem erlaubten syntaktischen Aufbau, aber Wert und Variable haben unvereinbare Typen. Was folgt daraus?
Lösung: Die Syntax kann korrekt sein, obwohl eine zusätzliche Typbedingung verletzt ist. — Formale Syntax und zusätzliche semantische Bedingungen sind getrennte Prüfschritte.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Syntaxdiagramm
    • vollständiger Weg: Eingang bis Ausgang
    • Bausteine: Terminale und Nichtterminale
    • Strukturen: Sequenz, Alternative, Wiederholung und Rekursion
    • Anwendungen: Wörter erzeugen, prüfen und Regeln entwerfen
    • Grenze: syntaktische Form statt vollständiger Semantik
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWelche Aussage beschreibt ein Nichtterminal richtig?
Lösung: Es verweist auf eine syntaktische Kategorie mit einem eigenen Diagramm. — Ein Nichtterminal bündelt eine Teilregel. Nach dem Durchlaufen seines Diagramms wird der übergeordnete Weg fortgesetzt.
Frage 2 von 3MittelNach der Regel Bitmuster → 10 oder Bitmuster → 1 Bitmuster 0: Warum ist 11110000 zulässig?
Lösung: Vier rekursiv verschachtelte Ebenen ergeben vier Einsen, gefolgt von vier Nullen. — Jede rekursive Erweiterung fügt außen eine 1 und eine 0 hinzu. So bleiben Anzahl und Reihenfolge gekoppelt.
Frage 3 von 3SchwerDu entwirfst die Regel „eine oder mehrere Ziffern, optional mit einem Minus davor“. Welcher Testfall prüft die optionale Stelle und die Mindestlänge besonders gut?
Lösung: Prüfe sowohl 7 als auch -7 und verwirf das leere Wort sowie -. — 7 und -7 testen beide Wege der optionalen Stelle. Das leere Wort und - prüfen, ob wirklich mindestens eine Ziffer erforderlich ist.

Wenn du alle drei Aufgaben begründen kannst, kannst du Syntaxdiagramme nicht nur ablesen, sondern auch systematisch prüfen und aus Regeln entwickeln.

Passend dazu