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

正文內(nèi)容

課件,編譯原理,編譯原理課件,屬性文法,語(yǔ)法制導(dǎo),2005課件說明,第八章-wenkub

2023-05-08 23:08:34 本頁(yè)面
 

【正文】 全局變量的說明 ? proc R ? …… ? end R。 一個(gè)過程的一次執(zhí)行所需要的信息使用一個(gè)連續(xù)的存儲(chǔ)區(qū)來(lái) 管理,這個(gè)區(qū) (塊)叫做一個(gè)活動(dòng)記錄 AR或 frame 幀 一般這個(gè)段要記錄: l 臨時(shí)值,如計(jì)算表達(dá)式時(shí)的中間工作單元。 ? ? begin real z。第八章 目標(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è)問題 數(shù)據(jù)表示 如何在目標(biāo)機(jī)中表示每個(gè)源語(yǔ)言類型的值 表達(dá)式求值 如何組織表達(dá)式的計(jì)算 存儲(chǔ)分配 如何組織不同作用域變量的存儲(chǔ) 過程實(shí)現(xiàn) 如何以例程實(shí)現(xiàn)過程,函數(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ì)象的表示有關(guān))過程定義 過程名 執(zhí)行過程體 過程體 控制數(shù)據(jù)對(duì)象的分配,為執(zhí)行過程體使用源文本中同樣的名字 目標(biāo)程序中不同的數(shù)據(jù)空間因?yàn)橐粋€(gè)過程可以是遞歸的,這時(shí)同一個(gè)名字在不同的時(shí)間可能代表不同的存儲(chǔ)單元決定運(yùn)行管理復(fù)雜程度的因素 ——源語(yǔ)言本身 1. 允許的數(shù)據(jù)類型的多少 2 .語(yǔ)言中允許的數(shù)據(jù)項(xiàng)是 靜態(tài)確定 動(dòng)態(tài)確定 3 .程序結(jié)構(gòu) 決定名字的作用域的規(guī)則和結(jié)構(gòu) A . 段結(jié)構(gòu) (Fortran) B . 過程定義不嵌套,只允許過程遞歸調(diào)用 C . 分程序結(jié)構(gòu) 分程序嵌套 過程定義嵌套 4存儲(chǔ)類別的多少 Global Static Local dynamic 術(shù)語(yǔ) ? 靜態(tài):如果一個(gè)名字的性質(zhì)通過說明語(yǔ)句或隱或顯規(guī)則而定義,則稱這種性質(zhì)是“靜態(tài)”確定的。 ? array B[m:n]。 ? end。 l 局部變量 (數(shù)據(jù)) l 保存運(yùn)行過程前的狀態(tài) (返回地址,寄存器值 …… ) l 存取鏈 (可選) 對(duì)于非局部量的引用。 ? proc Q ? …… ? end Q。 ? 設(shè)法跟蹤每個(gè)外層過程的最新活動(dòng)記錄AR的位置。 var b,c。 begin read(b)。 end end. ( 0) jmp 0 8 轉(zhuǎn)向 主程序入口 ( 1) jmp 0 2 轉(zhuǎn)向 過程 p入口 ( 2) int 0 3 過程 p入口 ,為過程 p開辟空間 ( 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 主程序入口開辟 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)用過程 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è)過程的 AR有 3個(gè)聯(lián)系單元: – SL: 靜態(tài)鏈 ,指向 定義 該過程的 直接外過程 (或主程序)運(yùn)行時(shí) 最新 數(shù)據(jù)段的基地址 。 程序結(jié)構(gòu)圖 ?? pr oc R( c , d)。 en d /* Q */ ca ll Q ?? Q (z)。 – 過程 (函數(shù) )活動(dòng)記錄的內(nèi)容:聯(lián)系單元(靜態(tài)鏈 ,動(dòng)態(tài)鏈和返回地址)、局部變量和臨時(shí)變量 棧式存儲(chǔ)分配的實(shí)現(xiàn): ? 設(shè)置兩個(gè)指針:棧頂指針 Top和當(dāng)前活動(dòng)記錄指針 SP; ? 調(diào)用一個(gè)過程 (函數(shù) )前,先把過程 (函數(shù) )的參數(shù)壓入數(shù)據(jù)棧; ? 在數(shù)據(jù)棧中為過程 (函數(shù) )的活動(dòng)記錄分配空間; ? 填寫聯(lián)系單元內(nèi)容; ? 執(zhí)行過程 (函數(shù) )代碼; ? 過程 (函數(shù) )返回前,根據(jù)當(dāng)前 SP恢復(fù) Top指針,根據(jù)動(dòng)態(tài)鏈恢復(fù) SP為外層過程 (函數(shù) )的活動(dòng)記錄起始地址,根據(jù)返回地址得到下一條指令地址; ? 繼續(xù)執(zhí)行外層過程 (函數(shù) )代碼。 array B[m:n]。 1 B5:begin real e。 分程序結(jié)構(gòu)的存儲(chǔ) 分配方案 處理分程序結(jié)構(gòu)存儲(chǔ)分配方案的一種簡(jiǎn)單辦法是,把分程序看成 “無(wú)名無(wú)參過 程”,它在哪里定義就在哪里被調(diào)用。 二則 ,當(dāng)從內(nèi)層分程序向外層轉(zhuǎn)移時(shí),可能同時(shí)要結(jié)束若干個(gè)分程序。 為了解決上述問題,可采取兩種措施。每個(gè)分程序都隸屬于某個(gè)確定的過程,分程序的層次是相對(duì)于它所屬的那個(gè)過程進(jìn)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1