BNF /B-N-F/ N. 1. [techspeak] Acronym For `Backus Normal Form' (often Incorrectly Expanded As `Backus-Naur Form')

HomeFortune CookiesJargon File

BNF /B-N-F/ n.

1. [techspeak] Acronym for `Backus
Normal Form' (often incorrectly expanded as `Backus-Naur
Form'), a metasyntactic notation used to specify the syntax of
programming languages, command sets, and the like. Widely used for
language descriptions but seldom documented anywhere, so that it
must usually be learned by osmosis from other hackers. Consider
this BNF for a U.S. postal address:

<postal-address> ::= <name-part> <street-address> <zip-part>

<personal-part> ::= <name> | <initial> "."

<name-part> ::= <personal-part> <last-name> [<jr-part>] <EOL>
| <personal-part> <name-part>

<street-address> ::= [<apt>] <house-num> <street-name> <EOL>

<zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>


This translates into English as: "A postal-address consists of a
name-part, followed by a street-address part, followed by a
zip-code part. A personal-part consists of either a first name or
an initial followed by a dot. A name-part consists of either: a
personal-part followed by a last name followed by an optional
`jr-part' (Jr., Sr., or dynastic number) and end-of-line, or a
personal part followed by a name part (this rule illustrates the
use of recursion in BNFs, covering the case of people who use
multiple first and middle names and/or initials). A street address
consists of an optional apartment specifier, followed by a street
number, followed by a street name. A zip-part consists of a
town-name, followed by a comma, followed by a state code, followed
by a ZIP-code followed by an end-of-line." Note that many things
(such as the format of a personal-part, apartment specifier, or
ZIP-code) are left unspecified. These are presumed to be obvious
from context or detailed somewhere nearby. See also parse.
2. Any of a number of variants and extensions of BNF proper,
possibly containing some or all of the regexp wildcards such
as * or +. In fact the example above isn't the pure
form invented for the Algol-60 report; it uses [], which was
introduced a few years later in IBM's PL/I definition but is now
universally recognized. 3. In science-fiction fandom, a
`Big-Name Fan' (someone famous or notorious). Years ago a fan
started handing out black-on-green BNF buttons at SF conventions;
this confused the hacker contingent terribly.

Related: