平成19年 春期 ソフトウェア開発技術者 午前 問8

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


答え エ


解説

 ア  この定義では2つ目の項に<digit>があるので、先頭の1文字目として数字が来る場合があるので間違いです。
 イ  この定義では2つ目の項に<digit>があるので、先頭の1文字目として数字が来る場合があるので間違いです。
 ウ  この定義では、2文字目以降に英字が来ることがないので間違いです。
 エ  この定義は、最初の項の<letter>で先頭1文字目の英字を定義し、2項目・3項目の<identifier><digit> | <identifier><letter>で2文字目以降が任意の長さの英字・数字を定義している。


キーワード
・BNF

キーワードの解説

戻る 一覧へ 次へ