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

正文內(nèi)容

課件,編譯原理,編譯原理課件,屬性文法,語法制導(dǎo),2005課件說明,第八章(已修改)

2025-05-21 23:08 本頁面
 

【正文】 第八章 目標(biāo)程序運(yùn)行時的 組織 概述 數(shù)據(jù)表示 目標(biāo)程序運(yùn)行時的棧式存儲組織 參數(shù)傳遞 堆式存儲概述 概述 代碼生成解決語義 gap 高級語言支持的概念 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ù)據(jù)表示 如何在目標(biāo)機(jī)中表示每個源語言類型的值 表達(dá)式求值 如何組織表達(dá)式的計(jì)算 存儲分配 如何組織不同作用域變量的存儲 過程實(shí)現(xiàn) 如何以例程實(shí)現(xiàn)過程,函數(shù),參數(shù)傳遞 概述 任務(wù):編譯程序?qū)δ繕?biāo)程序運(yùn)行時的組織(設(shè)計(jì)運(yùn)行環(huán)境和分配存儲) 如 通常存儲區(qū)布局可為: 目標(biāo)代碼區(qū) 靜態(tài)數(shù)據(jù)區(qū) Stack heap 運(yùn)行環(huán)境和存儲分配 設(shè)計(jì)分析 邏輯階段:在目標(biāo)代碼生成前,作準(zhǔn)備 實(shí)質(zhì): 關(guān)聯(lián)( Binding) 將源程序的文本 ? 程序運(yùn)行動作的實(shí)現(xiàn) 源文件中的名字 N ? 運(yùn)行時的存儲 S 在語義學(xué)中,使用術(shù)語 environment函數(shù)表示 env: N→S (N 到 S的映射 ) 靜態(tài)文本中 運(yùn)行時動作及為實(shí)現(xiàn)其動作的準(zhǔn)備 (與運(yùn)行時數(shù)據(jù)對象的表示有關(guān))過程定義 過程名 執(zhí)行過程體 過程體 控制數(shù)據(jù)對象的分配,為執(zhí)行過程體使用源文本中同樣的名字 目標(biāo)程序中不同的數(shù)據(jù)空間因?yàn)橐粋€過程可以是遞歸的,這時同一個名字在不同的時間可能代表不同的存儲單元決定運(yùn)行管理復(fù)雜程度的因素 ——源語言本身 1. 允許的數(shù)據(jù)類型的多少 2 .語言中允許的數(shù)據(jù)項(xiàng)是 靜態(tài)確定 動態(tài)確定 3 .程序結(jié)構(gòu) 決定名字的作用域的規(guī)則和結(jié)構(gòu) A . 段結(jié)構(gòu) (Fortran) B . 過程定義不嵌套,只允許過程遞歸調(diào)用 C . 分程序結(jié)構(gòu) 分程序嵌套 過程定義嵌套 4存儲類別的多少 Global Static Local dynamic 術(shù)語 ? 靜態(tài):如果一個名字的性質(zhì)通過說明語句或隱或顯規(guī)則而定義,則稱這種性質(zhì)是“靜態(tài)”確定的。 ? 動態(tài):如果名字的性質(zhì)只有在程序運(yùn)行時才能知道,則稱這種性質(zhì)為“動態(tài)”確定的。 ? 例 procedure A(m,n:integer)。 ? begin real z。 ? array B[m:n]。 ? begin ? ? ? ? end。 ? end。 數(shù)據(jù)表示 各種數(shù)據(jù)對象的存儲分配 數(shù)據(jù)對象的屬性 name 名字,名稱 type 類型 location 內(nèi)存地址 value 值 ponent 成分 數(shù)據(jù)表示 簡單變量: char: 1 byte integers: 2 or 4 bytes floats: 4 to 16 bytes booleans: 1 bit (but usually 1 byte) 指針: unsigned integers 一維數(shù)組:一塊連續(xù)的存儲區(qū) 多維數(shù)組:一塊連續(xù)的存儲區(qū),按行存放 結(jié)構(gòu)(記錄):把所有域( field)存放在一塊連續(xù)的存儲區(qū) 對象:類的實(shí)例變量象結(jié)構(gòu)的域一樣存放在一塊連續(xù)的存儲區(qū),但方法(成員函數(shù))不存在該對象里 指令: 目標(biāo)程序運(yùn)行時的存儲組織 存儲分配策略: 簡單的棧式分配方案 嵌套過程的棧式分配方案 分程序結(jié)構(gòu)的存儲分配方案 堆式存儲 靜態(tài)存儲分配 動態(tài)存儲分配 ——棧式 堆式 術(shù)語 過程活動記錄 AR : 為說明方便,假定 源 程序是由過程組成, 運(yùn)行時稱作過程的激活。 一個過程的一次執(zhí)行所需要的信息使用一個連續(xù)的存儲區(qū)來 管理,這個區(qū) (塊)叫做一個活動記錄 AR或 frame 幀 一般這個段要記錄: l 臨時值,如計(jì)算表達(dá)式時的中間工作單元。 l 局部變量 (數(shù)據(jù)) l 保存運(yùn)行過程前的狀態(tài) (返回地址,寄存器值 …… ) l 存取鏈 (可選) 對于非局部量的引用。 l 控制鏈 (可選) 指向調(diào)用者的活動記錄,釋放棧。 l 實(shí)參 (形式單元) l 返回值 (對函數(shù)) (有時可使用寄存器存放返回值) 簡單的棧式分配方案 ? 程序結(jié)構(gòu)特點(diǎn) :過程定義不嵌套,過程可遞歸調(diào)用,含可變數(shù)組 。 ? 例 : main ? 全局變量的說明 ? proc R ? …… ? end R。 ? proc Q ? …… ? end Q。 ? 主程序執(zhí)行語句 ? end main Main Q R Main Q Q T O P R 的活動記錄 Q 的活動記錄 S P Q 的活動記錄 Q 的活動記錄 主程序全局 主程序全局 數(shù)據(jù)區(qū) 數(shù)據(jù)區(qū)T O P 臨時工作單元 局部簡單變量 局部數(shù)組的內(nèi)情向量 保存運(yùn) 行過程前的狀態(tài) (返回地址,寄存器值??) 實(shí)參 (形式單元)和參數(shù)個數(shù) S P 控制鏈 (老 SP ) TOP R 的數(shù)組區(qū) S P R 的活動記錄 Q 的活動記錄 主程序全局 數(shù)據(jù)區(qū)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1