本文へスキップ

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


Since 2016.4.19

平成23年度 技術士第一次試験問題【専門科目】

W−4

次のようなBNFで定義された文法を考える。

 <S> ::= <A><B>
 <A> ::= a | a<A>
 <B> ::= b | b<B> | c | c<B>

ここで、< > で囲まれたものは非終端記号、英小文字1文字は終端記号とし、開始記号を <S> とする。この文法により生成される文を正規表現で表したものはどれか。ただし、正規表現において * は直前のものの0回以上の繰り返しを、 | は選択を表すものとする。

@ a*b*c

A a*(b | c)*

B aa*(bb*|cc*)

C aa*(bc)(bc)*

D aa*(b | c)(b | c)*


正解

D


解説

@ 問題の定義では、必ず aが1度現れなければならないが、a*b*c と定義すると a が1度も現れない表記ができる。

A @と同様である。

B 問題の定義では、abcの表現が可能であるが、aa*(bb*|cc*) は、abcの表現ができない。

C 問題の定義では、abbの表現が可能であるが、aa*(bc)(bc)* は、abbの表現ができない。

D 正しい。

W−3 目次 W−5