コンパイラ
コード生成の段階の一つである命令選択(インストラクションセレクション)の説明として正しいものはどれか。
- A中間表現の演算を、対象のCPUがもつ命令のどれで実現するかを決める
- B実行するプロセスをOSがどの順番で選ぶかを決める
- Cソースコードの中から、コメントとして書かれた命令を選び出す
答えと解説を見る
正解:A. 中間表現の演算を、対象のCPUがもつ命令のどれで実現するかを決める
命令選択は、中間表現の演算の並びを、対象のCPUの具体的な命令に対応づける処理です。同じ計算でもCPUによって使える命令は異なり、例えば a * b + c を、CPUに積和演算(FMA)の命令があれば1命令で、なければ掛け算と足し算の2命令で実現します。メモリの番地の計算をアドレッシングモードにまとめるなど、CPUの命令をうまく使うほど速いコードになります。OSのスケジューリングやコメントの処理とは関係ありません。
- A. 正しい。中間表現の演算をCPUの命令に対応づけます。
- B. プロセスの順番はOSのスケジューラが決めます。
- C. コメントは字句解析で取り除かれます。