Extended Backus-Naur form
|
The Extended Backus-Naur form (EBNF) is any variation on the basic Backus-Naur form (BNF) metasyntax notation with (some of) the following additional constructs:
- square brackets "[..]" surrounding optional items,
- suffix "*" for Kleene closure (a sequence of zero or more of an item), suffix "+" for one or more of an item, suffix "?" for zero or one of an item, curly brackets enclosing a list of alternatives,
- super/subscripts indicating between n and m occurrences.
When Niklaus Wirth was developing Pascal, he simplified Backus-Naur Form to create EBNF.
All these constructs can be expressed in plain BNF using extra productions and have been added for readability and succinctness.
There is an International standard (ISO 14977) that defines an EBNF. A draft is freely available from http://www.cl.cam.ac.uk/~mgk25/iso-ebnf.html. This draft document has some mistakes in it. Throughout the text, as well as in the comments of the examples, `meta-identifiers' are `written as one or more words joined together by hyphens' (as stated in section 4). On the other hand, all examples (except the comments) use spaces to separate several words.
The W3C used a different EBNF (http://www.w3c.org/TR/REC-xml#sec-notation) to specify the XML syntax.
See also
References
- This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
External links
- Article "BNF and EBNF: What are they and how do they work? (http://www.garshol.priv.no/download/text/bnf.html)" by Lars Marius Garshol
- Article "The Naming of Parts (http://xml.com/pub/a/2001/07/25/namingparts.html)" by John E. Simpson
- ISO/IEC 14977 : 1996(E) (http://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf)
- Citations from CiteSeer (http://citeseer.ist.psu.edu/cis?q=Extended+Backus+Naur+Form)de:Erweiterte Backus-Naur-Form