BNFとは
読めるように勉強。
やってくうちにパズルみたいで、ちょっとおもしろくなってきた!
BNFとは
Backus Naur Form バッカス・ナウア記法
ジョン・バッカスさんとピーター・ナウアさんが考案。
…名前のままでした。
コンピュータが扱う言語の文法を定義する際に用いられるメタ言語の一つ。
BNFを拡張(Extended)したEBNFが現在一般的。
基本
- 生成規則
- 「左辺 ::= 右辺」
- 非終端記号
- 「<」と「>」で囲まれたも
- 終端記号
- 「0」や「1」のように、新しい記号を生成しないもの。終端記号は実際のソースコードで使用できる記号。
<hoge> ::= <hogehoge> hoge は hogehoge である
例
<数字> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" <非ゼロ数字> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" <符号なし整数> ::= <非ゼロ数字> | <符号なし整数><数字> 拡張 <符号なし整数> ::= <非ゼロ数字>{<数字>}
よく見る文字の意味
表記 | 意味 |
---|---|
| | 選択(どれか) |
[] | オプション(あってもなくても) |
{} | 0回以上の繰り返し) |
() | グループ化(単一の要素とする) |