基本情報暗記無料で始める

BNFとは?びーえぬえふ

BNFとは、プログラミング言語などの文法規則を形式的に定義するための記法。「::=」で「〜と定義する」を表し、規則の中でその規則自身を再び使う(再帰的に組み合わせる)ことで、言語の構文を厳密に表現する。

最終更新:2026-10-10

試験情報

基本情報技術者試験の過去問では1回出題されています。

基本情報技術者試験の頻出用語/テクノロジ系

別名:バッカス・ナウア記法、BNF(バッカス・ナウア記法)、バッカス、ナウア記法

この語が出る過去問を解く →

背景

言語の文法を日本語の文章で説明すると、読む人によって解釈が分かれ、言語を作る側と使う側で食い違いが起きる。規則を記号で厳密に書く記法があれば、ある文が正しいかを機械的に判定でき、言語の仕様を一通りにしか読めない形で伝えられる。その記法がBNFである。

具体例

<数字> ::= 0|1|2|...|9 のように定義しておけば、「数字とは0から9のいずれか」という規則を曖昧さなく表現できる。プログラミング言語の仕様書などで使われる。

試験での引っ掛け

文法(書き方の規則)を定義する記法であり、プログラムの処理手順や動作を表すものではない。「::=」は「等しい」ではなく「〜と定義する」の意味。流れ図やUMLと役割を取り違えやすい。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では1回出題
  • 分野:テクノロジ系
  • 文法(書き方の規則)を定義する記法であり、プログラムの処理手順や動作を表すものではない。