次の規則から生成することができる式はどれか。
[規則]
<式> ::= <変数> | (<式> + <式>) | <式> * <式>
<変数> ::= A | B | C | D
ア | A + (B + C) * D |
イ | (A + B) + (C + D) |
ウ | (A + B) * (C + D) |
エ | (A * B) + (C * D) |
答え ウ
【解説】
規則の“<式> ::= <変数> | (<式> + <式>) | <式> * <式>”の『(<式> + <式>)』から、加算(足し算)の式は必ず括弧で括られる。また、『<式> * <式>』から乗算(掛け算)の式は括弧で括られないことがわかるので、選択肢の式でこれを満たしているのはウの(A + B) * (C + D)のみである。
【キーワード】
・BNF