什麼是三地址碼?
三地址碼是一系列形式為 A−=B op C 的語句,其中 A、B、C 可以是程式設計師定義的名稱、常量或編譯器生成的臨時名稱,op 表示一個運算子,可以是常量或浮點算術運算子,或者布林值資料或邏輯運算子。“三地址碼”這個名稱的原因在於,每個語句通常包含三個地址,兩個用於運算元,一個用於結果。
在三地址碼中,最多三個地址定義任何語句。兩個地址用於運算元,一個用於結果。

因此,op 是一個運算子。
在表示式的右側一次只允許進行單個操作。
示例− 表示式 a = b + c + d 可以轉換為以下三地址碼。
t1 = b + c
t2 = t1 + d
a = t2
其中 t1 和 t2 是編譯器生成的臨時變數。大多數情況下,語句包含少於三個引用,但它仍然被稱為三地址語句。
三地址碼語句的型別
以下是各種型別的三地址語句:
賦值− 三種類型的賦值語句為
x = y op z,op 是一個二元運算子,y、z 為運算元。
x = op y,op 是一個一元運算子
x = y,y 的值賦給 x。
無條件跳轉− 無條件跳轉的形式為 goto L,L 為標籤。
控制流到標有 L 的三地址語句。
條件跳轉− 條件跳轉的形式為
if x relop y goto L
這裡 relop 可以是 <、>、<=、>=。如果條件為真,則它可以執行標籤 L 處的三地址語句,否則將執行 if 語句之後的語句。
陣列語句−
x = y[i],陣列 y 的第 i 個位置的值賦給 x。
x[i] = y,y 的值賦給陣列 x 的第 i 個位置。
地址和指標賦值− 像 Pascal 和 C 這樣的語言允許指標賦值。
x = & y,y 的地址賦給 x。
x = * y,y 指向的位置的內容賦給 x。
*x=y,最終將 x 指向的物件的右值設定為 y 的右值。
過程呼叫/返回− 對過程 P(x1, x2 … . . xn) 的呼叫,其引數為 x1, x2 … . . xn,寫成
param x1
param x2
………..
param xn
call p, n
這裡 param 指的是引數,& call p, n 將用 n 個引數呼叫過程 p。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP