EBNF 【Extended Backus Naur Form】 拡張BNF / 拡張バッカス・ナウア記法 / Extended BNF
概要
EBNF(Extended Backus Naur Form)とは、メタ言語の「BNF」に繰り返しや省略可能などの記法を追加したもの。現在では単純なBNFよりもEBNFを用いるほうが一般的となっている。ISO/IEC 14977などの標準規格が定義されているが、様々な亜種や独自拡張も多い。元になった「BNF」(バッカス・ナウア記法)は言語仕様やデータ形式などの定義を記述するためのメタ言語の一種で、対象言語内で意味を持つ記号列と、それがどのような内容を取りうるのかを「<記号>::=定義」という構文を用いて列挙していく。
EBNFはこれを拡張して記法を追加したもので、単純なBNFでは表現が煩雑だったり不可能な点が改良されている。例えば、省略可能な要素を角括弧([])で括る、省略可能かつ繰り返し可能(0回以上の繰り返し)な要素を中括弧({})で括る、BNF文書外で定義されるべき部分を疑問符(?)で括るといったルールが追加されている。他にも正規表現の記法(*や+による繰り返し表記)を取り込んだEBNF方言もある。
また、BNFでは記号列を山括弧で括り、対象言語の表記は何も括らなかったが、EBNFでは記号列は何も括らず、言語の表記を引用符("または')で括るよう変更された。規則は一行に一つ(改行文字によって区切られる)とされていた点も、終端にセミコロン(;)を用いるなどして改行と区切りが分離された。
(2024.8.21更新)