Benutzer-Werkzeuge

Webseiten-Werkzeuge


bnf

BNF (Backus Naur Form) ermöglicht eine präzise, maschinenlesbare und formale Beschreibung von Syntaxregeln. Sie hilft dabei, Ambiguitäten zu vermeiden und die Implementierung von Sprachverarbeitern zu vereinfachen. BNF gehört zur Familie der formalen Grammatiken und basiert auf den Konzepten der kontextfreien Grammatik, wie sie von Noam Chomsky beschrieben wurden.

BNF beschreibt Regeln, wie gültige Sätze (z. B. Programmcode oder Datenstrukturen) aufgebaut sind. Sie besteht aus:

  • Nicht-Terminalsymbolen: Platzhalter für Sprachkonstrukte (z. B. <expression>, <statement>).
  • Terminalsymbolen: Die tatsächlichen Zeichen oder Wörter der Sprache (z. B. +, if, 42).
  • Produktionsregeln: Regeln, die definieren, wie Nicht-Terminale durch Kombinationen von Terminalen und anderen Nicht-Terminalen ersetzt werden können.
<expression> ::= <term> | <expression> "+" <term>
<term>       ::= <factor> | <term> "*" <factor>
<factor>     ::= "(" <expression> ")" | <number>
<number>     ::= "0" | "1" | "2" | ... | "9"
  • ::= bedeutet „wird definiert als“.
  • Das Pipe-Symbol | steht für eine Alternative.
  • Die spitzen Klammern <> kennzeichnen Nicht-Terminale.
  • Terminale sind direkt verwendbare Zeichen oder Wörter.

Erweiterungen

NameBeschreibung
EBNFErweiterte BNF mit optionalen Elementen ([]), Wiederholungen ({}) und Gruppierungen 1)
ABNFAugmented BNF, häufig in Netzwerkprotokollen wie HTTP oder SIP verwendet
bnf.txt · Zuletzt geändert: 2025/10/09 08:50 von jango