Backus–Naur Form

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 context-free 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 1920-1960).

Meanwhile, string rewriting rules as formal, abstract systems were introduced and studied by mathematicians such as Axel Thue (in 1914), Emil Post (1920s-1940s) 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 context-free 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