Backus-Naur Form (BNF, also known as Backus-Naur Notation) is the name of many closely related MetaLanguages for describing the syntax of a ProgrammingLanguage. Long used with many variations, there is now an ISO standard called Extended Backus-Naur Form (EBNF). The InternetEngineeringTaskForce also has its own standard extension to BNF, Augmented Backus-Naur Form (ABNF), which most of its format/protocol standards use to specify syntax in their respective RFCs.
BNF was developed by JohnBackus and/or PeterNaur. Its first major use was to describe the syntax of AlgolSixty.
See: http://cui.unige.ch/db-research/Enseignement/analyseinfo/AboutBNF.html
For a draft copy of the ISO standard for EBNF, see http://www.cl.cam.ac.uk/~mgk25/iso-ebnf.html
To see how far BNF can be extended, checkout ExtremeBnf
A poor thing thing but mine own -- DickBotting