本文へ移動
合格ノート.
基本情報技術者試験
基本情報技術者試験用語一覧を見る
テクノロジ

BNFとは

読み方:バッカスナウアきほう

ひとことで言うと:言語の構文を非終端記号・終端記号・生成規則で表すメタ言語。

意味をわかりやすく解説

BNF(Backus-Naur Form)は、プログラミング言語などの構文を生成規則で表すためのメタ言語です。非終端記号を、終端記号や別の非終端記号の並びとして定義します。

一般に ::= は「左辺を右辺で定義する」、| は「どちらか」を表します。規則を繰り返し展開することで、どの文字列が文法に従うかを判断できます。

具体例

<digit> ::= 0 | 1 | 2 | ... | 9 と書けば、<digit> が0〜9のどれか1文字であることを表せます。

似た用語との違い

正規表現

正規表現は文字列パターンを表す記法です。BNFは言語の階層的な文法規則を表すのに使われます。

構文図式

構文図式も文法を表す方法ですが、BNFは生成規則を文字で記述します。

覚え方

::= は「定義」、| は「または」。左辺の非終端記号を右辺へ展開します。

基本情報技術者試験の試験ポイント

生成規則を読み、与えられた文字列が生成可能か判断する問題に備えます。再帰的定義にも注意します。

CHECK QUESTION

<sign> ::= + | - と定義されているとき、<sign> が生成できる文字は何ですか。

答えを見る

+ または - です。| は選択肢の「または」を表します。

この説明は分かりやすかったですか?

基本情報技術者試験を勉強中ですか?

この用語を含む重要用語を、単語帳や4択テストで学習できます。