2009年11月24日火曜日

BNF 【BN記法】

BNFとは、コンピュータが扱う言語の文法を定義する際に用いられるメタ言語(言語を記述するための言語)の一つ。コンピュータ言語の定義はBNFで記述されるのが一般的である。バッカス記法、バッカス・ナウア記法などとも呼ばれる。

 BNFは構文を形式的に定義するための言語で、意味を規定するものではないため、BNFだけで言語のすべてを定義することはできない。プログラミング言語の定義だけでなく、プロトコルやデータ構造、マークアップ言語の定義などにも使われる。マークアップ言語として最も普及しているXMLも、その構文はBNF(正確には拡張BNF)で規定されている。

 BNFは1959年にアメリカ人のJohn Backus氏が提案し、デンマーク人のPeter Naur氏が修正を加え、1960年に数値計算用プログラミング言語ALGOL60の定義に初めて採用された。現在ではオリジナルのBNFに拡張が加えられた拡張BNF(EBNF)が使われることが多いが、EBNFには変種や独自拡張が多く、どのBNFを使用しているかに注意を払う必要がある。

0 件のコメント:

コメントを投稿