2009年11月24日火曜日

EBNF 【拡張BNF】

EBNFとは、コンピュータが扱う言語の文法を定義する際に用いられるメタ言語(言語を記述するための言語)の一つでBNF(BN記法)を拡張したもの。現在では、コンピュータ言語の定義は単純なBNFではなくEBNFで記述されるのが一般的である。

 BNFは1959~1960年にアメリカ人のJohn Backus氏とデンマーク人のPeter Naur氏が考案した記法で、ALGOL60という言語の定義に初めて使われた。BNFは構文を形式的に定義するための言語で、意味を規定するものではないため、BNFだけで言語のすべてを定義することはできない。

 BNFには拡張が加えられてEBNFとなったが、EBNFには変種や独自拡張が多く何種類ものEBNFが存在する。

 EBNFはプログラミング言語の定義だけでなく、プロトコルやデータ構造、マークアップ言語の定義などにも使われる。マークアップ言語として最も普及しているXMLも、その構文はEBNFの一種で規定されている。

0 件のコメント:

コメントを投稿