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:
<expression> ::= <term> | <expression> "+" <term> <term> ::= <factor> | <term> "*" <factor> <factor> ::= "(" <expression> ")" | <number> <number> ::= "0" | "1" | "2" | ... | "9"
Erweiterungen
Name | Beschreibung |
---|---|
EBNF | Erweiterte BNF mit optionalen Elementen ([]), Wiederholungen ({}) und Gruppierungen 1) |
ABNF | Augmented BNF, häufig in Netzwerkprotokollen wie HTTP oder SIP verwendet |