平成23年度 秋期 基本情報技術者試験 午前 問4
テクノロジ/基礎理論次の規則から生成することができる式はどれか。 〔規則〕 <式> ::= <変数> | (<式>+<式>) | <式>*<式> <変数> ::= A | B | C | D
出典:平成23年度 秋期 基本情報技術者試験 午前 問4
- アA+(B+C)*D
- イ(A+B)+(C+D)
- ウ(A+B)*(C+D)
- エ(A*B)+(C*D)
正解:ウ
解説
規則では<式>は<変数>単独か,(<式>+<式>)というかっこ付きの和,または<式>*<式>という積のいずれかから生成されます。積を作る場合は必ず両辺が<式>であればよく,かっこは不要です。かっこが必要なのは和(+)のときだけです。この規則に従うと,(A+B)*(C+D)は,(A+B)というかっこ付きの和と(C+D)というかっこ付きの和を,かっこなしの*で結合した形として正しく生成できます。
選択肢ごとの解説
- ア誤り。B+Cの部分はかっこの中で和になっていますが,全体としてA+(...)*Dの形は,規則の(<式>+<式>)の右側の<式>が(B+C)*Dとなり生成でき正しそうに見えますが,実際にはA+(B+C)*Dという最上位の+にかっこが付いていないため<式>::=(<式>+<式>)の形になっておらず生成できません。
- イ誤り。(A+B)+(C+D)の最上位の+は,規則上(<式>+<式>)としてかっこで囲む必要がありますが,この式全体にはかっこが付いていないため規則から生成できません。
- ウ正しい。(A+B)と(C+D)はそれぞれ規則の(<式>+<式>)から作れる<式>であり,それらを<式>*<式>で結合した(A+B)*(C+D)は規則どおりに生成できます。
- エ誤り。(A*B)+(C*D)の最上位の+には規則上かっこが必要ですが,全体を囲むかっこがなく,規則から生成できません。