3番地コード
three-address code
IR (中間表現)の形式の一つ
以下の4つ組
変数名
演算子
被演算子1
被演算子2
特徴
コード最適化に適している
木構造で保存するよりも消費メモリが小さくなる
2つの入力と1つの出力のアドレスを指定する形式
なので「three-address code」
x = y <op> zのかたちに変換する
具体例 ref
a = 2 + b * 2 / cを変換すると以下のようになる
code:ir
t1 = b * 2
t2 = t1 / c
a = 2 + t2
3つ組の2番地コードというのもある
3番地コードの変数が無い代わりにkeyになる数値が割り振られる
1. (+, b, c)、2. (-, 1, a)←この1は数値ではなくkeyの1を表す
https://www.fit.ac.jp/~m-ishihara/Lectures/H22/Compiler/12/Handout.pdf
参考
https://ja.wikipedia.org/wiki/3番地コード