情報処理のWeb教科書―IPA情報処理試験対策のお供に!
トップ 情報処理の知識体系 テクノロジ系 基礎理論 情報に関する理論 形式言語 BNF
BNFとはどのような記法かをまとめています。情報処理のBNFとはどんなものか理解したい、意味はもちろん、記法例や問題つきで解説されていると助かるという方におすすめのコンテンツです。
プログラムの形態的な構造を構文といい、構文を規定する規則を構文規則といいます。 代表的な構文記述法として、BNF記法があります。
以下は目次リンクになります。
BNFとは、Backus Nuaur Form(バッカス・ナウア記法)の略で、プログラム言語の構文などを定義する表現方法です。
BNFでは、次のように記述します。
「::=」は「左辺を右辺のように定義する」、「|」は「または」という意味です。
BNFでは以下のような用語が登場します。BNF関連用語の意味を補足していきます。
これ以上分解できない要素で、変数や文字列定数のような記号です。
<>で示された要素で「::=」の右辺に現れ、されに分解できる記号です。
「::=」の左辺を開始記号といいます。
BNFで先頭が<英字>で始まり、それ以降に0個以上(任意個)の<数字>または<英字>(英数字)によって構成される(が続く)<識別子>(文字列)とプログラムの識別子の構文を定義します。
<英字>::=0|1|2|3|4|5|6|7|8|9
<英字>::=A|B|C|・・・|X|Y|Z|a|b|c|・・・|x|y|z
まず初めに<英字>で始まるので、その部分は次のように表現できます。
<識別子>::=<英字>
次に0個以上の<数字>または<英字>によって構成される部分は、続くのが0個の場合<識別子>::=<英字>。 続くのが1個の場合は<識別子>::=<英字><数字>|<英字><英字>で表現できます。 ここまでを整理すると次のパターンがように表現できます。
<識別子>::=<英字>
<識別子>::=<英字><数字>|<英字><英字>
そして、2個以上続く場合は、<数字>または<英字>は1文字なので再帰的に用いて表現します。つまり、<識別子>::=<識別子><数字>|<識別子><英字>のように表現します。 これは1個以上の<識別子>::=<英字><数字>|<英字><英字>も表現できるので、ここまでを整理すると次のパターンがように表現できます。
<識別子>::=<英字>
<識別子>::=<識別子><数字>|<識別子><英字>
以上より、識別子の定義は次のように表現できます。
<識別子>::=<英字>|<識別子><数字>|<識別子><英字>
以下ではBNFに関連したIPA情報処理試験の過去問とその解説をまとめています。
BNFに関連した参考書籍です。目次や参考いたしました内容をまとめています。
情報に関する理論として、形式言語と有限オートマトンの状態遷移図などの解説や演習問題をまとめています。
情報処理試験対策用のサイトオリジナル教科書をテーマにテクノロジ系の知識をまとめています。
更新履歴になります。
Copyright (C) 2010-2023 情報処理のWeb教科書. All Rights Reserved. Loarding…