Zum Inhalt springen

Informatik · Klasse 11–13 · aktualisiert

EBNF einfach erklärt: Regeln lesen und entwerfen

Du liest EBNF-Regeln, prüfst Zeichenfolgen Teil für Teil, schreibst eigene Regeln und erfährst, was EBNF nicht festlegt.

0 von 9 Aufgaben gelöst

EBNF einfach erklärt: Regeln lesen und entwerfen

Kurz gesagt

EBNF ist eine Schreibweise für Regeln, die den Aufbau von Zeichenfolgen beschreiben. Terminalsymbole stehen in Anführungszeichen, | trennt Alternativen, [ … ] ist eine Option, { … } eine Wiederholung (auch keinmal). Die Bedeutung eines Textes legt EBNF nicht fest.

Ob ein Text zu einer Sprache passt, lässt sich mit genauen Regeln prüfen. Für solche Regeln gibt es eine knappe Schreibweise: die Erweiterte Backus-Naur-Form, kurz EBNF. Du lernst, sie zu lesen, anzuwenden und selbst zu schreiben. Du erfährst auch, wo ihre Grenze liegt.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

4 Abschnitte

Ein Text besteht zunächst aus sichtbaren Zeichen wie Buchstaben, Ziffern und Satzzeichen. Diese Zeichen heißen Terminalsymbole. In EBNF werden sie grundsätzlich in Anführungszeichen geschrieben, zum Beispiel "7".

Eine EBNF-Regel ordnet Zeichenfolgen einem Nichtterminalsymbol zu. Das ist ein Name wie Ziffer, der bei der Erzeugung eines Textes durch Terminal- und Nichtterminalsymbole ersetzt wird. Der Name steht links vom Gleichheitszeichen, rechts steht, was er bedeuten soll. Am Ende der Regel steht normalerweise ein Semikolon als Endezeichen. Spitze Klammern um Nichtterminalsymbole sind nicht nötig, weil die Anführungszeichen Verwechslungen ausschließen.

Ein Beispiel mit zwei Regeln:

ZifferAusserNull = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; Ziffer = "0" | ZifferAusserNull ;

Gelesen heißt das: Eine Ziffer ist eine 0 oder eine ZifferAusserNull. Die ZifferAusserNull ist eine der Zahlen von 1 bis 9. Der senkrechte Strich trennt die Alternativen. Es gilt nur die eine oder die andere, nie beide zugleich.

EBNF selbst ist eine formale Metasyntax: eine Schreibweise, mit der man Regeln für Texte aufschreibt.

Definition

Nichtterminalsymbol

Ein Nichtterminalsymbol ist ein Name, der in einer Regel definiert wird und bei der Erzeugung eines Textes durch Folgen von Terminal- und Nichtterminalsymbolen ersetzt wird. Es steht auf der linken Seite der Regel.

ZeichenNameBedeutung
=DefinitionLinks steht das Nichtterminalsymbol, rechts seine Erklärung
,AufzählungDie Bestandteile folgen nacheinander
|AlternativeNur eine der Möglichkeiten gilt
[ … ]OptionDer Inhalt kann, muss aber nicht vorkommen
{ … }Optionale WiederholungBeliebig oft, auch keinmal
( … )GruppierungFasst Elemente zu einer Einheit zusammen
" … "AnführungszeichenUmschließen ein Terminalsymbol
;EndezeichenBeendet die Regel, normalerweise mit einem Semikolon

Teste dich

LeichtWas ist "7" mit Anführungszeichen in einer EBNF-Regel?

Alles auf einen Blick

Erweiterte Backus-Naur-Form

  • Regelaufbau

    Links steht ein Nichtterminalsymbol, nach = die Erklärung, normalerweise endet die Regel mit ;

  • Terminalsymbole

    stehen grundsätzlich in Anführungszeichen

  • Zeichen

    | Alternative, [ … ] Option, { … } Wiederholung (auch keinmal), ( … ) Gruppierung

  • Prüfen

    Den Text Teil für Teil den Symbolen der Regel zuordnen

  • Grenze

    EBNF beschreibt die Syntax, nicht die Semantik und nicht die Zuweisungskompatibilität

Musteraufgabe · Schritt für Schritt

Ausgedacht: Spindcode als Regel schreiben

  1. 1Aufgabe (ausgedachtes Format): Ein Spindcode beginnt mit L oder R. Danach folgt eine Zahl ohne führende 0. Am Ende darf ein ! stehen. Es gelten ZifferAusserNull und Ziffer wie oben.
  2. 2Schritt 1, Alternative für den ersten Buchstaben: ( "L" | "R" )
  3. 3Schritt 2, erste Ziffer nicht 0, danach beliebig viele Ziffern, auch keine: ZifferAusserNull, { Ziffer }
  4. 4Schritt 3, Option für das Ausrufezeichen: [ "!" ]
  5. 5Regel: Spindcode = ( "L" | "R" ), ZifferAusserNull, { Ziffer }, [ "!" ] ;
  6. 6Passt: L7 und R120! (R, dann 1, dann 2 und 0, dann !)
  7. 7Passt nicht: L0 (0 ist keine ZifferAusserNull), 7L (beginnt nicht mit L oder R), L12!! (nur ein ! ist erlaubt)

Fehler finden

Prüfe die Aussagen zur Regel für natürliche Zahlen In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Links vom Gleichheitszeichen steht das , das die Regel definiert. Das Endezeichen am Ende einer Regel ist normalerweise das . Der senkrechte Strich trennt Alternativen. Davon ist erlaubt.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Erweiterte Backus-Naur-Form

LeichtWas bedeutet das Zeichen = in einer EBNF-Regel?
MittelEs gilt Bezeichner = Buchstabe, { ( Buchstabe | Ziffer ) } ; Ein Buchstabe ist ein Großbuchstabe von A bis Z, eine Ziffer eine Zahl von 0 bis 9. Welcher Text passt?
SchwerEs gilt Zuweisung = Bezeichner, ":=", ( Zahl | Bezeichner | String ) ; Welche Frage zu A:="Hallo" kann diese Regel allein nicht beantworten?

Weiterlesen in Informatik