情報に関する理論(全41問中38問目)
No.38解説へ
コンパイラで構文解析した結果の表現方法の一つに四つ組形式がある。
(演算子,被演算子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)
出典:平成18年春期 問37
- 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
広告