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

問題4

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

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

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

<letter> | <digit> | <identifier><letter> | <identifier><digit>
<letter> | <digit> | <letter><identifier> | <identifier><digit>
<letter> | <identifier><digit>
<letter> | <identifier><digit> | <identifier><letter>

解答・解説を見る

解答:エ

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

これより

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

事が分かる。

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

Copyrithg naruha