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

正文內(nèi)容

課件,編譯原理,編譯原理課件,屬性文法,語(yǔ)法制導(dǎo),2005課件說(shuō)明,第八章(存儲(chǔ)版)

  

【正文】 x。 (4) temp=*x。 (10)} 在一個(gè)值調(diào)用過(guò)程中使用指針的 C程序 在 C程序中無(wú)傳地址所以用指針實(shí)現(xiàn)。 ? (8)begin m := 0。 另外一種方法是在執(zhí)行時(shí)將類結(jié)構(gòu)的一個(gè)完整的描述保存在每個(gè)類的存儲(chǔ)中,并由超類指針維護(hù)繼承性(有時(shí)這也稱作繼承圖( inheritance graph))。 現(xiàn)在每個(gè)對(duì)象不僅包括實(shí)例變量還包括了一個(gè)相應(yīng)的方法索引表的指針而不是類結(jié)構(gòu)的指針 ( 當(dāng)然 , 這個(gè)指針的位置必須也有可預(yù)測(cè)的偏移量 ) 。 class Fruit { int price。} } void foo() { class Apple a。 } 它 的運(yùn)行時(shí)存儲(chǔ)組織 臨時(shí)變量 局部變量 控制鏈 (EBP) 返回地址 (EIP) 實(shí)參 …… Apple的實(shí)例 …… …… Vtable of Fruit Vtable of Apple …… vtable int price(100) string name string color …… …… 棧區(qū) 堆區(qū) 。 void setcolor(string c){color=c。 class D d1,d2。 折衷方法 將整個(gè)類結(jié)構(gòu)保存在存儲(chǔ)中 , 計(jì)算出每個(gè)類的可用方法的代碼指針列表 (稱為方法索引表 , 如 :C++的 virtual function table) 。 Smalltalk與 LISP相似是完全堆式環(huán)境 C++則保持 C的基于棧的環(huán)境 實(shí)現(xiàn)對(duì)象 實(shí)現(xiàn)對(duì)象的一個(gè)簡(jiǎn)單機(jī)制是,初始化代碼將所有當(dāng)前的繼承特征(屬性和方法)直接地復(fù)制到記錄結(jié)構(gòu)中(將方法當(dāng)作代碼指針)。 ? (6) function f(n:integer):integr。b)。) a1所指單元 的內(nèi)容置為 a2所指單元值 4( y :=temp) a2所指單元 的內(nèi)容置為 temp的 值 (1)swap(x,y) (2)int *x,*y。 procedure swap( x,y:integer)。writeln(?b=?,b) (14)end. 帶有過(guò)程 swap的 PASCAL程序 ? 傳地址(變量參數(shù)) 例如:過(guò)程 swap(var x,y:integer)。 (4) var temp:integer。 (2) var x:integer。 ,共四項(xiàng): ( 1)老 SP值; ( 2)返回地址; (3)全局 DISPAY地址; ( 4)調(diào)用時(shí)的棧頂單元地址,老 TOP。 為了解決上述問(wèn)題,可采取兩種措施。 分程序結(jié)構(gòu)的存儲(chǔ) 分配方案 處理分程序結(jié)構(gòu)存儲(chǔ)分配方案的一種簡(jiǎn)單辦法是,把分程序看成 “無(wú)名無(wú)參過(guò) 程”,它在哪里定義就在哪里被調(diào)用。 array B[m:n]。 en d /* Q */ ca ll Q ?? Q (z)。 end end. ( 0) jmp 0 8 轉(zhuǎn)向 主程序入口 ( 1) jmp 0 2 轉(zhuǎn)向 過(guò)程 p入口 ( 2) int 0 3 過(guò)程 p入口 ,為過(guò)程 p開(kāi)辟空間 ( 3) lod 1 3 取變量 b的值到棧頂 ( 4) lit 0 10 取常數(shù) 10到棧頂 ( 5) opr 0 2 次棧頂與棧頂相加 ( 6) sto 1 4 棧頂值送變量 c中 ( 7) opr 0 0 退棧并返回調(diào)用點(diǎn) (16) ( 8) int 0 5 主程序入口開(kāi)辟 5個(gè)棧空間 ( 9) opr 0 16 從命令行讀入值置于棧頂 (10) sto 0 3 將棧頂值存入變量 b中 (11) lod 0 3 將變量 b的值取至棧頂 (12) lit 0 0 將常數(shù)值 0進(jìn)棧 (13) opr 0 9 次棧頂與棧頂是否不等 (14) jpc 0 24 等時(shí)轉(zhuǎn) (24)( 條件不滿足轉(zhuǎn) ) (15) cal 0 2 調(diào)用過(guò)程 p (16) lit 0 2 常數(shù)值 2進(jìn)棧 (17) lod 0 4 將變量 c的值取至棧頂 (18) opr 0 4 次棧頂與棧頂相乘 (2*c) (19) opr 0 14 棧頂值輸出至屏幕 (20) opr 0 15 換行 (21) opr 0 16 從命令行讀取值到棧頂 (22) sto 0 3 棧頂值送變量 b中 (23) jmp 0 11 無(wú)條件轉(zhuǎn)到循環(huán)入口 (11) (24) opr 0 0 結(jié)束退棧 目標(biāo)代碼解釋執(zhí)行時(shí)數(shù)據(jù)棧的布局(運(yùn)行棧的存儲(chǔ)分配) 每個(gè)過(guò)程的 AR有 3個(gè)聯(lián)系單元: – SL: 靜態(tài)鏈 ,指向 定義 該過(guò)程的 直接外過(guò)程 (或主程序)運(yùn)行時(shí) 最新 數(shù)據(jù)段的基地址 。 var b,c。 ? proc Q ? …… ? end Q。 ? end。第八章 目標(biāo)程序運(yùn)行時(shí)的 組織 概述 數(shù)據(jù)表示 目標(biāo)程序運(yùn)行時(shí)的棧式存儲(chǔ)組織 參數(shù)傳遞 堆式存儲(chǔ)概述 概述 代碼生成解決語(yǔ)義 gap 高級(jí)語(yǔ)言支持的概念 Type value expression Variable procedure Function parameters 目標(biāo)機(jī)支持的概念 bits bytes words Registers Stack address Routine(sub routine) 概述 代碼生成前如何安排目標(biāo)機(jī)資源 運(yùn)行時(shí)組織的幾個(gè)問(wèn)題 數(shù)據(jù)表示 如何在目標(biāo)機(jī)中表示每個(gè)源語(yǔ)言類型的值 表達(dá)式求值 如何組織表達(dá)式的計(jì)算 存儲(chǔ)分配 如何組織不同作用域變量的存儲(chǔ) 過(guò)程實(shí)現(xiàn) 如何以例程實(shí)現(xiàn)過(guò)程,函數(shù),參數(shù)傳遞 概述 任務(wù):編譯程序?qū)δ繕?biāo)程序運(yùn)行時(shí)的組織(設(shè)計(jì)運(yùn)行環(huán)境和分配存儲(chǔ)) 如 通常存儲(chǔ)區(qū)布局可為: 目標(biāo)代碼區(qū) 靜態(tài)數(shù)據(jù)區(qū) Stack heap 運(yùn)行環(huán)境和存儲(chǔ)分配 設(shè)計(jì)分析 邏輯階段:在目標(biāo)代碼生成前,作準(zhǔn)備 實(shí)質(zhì): 關(guān)聯(lián)( Binding) 將源程序的文本 ? 程序運(yùn)行動(dòng)作的實(shí)現(xiàn) 源文件中的名字 N ? 運(yùn)行時(shí)的存儲(chǔ) S 在語(yǔ)義學(xué)中,使用術(shù)語(yǔ) environment函數(shù)表示 env: N→S (N 到 S的映射 ) 靜態(tài)文本中 運(yùn)行時(shí)動(dòng)作及為實(shí)現(xiàn)其動(dòng)作的準(zhǔn)備 (與運(yùn)行時(shí)數(shù)據(jù)對(duì)象的表示
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1