Erweiterte Backus-Naur-Form (EBNF)

Bei der formalen Spezifikation von Sprachen mit Hilfe der BNF fällt auf, dass häufig ähnliche Konstruktionen auftreten, wie zum Beispiel das optionale Vorkommen von Zeichen oder deren optionale Wiederholung. Um solche Konstruktionen einfacher notieren zu können, wurde die BNF um spezielle Konstrukte zur sogenannten EBNF erweitert.

  • Das optionale Vorkommen eines Teilwortes wird durch eckige Klammern beschrieben. Zum Beispiel können wir die Regeln für das Nichtterminalsymbol Val mit Hilfe eckiger Klammern wie folgt vereinfachen: Val ::= ['-'] Num
  • Die optionale Wiederholung eines Teilwortes wird durch geschweifte Klammern beschrieben. Zum Beispiel können wir die Regeln für das Nichtterminalsymbol Exps mit Hilfe geschweifter Klammern wie folgt vereinfachen: Exps ::= Exp {',' Exp}
  • Schließlich können wir in EBNF den senkrechten Strich für Alternativen auch innerhalb von durch Klammerung kenntlich gemachten Gruppierungen verwenden. Zum Beispiel ließe sich das optionale Vorkommen eines Zeichens a statt als ['a'] auch als ('a' | '') schreiben.

Durch die genannten Erweiterungen wird die Ausdruckstärke nicht verändert: In EBNF lassen sich genau die selben Sprachen beschreiben, die sich auch durch BNF beschreiben lassen.1


  1. Die Theoretische Informatik unterscheidet Sprachklassen danach, durch welche Formalismen sie beschrieben werden können. Verschiedene Sprachklassen und zugehörige Mechanismen zu deren Beschreibung werden in der nach Noam Chomsky benannten Chomsky-Hierarchie nach Ausdrucksstärke geordnet. ↩︎