EBNF einfach erklärt: Regeln lesen und entwerfen
Die Erweiterte Backus-Naur-Form (EBNF) beschreibt mit kurzen Regeln, welche Zeichenfolgen zur Syntax einer formalen Sprache gehören. Du liest dazu Terminalsymbole, Nichtterminalsymbole und Verknüpfungen wie Alternative, Option und Wiederholung. Danach kannst du Wörter prüfen und einfache Grammatiken selbst entwerfen.
Hake ab, was du schon kannst — und komm am Ende hierher zurück!
Woraus besteht eine EBNF-Regel?
Stell dir vor, du möchtest erlaubte Bezeichner oder Zahlen beschreiben, ohne jede mögliche Zeichenfolge aufzuzählen. Eine Grammatik fasst die Regeln dafür zusammen. Jede Regel definiert ein Nichtterminalsymbol wie Ziffer oder Konstante.
Terminalsymbol
Ein Terminalsymbol ist ein Zeichen oder eine feste Zeichenfolge, die im erzeugten Text tatsächlich vorkommt. In der hier verwendeten EBNF-Variante steht es in Anführungszeichen, zum Beispiel "7", "+" oder "BEGIN".
Nichtterminalsymbol
Ein Nichtterminalsymbol ist ein Name für eine durch Regeln beschriebene Struktur. Es steht ohne Anführungszeichen, zum Beispiel Ziffer. Beim Erzeugen eines Wortes wird es nach seiner Regel ersetzt.
Wir verwenden auf dieser Seite eine ISO-orientierte Schreibweise:
=trennt den Namen links von seiner Definition rechts.,verbindet Bestandteile in ihrer Reihenfolge.;beendet eine Regel.
Die Regel Zwoelf = "1", "2" ; erzeugt genau den Text 12. Zwoelf ist das Nichtterminal. "1" und "2" sind Terminalsymbole und müssen in dieser Reihenfolge erscheinen.
Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.
Ein steht für Text, der tatsächlich erscheint. In Ziffer = "7" ; ist das Nichtterminal und das Terminal. Das Zeichen trennt den Namen von seiner Definition.
Wie verbindest du die Bausteine?
Vier Schreibweisen decken viele einfache Grammatiken ab.
- Alternative:
A | Bbedeutet: WähleAoderB. - Sequenz:
A, Bbedeutet: Erst kommtA, danachB. - Option:
[ A ]bedeutet:Akommt einmal oder gar nicht vor. - Wiederholung:
{ A }bedeutet:Akommt beliebig oft vor, auch nullmal. - Gruppierung:
( A | B )fasst eine Auswahl zu einem gemeinsamen Baustein zusammen.
Kuerzel = ( "A" | "B" ), [ "-" ], Ziffer ; beschreibt ein Kürzel aus A oder B, danach einem optionalen Bindestrich und zuletzt einer Ziffer. Zulässig sind zum Beispiel A7 und B-3. Nicht zulässig sind C7, A- und -B3.
Lies eine EBNF-Regel von innen nach außen und dann in Reihenfolge: zuerst Klammern und Alternativen klären, danach die Bestandteile der Sequenz zusammensetzen.
Wie prüfst du eine Zeichenfolge?
Beim Wortproblem prüfst du, ob eine konkrete Zeichenfolge nach den Regeln erzeugt werden kann. Gehe dabei nachvollziehbar vor:
- Beginne mit dem Nichtterminal, das die gesamte Sprache beschreibt. Es heißt Startsymbol.
- Wähle bei jeder Alternative einen passenden Zweig.
- Entscheide bei Optionen, ob der Baustein vorkommt.
- Bestimme bei Wiederholungen, wie oft der Baustein gebraucht wird.
- Ersetze weitere Nichtterminale, bis nur noch Terminalsymbole übrig sind.
- Vergleiche Reihenfolge und Zeichen mit dem zu prüfenden Wort.
Für das folgende Beispiel ist Konstante das Startsymbol:
Konstante = [ Vorzeichen ], Ziffer, { Ziffer } ;Vorzeichen = "+" | "-" ;Ziffer = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
Prüfe -204.
- Für
[ Vorzeichen ]wird die vorhandene Option gewählt. Vorzeichenwird durch"-"ersetzt.- Die verpflichtende erste
Zifferwird durch"2"ersetzt. { Ziffer }wird zweimal genutzt und liefert"0"sowie"4".- Übrig bleiben die Terminalsymbole
-,2,0,4in genau dieser Reihenfolge.
Damit gehört -204 zur beschriebenen Sprache.
Wie entwirfst und testest du eine Grammatik?
Übersetze die Beschreibung schrittweise. Gesucht seien Codes, die mit A oder B beginnen und danach mindestens eine Ziffer enthalten.
- Zerlege das Format in Anfang und Ziffernfolge.
- Formuliere den Anfang als Alternative.
- Erzwinge eine erste Ziffer.
- Erlaube danach weitere Ziffern als Wiederholung.
Eine passende Grammatik lautet:
Code = ( "A" | "B" ), Ziffer, { Ziffer } ;Ziffer = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
Teste nicht nur typische Fälle:
A7ist zulässig: erlaubter Anfang und eine Ziffer.B204ist zulässig: erlaubter Anfang, erste Ziffer und zwei Wiederholungen.Aist unzulässig: Die verpflichtende erste Ziffer fehlt.C3ist unzulässig:Cgehört nicht zur Anfangsalternative.
Ein guter Grenzfall liegt direkt an einer Regelgrenze: keine Wiederholung, genau eine Wiederholung, fehlender Pflichtteil oder ein Zeichen knapp außerhalb der erlaubten Auswahl.
Was beschreibt EBNF – und was nicht?
EBNF beschreibt die Syntax, also die Form zulässiger Zeichenfolgen. Sie kann zum Beispiel festlegen, wie ein Bezeichner aufgebaut ist oder in welcher Reihenfolge Teile eines Programms stehen.
EBNF legt nicht automatisch die Semantik, also die Bedeutung, fest. Eine Zeichenfolge kann syntaktisch korrekt sein und trotzdem in einem bestimmten Sachzusammenhang keinen sinnvollen oder erlaubten Wert darstellen.
Außerdem gibt es mehrere EBNF-Varianten. Manche verwenden ::= statt =, einen Punkt statt eines Semikolons oder eine andere Schreibweise für Sequenzen. Deshalb musst du vor dem Arbeiten klären, welche Konvention gilt. Innerhalb einer Grammatik verwendest du sie konsequent.
EBNF ist kompakter als BNF, weil Option und Wiederholung eigene Kurzformen besitzen. Dadurch beschreibt EBNF nicht grundsätzlich mehr Sprachen: Die Kurzformen lassen sich auch mit Alternativen, Rekursion und einem leeren Fall ausdrücken.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- EBNF
- Bausteine
- Terminalsymbole
- Nichtterminalsymbole
- Verknüpfungen
- Alternative und Sequenz
- Option und Wiederholung
- Gruppierung
- Arbeiten mit Regeln
- Wörter schrittweise prüfen
- Grammatiken entwerfen
- Grenzfälle testen
- Geltungsbereich
- Syntax statt Semantik
- Notationsvarianten beachten
- Bausteine
Abschluss-Check
Wenn du alle drei Aufgaben begründen kannst, kannst du EBNF-Regeln nicht nur ablesen, sondern auch auf neue Zeichenformate übertragen.
Mit Google fortfahren