平成18年春期試験問題 午前問37
問37解説へ
コンパイラで構文解析した結果の表現方法の一つに四つ組形式がある。
(演算子,被演算子1,被演算子2,結果)
この形式は,被演算子1と被演算子2に演算子を作用させたものが結果であることを表す。次の一連の四つ組は,どの式を構文解析した結果か。ここで,T1,T2,T3は一時変数を表す。
(演算子,被演算子1,被演算子2,結果)
この形式は,被演算子1と被演算子2に演算子を作用させたものが結果であることを表す。次の一連の四つ組は,どの式を構文解析した結果か。ここで,T1,T2,T3は一時変数を表す。
(*,B,C,T1)
(/,T1,D,T2)
(+,A,T2,T3)
(/,T1,D,T2)
(+,A,T2,T3)
- A+B*C/D
- A+B*C/T2
- B*C+A/D
- B*C+T1/D
広告
解説
3つ目の式には被演算子としてT1とT2が使われていて、2つ目の式には被演算子としてT1が使われているので、上の式から順に展開していくことになります。
- (*,B,C,T1)
- T1は、"B"と"C"を"*"で演算した結果
⇒ T1 = B*C - (/,T1,D,T2)
- T1 = B*C なので、T2は、"B*C"と"D"を"/"で演算した結果
⇒ T2 = B*C / D - (+,A,T2,T3)
- T2 = B*C/D なので、T3は、"A"と"B*C/D"を"+"で演算した結果
⇒ T3 = A+B*C/D
広告