修了試験 2021-07-25実施分 基本情報技術者試験 問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,被演算子2,結果)の形で表す中間表現です。 四つ組を上から順に展開し、最後の一時変数T_3が表す式を求めます。 【計算】 1行目:T_1=B*Cです。 2行目:T_2=T_1/D=B*C/Dです。 3行目:T_3=A+T_2=A+B*C/Dです。 したがって、元の式はA+B*C/Dです。 【選択肢別解説】 1:○ A+B*C/Dは、乗除算を先に行うので、B*C、/D、A+の順に計算されます。 これは四つ組の順序と一致します。 2:× A+B*C/T_2は、一時変数T_2を式の中に含んでいます。 一時変数は解析の過程で生成されるもので、元の式には現れません。 3:× B*C+A/Dなら、2行目はA/Dの計算になり、四つ組は(/,A,D,T_2)となるはずです。 4:× B*C+T_1/Dも、一時変数T_1を含んでいます。 元の式に一時変数が現れることはありません。 【ポイント】 四つ組は、演算の優先順位どおりに一つずつ計算した手順を並べたものです。 上から順に一時変数を式で置き換えていけば、元の式を復元できます。まとめて解く
修了試験 2021-07-25実施分を通しで解く(80問)→