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. , ). * 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. ::= | "+" ::= | "*" ::= "(" ")" | ::= "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 ^Name^Beschreibung^ |EBNF|Erweiterte BNF mit optionalen Elementen ([]), Wiederholungen ({}) und Gruppierungen (())| |ABNF|Augmented BNF, häufig in Netzwerkprotokollen wie HTTP oder SIP verwendet| =====Links===== * [[https://de.wikipedia.org/wiki/Backus-Naur-Form|BNF Wikipedia]] * [[https://www.youtube.com/watch?v=pz3UgkyhgXk|TSCoding Youtube]]