本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

平成23年度 春期 高度情報技術者試験問題と解説

問2

あるプログラム言語において、識別子 (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>


正解


解説

ア <letter> | <digit> は、文字列で始まるか、数字で始まることを許す定義であり、誤りである。

イ アと同様。

ウ 先頭は英字で始まるが、その後は
 <identifier><digit><identifier><digit><digit>
 <identifier><digit><digit><digit> → ・・・
 となり、先頭以外は数字になる。

エ 正しい。

問1 目次 問3