平成27年度 秋期 基本情報技術者試験 午前 問19
テクノロジ/ソフトウェアコンパイラで構文解析した結果の表現方法の一つに四つ組形式がある。 (演算子,被演算子1,被演算子2,結果) この形式は,被演算子1と被演算子2に演算子を作用させたものが結果であることを表す。次の一連の四つ組は,どの式を構文解析したものか。ここで,T1,T2,T3は一時変数を表す。 (*, B, C, T1) (/, T1, D, T2) (+, A, T2, T3)
出典:平成27年度 秋期 基本情報技術者試験 午前 問19
- アA+B*C/D
- イA+B*C/T2
- ウB*C+A/D
- エB*C+T1/D
正解:ア
解説
四つ組は演算の実行順序を表しています。まずT1=B×Cを計算し,次にT2=T1÷D=(B×C)÷Dを計算し,最後にT3=A+T2=A+(B×C)÷Dを計算しています。乗除算は同じ優先順位で左から計算されるため,これはA+B×C/Dという式に相当します。
選択肢ごとの解説
- ア正しい。T1=B*C,T2=T1/D,T3=A+T2の順に計算すると,A+B*C/Dという式になります。
- イ誤り。この式ではT2をそのまま最終式の分母側に残しており,四つ組が表す計算の展開結果と一致しません。
- ウ誤り。加算と乗除算の順序を入れ替えた式であり,四つ組が表す計算順序とは異なります。
- エ誤り。一時変数T1がそのまま最終式に残っており,全ての四つ組を正しく展開した式になっていません。