平成30年 秋期 応用情報技術者 午前 問4

次に示す記述は、BNFで表現されたあるプログラム言語の構文の一部である。
<パラメータ指定>として、正しいものはどれか。

 <パラメータ指定> ::= <パラメータ> | (<パラメータ指定>, <パラメータ>)
 <パラメータ> ::= <英字> | <パラメータ><英字>
 <英字> ::= a | b | c | d | e | f | g | h | i

 ア  ((abc, def), ghi)
 イ  ((abc, def))
 ウ  (abc, (def))
 エ  (abc)


答え ア


解説
<パラメータ>について見ると
 <パラメータ> ::= <英字> | <パラメータ><英字>
なので、<パラメータ>は“英字列”である。
次に、<パラメータ指定>は
 <パラメータ指定> ::= <パラメータ> | (<パラメータ指定>, <パラメータ>)
なので、<パラメータ指定>は
 英字列
 (英字列, 英字列)
 ((英字列, 英字列), 英字列)
 (((英字列, 英字列), 英字列), 英字列)
 …
である。
したがって、選択肢でこれに一致するのは((abc, def), ghi)(ア)のである。

 イ  <パラメータ指定>は“(英字列, (英字列))”にはならない。
 ウ  <パラメータ指定>は“((英字列, 英字列))”にはならない。
 エ  <パラメータ指定>は“(英字列)”にはならない。


キーワード
・BNF

キーワードの解説

戻る 一覧へ 次へ