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

正文內(nèi)容

目標(biāo)程序運(yùn)行時(shí)的存儲(chǔ)組織概論-wenkub

2023-03-12 02:26:21 本頁面
 

【正文】 1. 概述 2. 棧式存儲(chǔ)分配的實(shí)現(xiàn) 1) 簡單的棧式存儲(chǔ)分配的實(shí)現(xiàn) 2) 嵌套過程語言的棧式實(shí)現(xiàn) 3) 分程序結(jié)構(gòu)的存儲(chǔ)管理 3. 參數(shù)傳遞 4. 過程調(diào)用、過程進(jìn)入和過程返回 概述 任務(wù):編譯程序?qū)δ繕?biāo)程序運(yùn)行時(shí)的數(shù)據(jù)空間的組織和管理(設(shè)計(jì)運(yùn)行環(huán)境和分配存儲(chǔ)) 如 通常棧式存儲(chǔ)分配布局可為: 目標(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 在語義學(xué)中,使用術(shù)語 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ù)對象的表示有關(guān))過程定義 過程名 執(zhí)行過程體 過程體 控制數(shù)據(jù)對象的分配,為執(zhí)行過程體使用源文本中同樣的名字 目標(biāo)程序中不同的數(shù)據(jù)空間因?yàn)橐粋€(gè)過程可以是遞歸的,這時(shí)同一個(gè)名字在不同的時(shí)間可能代表不同的存儲(chǔ)單元 決定存儲(chǔ)管理復(fù)雜程度的因素——源語言本身1. 允許的數(shù)據(jù)類型的多少2 .語言中允許的數(shù)據(jù)項(xiàng)是 靜態(tài)確定 動(dòng)態(tài)確定3 .程序結(jié)構(gòu) 決定名字的作用域的規(guī)則和結(jié)構(gòu)A . 段結(jié)構(gòu)B . 過程定義不嵌套,只允許過程遞歸調(diào)用C . 分程序結(jié)構(gòu)分程序嵌套過程定義嵌套存儲(chǔ)分配方案策略:? 靜態(tài)存儲(chǔ)分配? 動(dòng)態(tài)存儲(chǔ)分配——棧式 堆式 聲明的作用域 詞法作用域 動(dòng)態(tài)作用域例: ( 1 ) p r og ram dyna mic( i ,0)。(6) v ar r :r eal。(10 ) sho w。 small 。 ? 可變 (動(dòng)態(tài) )數(shù)組: 若一個(gè)數(shù)組所需的存儲(chǔ)空間的大小在編譯時(shí)就已知道,則稱它為確定數(shù)組,否則稱為可變 (動(dòng)態(tài) )數(shù)組。 ? begin ? ? end。? 局部變量 (數(shù)據(jù))? 保存運(yùn)行過程前的狀態(tài) (返回地址,寄存器值??)? 存取鏈 (可選) 對于非局部量的引用。 ? proc Q ? …… ? end Q。 ? 設(shè)法跟蹤每個(gè)外層過程的最新活動(dòng)記錄 AR的位置。 程序結(jié)構(gòu)圖 ?? proc R( c , d)。 end /* Q*/ call Q ?? Q(z)。 integer m,n。 L3: 2 end。 end。但這種做法是極為低效的。 例如:如果有一個(gè)從第 5層分程序轉(zhuǎn)出到達(dá)第 1層分程序的標(biāo)號 L,雖然在第 5層分程序工作時(shí)知道 L所屬的層數(shù),我們極易從DISPLAY中獲得第 1層分程序的活動(dòng)記錄基址( SP),但是怎么知道第 1層分程序進(jìn)入時(shí)的 TOP呢?唯一的辦法是從 5,4,3和 2各層順序退出。這樣,上述的第二個(gè)問題便可解決。而過程體分程序(假定是一個(gè)分程序)當(dāng)作是它所管轄的第 1層分程序。 5. 過程所轄的各分程序的局部數(shù)據(jù)單元。 ( b) 進(jìn) 入 分 程 序 B1。 (2) var x:integer。 a[j]:=x (5) end。 (4) var temp:integer。 (10)begin (11) a:=1。writeln(‘ b=‘ ,b) (14)end. 帶有過程 swap的 PASCAL程序 ? 傳地址(變量參數(shù)) 例如:過程 swap(var x,y:integer)。 swap(a,b); 其結(jié)果: a,b調(diào)用前的值不改變。 procedure swap( x,y:integer)。 其結(jié)果等價(jià)于執(zhí)行下列運(yùn)算: x :=a; y :=b; temp :=x; x :=y; y :=temp 傳地址 的實(shí)現(xiàn) ( call by reference )(callbyaddress)(callbylocation) 把實(shí)在參數(shù)的地址傳遞給相應(yīng)的形參,即 調(diào)用過程把一個(gè)指向?qū)崊⒌拇鎯?chǔ)地址的指針傳遞給被調(diào)用過程相應(yīng)的形參: 1實(shí)在參數(shù)是一個(gè)名字,或具有左值的表達(dá)式 傳遞左值 2實(shí)在參數(shù)是無左值的表達(dá)式 計(jì)算值,放入一存儲(chǔ)單元,傳此存儲(chǔ)單元地址 3目標(biāo)代碼中,被調(diào)用過程對形參的引用變成對傳遞給被調(diào)用過程的指針的間接引用 procedure swap( x,y:integer)。) a1所指單元的內(nèi)容置為 a2所指單元值 4( y :=temp) a2所指單元的內(nèi)容置為 temp的值 (1)swap(x,y) (2)int *x,*y。 *y=temp。 (10)} 在一個(gè)值調(diào)用過程中使用指針的 C程序 在 C程序中無傳地址所以用指針實(shí)現(xiàn)。 begin m:=3。 function f(n:integer):integr。 ? (2)procedure b(function h(n:integer):integer)。 ? (6) function f(n:integer):integr。 ? (9)begin ? (10) c ? (11)end 圖 1027 嵌套過程作為參數(shù)傳遞 p ar am c 存取鏈 m b f . 存取鏈圖 10 28 連同存取鏈一起 傳遞過程實(shí)參 各種數(shù)據(jù)對象的存儲(chǔ)分配 數(shù)據(jù)對象 name 名字,名稱
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1