Summary of the ISO EBNF Notation

The Backus-Naur Form (BNF) is a convenient means for writing down the grammar of a context-free language. The Extended Backus-Naur Form (EBNF) adds the regular expression syntax of regular languages to the BNF notatation, in order to allow very compact specifications. Context-free grammars are frequently used to specify programming languages, operating system commands, and other types of computer input. Numerous variants of BNF and EBNF have been introduced and practically every compiler-design textbook and programming-language standard defines its own version. While a BNF notation can be specified in a few sentences, the proper definition of EBNF requires a little bit more explanation, and therefore frequently only BNF is used although the result is much less readable.

The ISO 14977 standard finally defines a common uniform precise EBNF syntaxt, such that not every textbook and standard has to define its own BNF flavour and can easily reference a comprehensive standard EBNF form. For more information, have a look at a final draft version (SC22/N2249) of the standard, which the project editor has fortunately made available, such that readers who encounter the ISO EBNF in the literature can make themself more easily familiar with the notation.


The official ISO/IEC 14977:1996(E) document is unfortunately not freely available online and interested people will have to order a paper copy from

International Organization for Standardization
Case postale 56
1, rue de Varembé
CH-1211 Genève 20
Switzerland

phone: +41 22 749 01 11
fax: +41 22 733 34 30
email: sales@isocs.iso.ch