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

問題2

ポケットスタディ 基本情報午後・要点整理―即効!7つの知識 (情報処理技術者試験)

あるプログラム言語において,識別子(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”のような最後の文字が英字のデータが許されない。
正しい。
前の問題 次の問題

Copyrithg naruha