編譯原理第十三章ppt課件.ppt

編譯原理第十三章ppt課件.ppt

ID:58577554

大?。?15.00 KB

頁數(shù):58頁

時間:2020-10-20

編譯原理第十三章ppt課件.ppt_第1頁
編譯原理第十三章ppt課件.ppt_第2頁
編譯原理第十三章ppt課件.ppt_第3頁
編譯原理第十三章ppt課件.ppt_第4頁
編譯原理第十三章ppt課件.ppt_第5頁
資源描述:

《編譯原理第十三章ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第十二章運行時存儲空間的組織電子科技大學(xué)計算機科學(xué)與工程學(xué)院要執(zhí)行和實現(xiàn)目標(biāo)程序,需要一個運行環(huán)境來支持,要對程序中的變量進行存儲分配,并提供各種運行信息。因此,本章主要討論:運行時存儲空間的組織電子科技大學(xué)計算機科學(xué)與工程學(xué)院第一節(jié)程序的存儲空間程序投入運行的必要條件:1.一組可運行的代碼2.一個運行環(huán)境分配空間:變量、臨時變量、數(shù)組、單元提供運行信息:返回地址、主調(diào)過程的存儲區(qū)電子科技大學(xué)計算機科學(xué)與工程學(xué)院ip代碼存儲器(C)數(shù)據(jù)存儲器(D)假定當(dāng)前指令指針ip的值為i,則當(dāng)前指令的存儲地址用C[i]表示一、代碼空間線性存放著目標(biāo)指令序列在GAM中,當(dāng)

2、前執(zhí)行的指令位置由指令指針ip指示電子科技大學(xué)計算機科學(xué)與工程學(xué)院二、數(shù)據(jù)空間編譯程序給源程序中的各種類型的變量和常數(shù)分配的存諸空間,稱為程序的數(shù)據(jù)空間。ip代碼存儲器(C)數(shù)據(jù)存儲器(D)若某個變量分配在D的i個單元,則用D[i]表示該變量的存諸位置(地址)數(shù)據(jù)空間在運行時是可以改變的,即動態(tài)的電子科技大學(xué)計算機科學(xué)與工程學(xué)院(1)內(nèi)容:變量、常數(shù)、控制和管理信息、描述符等(2)靜態(tài)分配:在運行前就可確定數(shù)據(jù)空間的大小在編譯時刻就能進行的存儲分配(3)動態(tài)分配:運行時才能進行的存儲分配棧分配:因變量生存期的嵌套性堆分配:因生存期的隨機交叉特性電子科技大學(xué)計

3、算機科學(xué)與工程學(xué)院臨時變量返回指針動態(tài)鏈接靜態(tài)鏈接現(xiàn)場保護參數(shù)個數(shù)參數(shù)單元局部變量被調(diào)用單元返回時的地址指向調(diào)用單元最新活動記錄的指針指向被調(diào)用單元直接外層的最新活動記錄的指針保存調(diào)用時的機器狀態(tài)調(diào)用單元向被調(diào)用單元傳遞的單元個數(shù)為形式參數(shù)分配的存儲單元為局部變量分配的存儲單元為臨時變量分配的存儲單元三、活動記錄一個程序單元的一次激活所需的信息管理是通過相應(yīng)的活動記錄來實施的。一個單元的每次激活,都應(yīng)建立相應(yīng)的活動記錄,它是單元實例的一部分。除了變量存儲區(qū)外,其余部分存儲長度編譯時可以確定,則元素i的地址可用下式計算D+offset(i)其中,offset(

4、i)是i在活動記錄中的位移;D是活動記錄的首地址活動記錄的特點電子科技大學(xué)計算機科學(xué)與工程學(xué)院四、變量的存儲分配條件是:語言允許遞歸調(diào)用1.靜態(tài)變量:不管在程序單元的哪一次活動中,均綁定于相同的存儲位置條件是:活動記錄,變量的存儲位置在編譯時可以確定2.半靜態(tài)變量:編譯時確定相對位置,單元被激活后,x綁定于D+Offset(x)電子科技大學(xué)計算機科學(xué)與工程學(xué)院3.半動態(tài)變量:動態(tài)數(shù)組編譯時在活動記錄中建立描述符例:[1..m]inta;[1..n]intb;4.動態(tài)變量:動態(tài)分配編譯時在活動記錄中為動態(tài)變量設(shè)置二個指針,一個指向該變量的描述符,另一個指向該變

5、量的存儲空間電子科技大學(xué)計算機科學(xué)與工程學(xué)院五、存儲分配模式1.靜態(tài)分配只允許靜態(tài)變量,變量與存儲區(qū)域的綁定關(guān)系在編譯時便可建立,并完成存儲分配。不允許遞歸調(diào)用,不允許動態(tài)數(shù)組,不允許動態(tài)類型的數(shù)據(jù)對象,即不允許有非靜態(tài)變量。如:FORTRAN語言。電子科技大學(xué)計算機科學(xué)與工程學(xué)院2.棧式分配各單元之間的調(diào)用關(guān)系遵循“后進先出”模式活動記錄的建立和撤消也滿足“后進先出”模式用棧分配活動記錄分配方法:當(dāng)激活一個程序單元時,其活動記錄就動態(tài)地分配于棧頂。電子科技大學(xué)計算機科學(xué)與工程學(xué)院R的活動記錄Q的活動記錄P的活動記錄如:P調(diào)用Q,Q調(diào)用R.........電

6、子科技大學(xué)計算機科學(xué)與工程學(xué)院3.堆分配由于動態(tài)變量表示的數(shù)據(jù)對象,它的長度、個數(shù)都有可能在執(zhí)行中改變,即在其生存期中動態(tài)改變,就不可能在棧上為這樣的對象作分配。出現(xiàn)下列情況時,必須用堆式分配:(1)單元活動結(jié)束后,局部變量的值還需保留;(2)調(diào)用單元與被調(diào)用單元的生存期不滿足嵌套關(guān)系,即出現(xiàn)交叉現(xiàn)象。電子科技大學(xué)計算機科學(xué)與工程學(xué)院代碼靜態(tài)數(shù)據(jù)棧堆存儲空間的組織電子科技大學(xué)計算機科學(xué)與工程學(xué)院第五節(jié)參數(shù)傳遞先看例子:procedureswap(a,b:integer);vartemp:integer;begintemp:=a;a:=b;b:=tempend

7、;……callswap(x,y);…...形式參數(shù)實在參數(shù)1.程序單元間通信方式有非局部環(huán)境和參數(shù)傳遞2.參數(shù),形參,實參3.參數(shù)傳遞的三種類型:數(shù)據(jù)參數(shù)傳遞過程參數(shù)傳遞類型參數(shù)傳遞幾點說明:以調(diào)用swap(i,a[i])為例,且調(diào)用前i=3a的幾個元素分別為7,1,4,5,81.引用調(diào)用(傳地址)在單元中對形參的引用,實際上是對形式單元中實參地址的間接引用將實參的地址傳遞給相應(yīng)的形參swap(i,a[i]);相當(dāng)于執(zhí)行:a:=i的地址;b:=a[3]的地址;temp:=a?;(temp=3)a?:=b?;(i=4)b?:=temp;(a[3]=temp=3

8、)執(zhí)行結(jié)果:i=4,a[3]=32.值調(diào)用形參只起局

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。