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

正文內(nèi)容

目標(biāo)程序運(yùn)行時的存儲組織教材(文件)

2025-03-05 02:26 上一頁面

下一頁面
 

【正文】 P1又是 P2的直接外層(圖 (a)(b)兩種情形),不 論哪一種情形,只要在進(jìn)入 P2后能夠知道 P1的 display就 能知道 P0的 display,從而可直接構(gòu)造出 P2的 display。 var d,e:real。{Y} procedure Z(k:integer)。 ..... 11:Z。當(dāng)運(yùn)行主程序而調(diào)用過程語句 X時,試分別給出以下時刻的運(yùn)行棧的內(nèi)容和 DISPLAY的內(nèi)容。分程序在哪 里定義就在哪里被調(diào)用 ?另一種辦法是每次為一個完整的過程體分配存儲,即把 一個過程體中的所有分程序所需的存儲一次分配好,如 圖 C程序 ,可以為這里所有聲明的名字分配一塊存 儲,如圖 : ?ALGOL的結(jié)構(gòu)特點(diǎn)是除了允許過程嵌套定義還含有分程 序的結(jié)構(gòu),如圖 ALGOL過程: ?如采用將分程序看成“無參過程”,則效率很低,因?yàn)椋? ?第一,分程序不存在被調(diào)用的問題,不必要在進(jìn)入一個 分程序時,將連接數(shù)據(jù)和 display都放進(jìn)活動記錄中 ?第二,當(dāng)從內(nèi)層分程序向外轉(zhuǎn)移時可能同時要結(jié)束若干 個分程序,那么怎樣恢復(fù)所要到達(dá)的那個分程序的數(shù)據(jù) 區(qū)呢? ?克服上述缺點(diǎn)的辦法是: ?首先,代替原來的那個統(tǒng)一的棧頂指示器,讓每個過程 和分程序都有自己的棧頂指示器 TOP,它的值保存在各 自的活動記錄中 ?其次,不把分程序看作“無參過程”,而讓每個分程序享 用包圍它的那個最小過程的 display ?每個過程的活動記錄所含的內(nèi)容有: TOP單元,指向活動記錄的棧頂位置 : (1)老 SP值 (2)返回地址 (3)全局 display地址 (4)調(diào)用時的棧頂單元地址,稱作老 TOP , 它們包括: (1)一個名為 TOP的單元,當(dāng)進(jìn)入時它含現(xiàn)行棧頂?shù)刂?,以? 用來存放棧的新高度 (2)分程序的局部變量、數(shù)組內(nèi)情向量和臨時工作單元 ?圖 A(見圖 )的活動記錄的結(jié)構(gòu): ?下面用一個例子說明進(jìn)出分程序時數(shù)據(jù)區(qū)的變化過程: ?圖 ( a)表示已調(diào)用了圖 A,控制已轉(zhuǎn)入 A中,但尚未開始執(zhí)行過程體時棧的內(nèi)容 ?圖 ( b)反映了已進(jìn)入過程體分程序( B1),但尚未 分配數(shù)組空間時棧的內(nèi)容。 begin y:=y+1。 b:=3。 ( 2) 傳地址 , 則將實(shí)在參數(shù)的地址傳遞給 被 調(diào)用者, p 運(yùn)行時有( 假設(shè) a的地址為 add_a, b的地址為 add_b )。 ( 2) 傳結(jié)果 , 則將實(shí)在參數(shù)的地址和值傳遞給 被調(diào)用者 , p 運(yùn)行時有( 假設(shè) a的地址為 add_a, b的地址為 add_b,臨時單元 T的地址為 add_T)。然后所生成的目標(biāo)指令則 應(yīng)完成的工作是:恢復(fù) SP;恢復(fù) TOP,按保存的返回地址 實(shí)行無條件轉(zhuǎn)移 【本章小結(jié)】 ?目標(biāo)代碼運(yùn)行時,存儲區(qū)域的整體布局 ,以及各區(qū)域的作用 ?各種不同數(shù)據(jù)變量區(qū)的不同分配組織方式 ?允許過程嵌套定義的語言,棧式動態(tài)分配的組織管理 ?過程活動紀(jì)錄的各項(xiàng)內(nèi)容和它們的作用,以及活動紀(jì)錄的 組織方式 ?參數(shù)傳遞的不同方式及其實(shí)現(xiàn) ?過程調(diào)用和返回時,相應(yīng)目標(biāo)代碼以及棧式動態(tài)分配區(qū)的 管理 作業(yè) 下面的程序執(zhí)行時輸出的 a分別是什么 ?若 (1) 參數(shù)的傳遞辦法為 傳值 ; (2) 參數(shù)的傳遞辦法為“傳地址”。 procedure p(x,y,z)。 begin a∶ =4。 function F(N:integer):integer begin if N =0 then F:=1 else F:=N * F(N1)。 當(dāng)?shù)诙危ㄟf歸地)進(jìn)入 F后, DISPLAY的內(nèi)容是什么?當(dāng)時整個運(yùn)行棧的內(nèi)容是什么? 臨時變量 內(nèi)情向量 簡單變量 display 形式單元 形參個數(shù) 全局 display 返回地址 老 SP 如下的 Pascal程序, program Tr(input,output)。 var p:char。 {B} procedure C。 C。試分別給出程序執(zhí)行到( 1)和( 2)點(diǎn)時運(yùn)行棧的內(nèi)容和DISPLAY的內(nèi)容。{A} begin{main} ... A(d)。 begin ...(2)... end。 var c:char。 d:integer。 begin K:=F(10)。 p(a+b,a,a)。 z∶ =z+x。 (4) 參數(shù)的傳遞辦法為 傳結(jié)果 。 167。 解: ( 3) 傳名 當(dāng)執(zhí)行調(diào)用 p ( a+b, a ,a)時,相當(dāng)于被調(diào)用者被替換成 procedure p (a+b , a , a) begin a:=a+1 a:=a+a+b end。 執(zhí)行時所輸出的 a分別是什么? ( 1) 傳值 . 則將實(shí)參的值傳遞給被調(diào)用者 p .程序運(yùn)行時有(假設(shè) a的地址為 add_a, b的地址為 add_b)。 end。 參數(shù)傳遞 ?把實(shí)在參數(shù)傳遞給相應(yīng)的形式參數(shù)方法: ?傳值、傳地址、傳名、傳結(jié)果等 一 .傳值(值調(diào)用) ?將實(shí)參計(jì)算出它的值,然后把它傳給被調(diào)過程: ,并將它們的值放在為形式單元 開辟的空間中 ,就像使用局部變量一樣使用這些形式 單元 ?傳值的重要特點(diǎn)是對形式參數(shù)的任何運(yùn)算不影響調(diào)用過程的活動記錄中實(shí)參的值 ?通
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1