Wenn du in Informatik ein Programm schreibst, reicht die Idee allein nicht aus. Der Computer erwartet Zeichen in einer ganz bestimmten Reihenfolge. Schon eine fehlende Klammer kann bedeuten: Das passt nicht zur Regel. Ein Syntaxdiagramm hilft dir, solche Regeln als Wegbild zu sehen.
- Du verstehst, was ein Syntaxdiagramm beschreibt.
- Du unterscheidest Terminalsymbole und Nichtterminalsymbole.
- Du liest einfache Wege durch ein Syntaxdiagramm.
- Du erkennst Sequenz, Alternative und Wiederholung.
- Du prüfst, ob ein Wort zu einer beschriebenen Sprache gehört.
Warum braucht man Syntaxdiagramme?
Im Alltag kennst du Regeln für Schreibweisen. Eine E-Mail-Adresse braucht zum Beispiel bestimmte Teile. Ein Rechenausdruck wie x+2 ist erlaubt, aber x++ wirkt falsch. In der Informatik möchte man solche Regeln sehr genau beschreiben.
Eine Syntax ist die Regel dafür, wie Zeichen richtig angeordnet werden. Sie sagt nur, ob die Form stimmt. Sie sagt noch nicht, ob der Inhalt sinnvoll ist.
Eine formale Sprache ist eine genau festgelegte Menge von Zeichenfolgen. Eine Zeichenfolge nennt man auch Wort. Ein Wort gehört zur Sprache, wenn es nach den Regeln gebildet wurde.
Stell dir eine kleine Sprache für Codes vor.
Erlaubt sind nur diese Wörter:
A1, A2, B1, B2
Dann gehört A1 zur Sprache. C1 gehört nicht dazu, weil C nicht vorgesehen ist. A3 gehört auch nicht dazu, weil nur 1 und 2 erlaubt sind.
Syntax fragt: Ist die Form nach den Regeln gebaut?
Interaktive Quizfrage wird geladen ...
Was ist ein Syntaxdiagramm?
Wenn Regeln nur als Text dastehen, werden sie schnell unübersichtlich. Ein Bild kann zeigen, welchen Weg du gehen darfst. Genau dafür nutzt man ein Syntaxdiagramm.
Ein Syntaxdiagramm ist eine grafische Darstellung von Syntaxregeln. Du liest es wie einen Weg vom Eingang zum Ausgang. Alles, was du unterwegs auswählst, ergibt ein erlaubtes Wort.
Ein Syntaxdiagramm hat also einen Anfang, ein Ende und gerichtete Verbindungen. Die Richtung zeigt, in welcher Reihenfolge du die Teile lesen musst. Wenn du einen vollständigen Weg findest, ist die Zeichenfolge erlaubt.
Eine einfache Regel soll Codes wie A1 oder B2 erlauben.
Gedanklich sieht der Weg so aus:
Start -> wähle A oder B -> wähle 1 oder 2 -> Ende
Damit sind A1, A2, B1 und B2 möglich. 1A ist nicht möglich, weil die Reihenfolge falsch ist.
Syntaxdiagramme heißen manchmal auch Schienendiagramme. Der Name passt, weil du einer Strecke folgst und an Verzweigungen einen erlaubten Weg wählst.
Interaktiver Lückentext wird geladen ...
Bausteine: Terminal und Nichtterminal
Jetzt brauchst du die zwei wichtigsten Arten von Kästen. Sie sehen in echten Diagrammen unterschiedlich aus. Diese Form hilft dir, sofort zu erkennen, ob ein Zeichen endgültig ist oder ob noch eine weitere Regel folgt.
Ein Terminalsymbol ist ein Zeichen oder eine Zeichenfolge, die am Ende wirklich im Wort steht. In Syntaxdiagrammen steht es meist in einem abgerundeten Kasten oder einer Ellipse. Wenn dort A, + oder while steht, muss genau dieser Teil vorkommen.
Ein Nichtterminalsymbol ist ein Platzhalter für eine weitere Regel. In Syntaxdiagrammen steht es meist in einem eckigen Rechteck. Es steht nicht endgültig im Wort, sondern verweist auf ein anderes Syntaxdiagramm oder eine weitere Beschreibung.
Der Name hilft beim Merken: Terminal heißt so viel wie Endstation. Dort bleibt ein echtes Zeichen stehen. Nichtterminal ist noch nicht fertig. Es muss weiter ersetzt oder genauer beschrieben werden.
Für einen einfachen Rechenausdruck könnten diese Teile vorkommen:
Zahl ist ein Nichtterminalsymbol, weil noch geklärt werden muss, welche Ziffern eine Zahl bilden.
+ ist ein Terminalsymbol, weil das Pluszeichen genau so im Ausdruck steht.
Variable ist ein Nichtterminalsymbol, wenn eine weitere Regel sagt, ob x, y oder z erlaubt ist.
Terminale landen direkt im Wort. Nichtterminale schicken dich zu einer weiteren Regel.
Interaktive Quizfrage wird geladen ...
Wege lesen und Wörter prüfen
Ein Syntaxdiagramm ist kein Bild zum Anschauen allein. Du benutzt es aktiv. Du startest links oder am markierten Eingang und folgst den Pfeilen bis zum Ausgang.
Beim Lesen sammelst du alle Terminalsymbole ein. Triffst du ein Nichtterminalsymbol, musst du die passende Regel dafür durchlaufen. Am Ende dürfen nur noch Terminalsymbole übrig sein.
Nehmen wir eine kleine Regel für Variablennamen:
Ein Name beginnt mit x oder y. Danach darf einmal eine Ziffer 0 oder 1 folgen.
Erlaubte Wörter sind also:
x, y, x0, x1, y0, y1
Nicht erlaubt sind:
0x, weil der Name nicht mit einer Ziffer beginnen darf.
x2, weil nur 0 und 1 als Ziffer erlaubt sind.
xy, weil nach dem ersten Buchstaben keine weitere Variable vorgesehen ist.
Eine Ableitung ist die schrittweise Bildung eines Wortes nach den Regeln. Du ersetzt dabei Nichtterminale so lange, bis nur noch Terminale übrig sind.
Eine Ableitung für x1 kann so aussehen:
Name
Buchstabe Ziffer
x Ziffer
x 1
Am Ende steht nur noch das Wort x1.
Ein Wort ist genau dann erlaubt, wenn du einen vollständigen Weg vom Eingang zum Ausgang findest.
Interaktive Quizfrage wird geladen ...
Sequenz, Alternative und Wiederholung
Viele Syntaxdiagramme bestehen aus wenigen Grundmustern. Wenn du diese Muster erkennst, kannst du auch größere Diagramme lesen.
Eine Sequenz bedeutet: Teile kommen nacheinander. Du musst also erst den ersten Teil lesen, dann den zweiten.
Eine Alternative bedeutet: Du darfst zwischen mehreren Wegen wählen. Genau dadurch entstehen verschiedene erlaubte Wörter.
Eine Wiederholung bedeutet: Ein Teil darf mehrfach durchlaufen werden. Je nach Regel kann er gar nicht, einmal oder viele Male vorkommen.
Sequenz:
Regel: erst A, dann B
Erlaubt: AB
Nicht erlaubt: BA
Alternative:
Regel: A oder B
Erlaubt: A, B
Nicht erlaubt: AB
Wiederholung:
Regel: beliebig viele 0, danach eine 1
Erlaubt: 1, 01, 001, 0001
Nicht erlaubt: 10
Eine optionale Stelle ist eine besondere Alternative. Du kannst den Teil nehmen oder überspringen.
Interaktiver Lückentext wird geladen ...
Interaktive Quizfrage wird geladen ...
Zusammenhang mit Grammatiken und Programmiersprachen
Informatik beschreibt Sprachen oft mit Regeln. Eine Grammatik ist ein Regelwerk, das festlegt, wie Wörter einer formalen Sprache gebildet werden. Syntaxdiagramme zeigen solche Regeln als Bild.
Das ist besonders nützlich bei Programmiersprachen. Eine Programmiersprache hat viele genaue Schreibregeln: Klammern, Schlüsselwörter, Operatoren, Namen und Ausdrücke müssen an erlaubten Stellen stehen. Ein Syntaxdiagramm kann diese Regeln anschaulich machen.
Ein Alphabet ist der Vorrat an Zeichen, aus denen Wörter gebaut werden dürfen. In einer kleinen Sprache kann das Alphabet zum Beispiel aus 0, 1, A und B bestehen.
Für einfache Binärwörter kann das Alphabet nur aus 0 und 1 bestehen.
Eine Regel könnte lauten:
Ein gültiges Bitmuster beginnt mit mindestens einer 1 und endet mit mindestens einer 0.
Dann sind 10, 110 und 111000 erlaubt.
01 ist nicht erlaubt, weil es nicht mit 1 beginnt.
111 ist nicht erlaubt, weil am Ende keine 0 steht.
Für Rechenausdrücke kann eine Grammatik festlegen:
Ein Ausdruck kann eine Zahl sein.
Ein Ausdruck kann auch aus Ausdruck, Pluszeichen und Ausdruck bestehen.
Dadurch entstehen zum Beispiel 2, 2+3 und 2+3+4.
Ein Syntaxdiagramm würde die erlaubten Wege dafür zeigen.
Syntaxdiagramme sind eine lesbare Form für genaue Regeln. Sie helfen dir zu prüfen, ob eine Zeichenfolge zur Sprache gehört.
Interaktive Quizfrage wird geladen ...
Typische Fehler beim Lesen
Viele Fehler entstehen, weil man das Diagramm wie eine lose Sammlung von Zeichen liest. Das ist es aber nicht. Die Pfeilrichtung und der vollständige Weg sind entscheidend.
Ein häufiger Fehler ist, eine Alternative als Sequenz zu lesen. Wenn ein Weg A oder B erlaubt, heißt das nicht automatisch AB. Ein anderer Fehler ist, Nichtterminale im fertigen Wort stehen zu lassen.
Regel:
Start -> A oder B -> 0 -> Ende
Richtig sind A0 und B0.
Falsch ist AB0, weil bei der Alternative nur ein Weg gewählt wird.
Falsch ist 0A, weil die Reihenfolge umgedreht ist.
Regel:
Zahl besteht aus einer oder mehreren Ziffern.
Wenn in einer Ableitung noch Zahl steht, bist du nicht fertig. Du musst sie weiter durch echte Ziffern ersetzen, zum Beispiel durch 7 oder 42.
Interaktive Lernkarten wird geladen ...
Interaktive Quizfrage wird geladen ...
Zusammenfassung
Ein Syntaxdiagramm zeigt dir Syntaxregeln als Weg vom Eingang zum Ausgang. Du sammelst unterwegs die Terminalsymbole ein und ersetzt Nichtterminalsymbole durch ihre eigenen Regeln.
Wichtige Muster sind Sequenz, Alternative und Wiederholung. Mit ihnen kann man viele Regeln für formale Sprachen, Rechenausdrücke und Programmiersprachen beschreiben.
So prüfst du ein Wort: Starte am Eingang, folge nur erlaubten Pfeilen, ersetze alle Nichtterminale und kontrolliere, ob genau dein Wort am Ausgang entsteht.
Interaktive Quizfrage wird geladen ...
Mit Google fortfahren