
related topics 
{math, number, function} 
{language, word, form} 
{system, computer, user} 
{work, book, publish} 
{household, population, family} 

In computer science, BNF (Backus Normal Form or Backus–Naur Form) is a notation technique for contextfree grammars, often used to describe the syntax of languages used in computing, such as computer programming languages, document formats, instruction sets and communication protocols. It is applied wherever exact descriptions of languages are needed, for instance, in official language specifications, in manuals, and in textbooks on programming language theory.
Many extensions and variants of the original notation are used; some are exactly defined, including Extended Backus–Naur Form (EBNF) and Augmented Backus–Naur Form (ABNF).
Contents
History
The idea of describing the structure of language with rewriting rules can be traced back to at least the work of Pāṇini (about the 4th century BC), who used it in his description of Sanskrit word structure  hence, some suggest to rename BNF to Panini–Backus Form.^{[1]}. American linguists such as Leonard Bloomfield and Zellig Harris took this idea a step further by attempting to formalize language and its study in terms of formal definitions and procedures (around 19201960).
Meanwhile, string rewriting rules as formal, abstract systems were introduced and studied by mathematicians such as Axel Thue (in 1914), Emil Post (1920s1940s) and Alan Turing (1936). Noam Chomsky, teaching linguistics to students of information theory at MIT, combined linguistics and mathematics, by taking what is essentially Thue's formalism as the basis for the description of the syntax of natural language; he also introduced a clear distinction between generative rules (those of contextfree grammars) and transformation rules (1956).^{[2]}^{[3]}
Full article ▸


related documents 
Prefix code 
Unary numeral system 
Sexagesimal 
History of large numbers 
Snake lemma 
Equality (mathematics) 
Concatenation 
Bucket sort 
Bogosort 
Generating set of a group 
Removable singularity 
Kludge 
Graph of a function 
General number field sieve 
Boundary (topology) 
Wreath product 
Hilbert's fifth problem 
Commutative diagram 
Nilpotent group 
Pseudometric space 
Degenerate distribution 
Catalan's conjecture 
Constant term 
Bernoulli process 
Zeta distribution 
Matrix addition 
Most significant bit 
Iteration 
Subtraction 
Infinite set 
