平成23年度 技術士第一次試験問題【専門科目】
【16】情報工学部門
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
@BNFでは、aは必ず1度現れなければならないが、
 a*b*cでは a 1度も現れない表記ができる。
A@と同様である。
BBNFでは abcの表現が可能であるが、
 aa*(bb*|cc*) はabcの表現ができない。
CBNFでは abbの表現が可能であるが、
 aa*(bc)(bc)* はabbの表現ができない。
D正しい。

EXCELのマクロのご相談なら ファーストマクロ 



W−3 目次 W−5
ファーストマクロ TOPページ