必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 高度共通 午前1
  3. 平成23年度特別問題一覧
  4. 平成23年度特別問題2-解答・解説-分析

平成23年度特別問題

問題2

あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり,それ以降に任意個の英数字が続く文字列である。これを BNF で定義したとき,【 a 】 に入るものはどれか。

  <digit>::=0|1|2|3|4|5|6|7|8|9
  <leter>::=A|B|C|…|X|Y|Z|a|b|c|…|x|y|z
  <identifier>::= 【 a 】
<leter>|<digit>|<identifier><leter>|<identifier><digit>
<leter>|<digit>|<leter><identifier>|<identifier><digit>
<leter>|<identifier><digit>
<leter>|<identifier><digit>|<identifier><leter>

あるプログラム言語において,識別子(identifier)は,先頭が英字で始まり,それ以降に任意個の英数字が続く文字列である。これを BNF で定義したとき,【 a 】 に入るものはどれか。

  <digit>::=0|1|2|3|4|5|6|7|8|9
  <leter>::=A|B|C|…|X|Y|Z|a|b|c|…|x|y|z
  <identifier>::= 【 a 】
<leter>|<digit>|<identifier><leter>|<identifier><digit>
<leter>|<digit>|<leter><identifier>|<identifier><digit>
<leter>|<identifier><digit>
<leter>|<identifier><digit>|<identifier><leter>

解答:エ

<解説>

BNF(バッカス・ナウア記法)とは、文脈自由文法を定義するのに用いられるメタ言語のことで、一般にBNFやBN記法と略される。
BNFでは、「<identifier>::=」はidentifier を定義するという意味で、「|」は、「または」を意味する。

これより

  1. <digit>は0~9のいずれか1文字である。
  2. <leter>はA~Zのいずれか1文字である。

事が分かる。

× "1AB"のような先頭が数字の文字列が許されてしまう。
× "1AB"のような先頭が数字の文字列が許されてしまう。
× ”AB123XYZ”のような最後の文字が英字のデータが許されない。
正しい。