コンパイラ
中間表現の一つである三番地コードの特徴として正しいものはどれか。
- A1つの命令に、いくつでも演算や括弧を含められる
- B1命令は最大3つの番地と1つの演算からなる
- C番地として、必ずメモリの物理アドレスを書く
答えと解説を見る
正解:B. 1命令は最大3つの番地と1つの演算からなる
三番地コードでは、複雑な式を、演算が1つだけの単純な命令の並びに分解します。例えば x = (a + b) * c は、t1 = a + b、x = t1 * c の2つになり、1つの命令に登場するのは結果と2つの材料の最大3つの番地です。途中の値には一時的な名前(t1など)を付けます。こうすると計算の順番がはっきりし、最適化やCPUの命令への変換がしやすくなります。番地は変数や一時的な名前で、物理アドレスではありません。
- A. 1つの命令には演算が1つだけです。
- B. 正しい。最大3つの番地と1つの演算からなる命令の並びです。
- C. 番地は変数や一時的な名前で、物理アドレスではありません。