修了試験 2014-06-22実施分 基本情報技術者試験 問19
コンパイラで構文解析した結果の表現方法の一つに四つ組形式がある。 (演算子,被演算子1,被演算子2,結果) この形式は,被演算子1と被演算子2に演算子を作用させたものが結果であることを表す。 次の一連の四つ組は,どの式を構文解析した結果か。 ここで,T_1,T_2,T_3は一時変数を表す。 (*,B,C,T_1) (/,T_1,D,T_2) (+,A,T_2,T_3)
正答1
解説
正解は1です。 四つ組は、上から順に実行される計算手順を表しています。 各行の結果を次の行に代入していくと、元の式を復元できます。 【計算】 1行目の(*,B,C,T₁)は、T₁=B*Cを表します。 2行目の(/,T₁,D,T₂)は、T₂=T₁/D=B*C/Dを表します。 3行目の(+,A,T₂,T₃)は、T₃=A+T₂=A+B*C/Dを表します。 【選択肢別解説】 1:○ 復元した式A+B*C/Dと一致します。 乗除算が先、加算が後という演算順序にも合っています。 2:× T₂は解析の途中で作られる一時変数で、元の式には現れません。 3:× B*C+A/Dなら、AをDで割る四つ組が作られるはずです。 実際にはT₁(B*C)をDで割っているので一致しません。 4:× T₁は一時変数で、元の式には含まれません。 また、T₁/Dを加算する構造も四つ組と合いません。 【ポイント】 四つ組は中間コードの表現方法の一つです。 結果を順に代入していけば元の式に戻せます。まとめて解く
修了試験 2014-06-22実施分を通しで解く(80問)→