Contents page

Index (83KB)

BNF


BNF: /B-N-F/ n. 1. [techspeak] Acronym for `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 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.