4-10 プログラム言語とマークアップ言語

令和6年6月修了試験  問3

UNIXにおける正規表現[A-Z]+[0-9]*が表現する文字列の集合の要素となるものはどれか。ここで,正規表現は次の規則に従う。

[A-Z]は,大文字の英字1文字を表す。
[0-9]は,数字1文字を表す。
+は,直前の正規表現の1回以上の繰返しであることを表す。
*は,直前の正規表現の0回以上の繰返しであることを表す。

解答 エ

[A-Z]+ ⇒ 大文字の英字で始まり,1文字以上の大文字の英字の繰り返し。
続いて,[0-9]* ⇒ 数字が0文字以上の繰り返し(数字はなくても良い)。
よって,ABCDEF。

令和6年1月修了試験  問3

次のBNFにおいて非終端記号<A>から生成される文字列はどれか。

<R0>::= 0 | 3 | 6 | 9
<R1>::= 1|4 | 7
<R2>::= 2|5 | 8
<A>::=<R0>|<A><R0>|<B><R2>|<C><R1
<B>::=<R1>|<A><R1>|<B><R0>|<C><R2
<C>::=<R2>|<A><R2>|<B><R1>|<C><R0

解答 ア

【頭の準備体操】
BNF
(例)
<R0>::= 0 | 3 | 6 | 9
<R0>は,0 または 3 または 6 または 9 と定義できる。