【ビーエヌエフきほう】
BNF記法 とは?
公開:
💡 プログラミング言語の「レシピの書き方」を統一したフォーマット
BNF記法って何に使うの?
どんな書き方をするの?
たとえば「<digit> ::= 0 | 1 | 2 | ... | 9」のように書くよ。< >で囲んだものが非終端記号、::= は「〜と定義する」、| は「または」という意味だね。
なるほど、言語の仕様書に載っているあの記法なんだね!
EBNFっていうのも聞いたことがあるけど、何が違うの?
EBNFは拡張版で、繰り返しを { } で、省略可能な部分を [ ] で書けるようにしたものだよ。BNFだと繰り返しを再帰で書く必要があるけど、EBNFなら直感的に書けるんだ。
BNF記法を理解すると何が嬉しいの?
📖 おまけ:英語の意味
「Backus-Naur Form」 = バッカス・ナウア記法
💬 考案者のJohn BackusとPeter Naurの名前から付けられた記法だよ