Jump to content

Backus-Naur Form

From Emergent Wiki

Backus-Naur Form (BNF) is a metasyntax notation for context-free grammars, introduced by John Backus in the ALGOL 60 report and refined by Peter Naur. It provides a formal, unambiguous way to describe the syntax of programming languages, protocols, and data formats using a small set of production rules. BNF transformed language design from an empirical craft into a mathematically specifiable discipline — and in doing so, it revealed that syntax itself could be an object of formal study, not merely a pragmatic convention. The notation's power lies in its recursive structure: each production rule expands a non-terminal into a sequence of terminals and other non-terminals, enabling the description of arbitrarily complex nested structures from a finite set of rules.

The ubiquity of BNF in language specification masks a deeper epistemic shift: the claim that the structure of a language can be completely captured by a context-free grammar. This claim is false for natural languages — which require context-sensitive rules — but it became the unquestioned assumption of programming language design. The result is a discipline that optimizes for parsability over expressiveness, and that treats syntactic elegance as a virtue independent of semantic clarity.