什麼是三地址碼語句的實現?
三地址碼語句有三種實現方式,如下所示:
- 四元式
- 三元式
- 間接三元式

四元式
四元式是一種最多包含四個欄位的結構,即運算子、引數 1、引數 2 和結果。
| 運算子 | 引數 1 | 引數 2 | 結果 |
對於語句 a = b + c,四元式表示將 + 放入運算子欄位,a 放入引數 1 欄位,b 放入引數 2,c 放入結果欄位。
例如:考慮語句
a = b + c * d
首先,將此語句轉換為三地址碼
∴ 三地址碼將為
t1 = c ∗ d
t2 = b + t1
a = t2。
構建三地址碼後,它將轉換為如下所示的四元式表示:
四元式
| 位置 | 運算子 | 引數 1 | 引數 2 | 結果 |
|---|---|---|---|---|
| (0) | * | c | d | t2 |
| (1) | + | b | t1 | t1 |
| (2) | = | t2 | A |
引數 1、引數 2 和結果欄位的內容是指向由這些條目表示的名稱的符號表條目的指標。
三元式
這種三地址碼錶示包含三個 (3) 個欄位,即一個用於運算子,兩個用於引數(即引數 1 和引數 2)
| 運算子 | 引數 1 | 引數 2 |
在這種表示中,不使用臨時變數。我們使用括號中的數字來表示指向符號表中該特定記錄的指標,而不是臨時變數。
例如,考慮語句
a = b + c * d
首先,它將被轉換為三地址碼
∴ t1 = c ∗ d
t2 = b + t1
a = t2
此三地址碼的三元式將為:
三元式
| 位置 | 運算子 | 引數 1 | 引數 2 |
|---|---|---|---|
| (0) | ∗ | C | d |
| (1) | + | B | (0) |
| (2) | = | A | (1) |
這裡 (0) 表示一個指標,它引用結果 c * d,可以在後續語句中使用,即當 c * d 與 b 相加時。此結果將儲存在 (1) 指向的位置。指標 (1) 將在將其分配給 a 時進一步使用。
間接三元式
間接三元式表示使用一個額外的陣列來按所需的順序列出指向三元式的指標。這稱為間接三元式表示。
間接三元式將為

在此,它只需要引用指標 (0)、(1)、(2),它們將分別進一步引用指標 (11)、(12)、(13),然後指標 (11)、(12)、(13) 指向三元式,這就是為什麼這種表示稱為間接三元式表示。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP