freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

第六章中間代碼生成-展示頁

2024-08-16 13:20本頁面
  

【正文】 z x ? 單目運算符不使用 arg2 ? param運算不使用 arg2和 result ? 條件轉移 /非條件轉移將目標標號放在 result字段 四元式的例子 ? 賦值語句: a=b* c + b* c 三元式表示 ? 三元式( triple) op arg1 arg2 ? 使用三元式的位置來引用三元式的運算結果 ? x[i]=y需要拆分為兩個三元式 – 求 x[i]的地址,然后再賦值 ? x=y op z需要拆分為(這里?是編號) – (?) op y z – = x ? ? 問題:在優(yōu)化時經常需要移動 /刪除 /添加三元式,導致三元式的移動。第六章 中間代碼生成 趙建華 南京大學計算機系 本章內容 ? 中間代碼表示 – 抽象語法樹 – 三地址代碼: x=y op z ? 靜態(tài)類型檢查 – 類型檢查( type checking) – 語法分析之后的抽象語法 (syntax)檢查,比如break的位置, goto的目標 …. ? 中間代碼生成 編譯器前端的邏輯結構 三地址代碼( 1) ? 每條指令右側最多有一個運算符 – 一般情況可以寫成 x = y op z ? 允許的運算分量: – 名字:源程序中的名字作為三地址代碼的地址 – 常量:源程序中出現(xiàn)或生成的常量 – 編譯器生成的臨時變量 三地址代碼( 2) ? 指令集合 ( 1) – 運算 /賦值指令: x=y op z x = op y – 復制指令: x=y – 無條件轉移指令: goto L – 條件轉移指令: if x goto L if False x goto L – 條件轉移指令: if x relop y goto L 三地址代碼( 3) ? 指令集合( 2) – 過程調用 /返回: ? param x1 //設置參數(shù) ? param x2 ? … ? param xn ? call p, n //調用子過程 p, n為參數(shù)個數(shù) – 帶下標的復制指令: x=y[i] x[i]=y ? 注意: i表示離開數(shù)組位置第 i個字節(jié),而不是數(shù)組的第 i個元素 – 地址 /指針賦值指令: ? x=amp。y x=*y *x=y 例子 ? 語句 – do i = i + 1。 三元式的例子 ? a=b*c + b * c 間接三元式 ? 包含了一個指向三元式的指針的列表 ? 我們可以對這個列表進行操作,完成優(yōu)化功能;操作時不需要修改三元式中的參數(shù)。 else x = 1。 else x2 = 1。 ? 類型信息的用途 – 查錯、確定名字需要的內存空間、計算數(shù)組元素的地址、類型轉換、選擇正確的運算符 ? 本節(jié)的內容 – 確定名字的類型, – 變量的存儲空間布局(相對地址) 類型表達式 ? 類型表達式( type expression):表示類型的結構 – 基本類型 – 類名 – 類型構造算子作用于類型 ? array[數(shù)字,類型表達式 ] ? record[字段 /類型對的列表 ](可以用符號表表示) – 函數(shù)類型構造算子 ?:參數(shù)類型 ?結果類型 – 笛卡爾積: s X t – 可以包含取值為類型表達式的變量 類型表達式的例子 ? 類型例子 – 元素個數(shù)為 3X4的二維數(shù)組 – 數(shù)組的元素的記錄類型 – 該記錄類型中包含兩個字段 : x和 y,其類型分別是 float和
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1