問題プレビューID: cae0fbdd

問 19

コンパイラで構文解析した結果の表現方法の一つに四つ組形式がある。 (演算子, 被演算子 1, 被演算子 2, 結果) この形式は、被演算子 1 と被演算子 2 に演算子を作用させたものが結果であることを表す。次の一連の四つ組は、どの式を構文解析したものか。ここで、T1,T2,T3T_1, T_2, T_3 は一時変数を表す。

(∗,B,C,T1)(*, B, C, T_1) (/,T1,D,T2)(/, T_1, D, T_2) (+,A,T2,T3)(+, A, T_2, T_3)

解説

四つ組を順に式に直していきます。

  1. (∗,B,C,T1)⇒T1=B×C(*, B, C, T_1) \Rightarrow T_1 = B \times C
  2. (/,T1,D,T2)⇒T2=T1/D=(B×C)/D(/, T_1, D, T_2) \Rightarrow T_2 = T_1 / D = (B \times C) / D
  3. (+,A,T2,T3)⇒T3=A+T2=A+(B×C/D)(+, A, T_2, T_3) \Rightarrow T_3 = A + T_2 = A + (B \times C / D)

したがって、求める式は A+B∗C/DA + B * C / D であり、正解は「ア」です。