- 1
- 0
- 约6.99千字
- 约 123页
- 2026-06-26 发布于山东
- 举报
語義分析和中間代碼產生;;中間語言
獨立於機器
複雜性界於源語言和目標語言之間
引入中間語言的好處:
便於進行與機器無關的代碼優化工作
易於移植
使編譯程序的結構在邏輯上更為簡單明確;常用的中間語言:
尾碼式,又叫逆波蘭表示
圖表示:DAG圖、抽象語法樹
三地址代碼
三元式
四元式
間接三元式;7.1.1尾碼式;逆波蘭表示法不用括弧。只要知道每個算符的目數,對於尾碼式,不論從哪一端進行掃描,都能對它進行唯一分解。
尾碼式的計算
用一個棧實現。
一般的計算過程是:自左至右掃描尾碼式,每碰到運算量就把它推進棧。每碰到k目運算符就把它作用於棧頂的k個項,並用運算結果代替這k個項。;把運算式翻譯成尾碼式的語義規則描述;7.1.2圖表示法;7.1.2圖表示法;a+a*(b-c)+(b-c)*d的DAG;a:=b*(-c)+b*(-c)的圖表示法;抽象語法樹對應的代碼:
T1:=-c
T2:=b*T1
T3:=-c
T4:=b*T3
T5:=T2+T4
a:=T5
;DAG對應的代碼:
T1:=-c
T2:=b*T1
T5:=T2+T2
a:=T5
;7.1.3三地址代碼;a:=b*(-c)+b*(-c)的圖表示法;相應於a:=b*(-c)+b*(-c)抽象語法樹與DAG的三地址碼;三地址語句的種類;三地址語
原创力文档

文档评论(0)