版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第9章符號(hào)表第十章第十章目標(biāo)程序運(yùn)行時(shí)的存儲(chǔ)組織目標(biāo)程序運(yùn)行時(shí)的存儲(chǔ)組織課前索引課前索引【課前思考】◇回顧一般的編譯過(guò)程能否找到本章所講內(nèi)容在哪個(gè)過(guò)程?◇為什么編譯程序要考慮目標(biāo)程序運(yùn)行時(shí)存儲(chǔ)區(qū)的管理和組織?◇請(qǐng)歸納C語(yǔ)言和PAL語(yǔ)言的程序結(jié)構(gòu)和數(shù)據(jù)類型的不同點(diǎn)【學(xué)習(xí)目標(biāo)】全面了解目標(biāo)程序運(yùn)行時(shí)存儲(chǔ)區(qū)的整體布局;每種存儲(chǔ)區(qū)的組織方式和管理方法;并通過(guò)實(shí)例著重掌握,對(duì)允許過(guò)程嵌套定義的情況,棧式動(dòng)態(tài)存儲(chǔ)分配的組織方式和運(yùn)行時(shí)進(jìn)棧退棧的活動(dòng)
2、實(shí)現(xiàn)方法。【學(xué)習(xí)指南】在代碼生成前,編譯程序必須進(jìn)行目標(biāo)程序運(yùn)行環(huán)境的配置和數(shù)據(jù)空間的分配。一般來(lái)講,假如編譯程序從操作系統(tǒng)中得到一塊存儲(chǔ)區(qū)以使目標(biāo)程序在其上運(yùn)行,該存儲(chǔ)區(qū)需容納生成的目標(biāo)代碼和目標(biāo)代碼運(yùn)行時(shí)的數(shù)據(jù)空間。我們這里所說(shuō)的運(yùn)行時(shí)的存儲(chǔ)區(qū)組織,是指目標(biāo)程序運(yùn)行時(shí)的數(shù)據(jù)空間的管理和組織?!倦y重點(diǎn)】◇目標(biāo)程序運(yùn)行時(shí),存儲(chǔ)區(qū)域的整體布局,以及各區(qū)域的作用?!蟾鞣N不同類型的數(shù)據(jù)表示?!笤试S過(guò)程嵌套定義的情況,棧式動(dòng)態(tài)分配的組織管理?!?/p>
3、對(duì)過(guò)程的調(diào)用,進(jìn)入和退出時(shí),棧式動(dòng)態(tài)分配的工作原理?!筮^(guò)程活動(dòng)紀(jì)錄的各項(xiàng)內(nèi)容和它們的作用,以及活動(dòng)紀(jì)錄的組織方式?!筮^(guò)程參數(shù)傳遞的不同方式。【知識(shí)結(jié)構(gòu)】第11章代碼優(yōu)化10.1數(shù)據(jù)空間的三種不同使用方法和管理方法數(shù)據(jù)空間的三種不同使用方法和管理方法數(shù)據(jù)空間的使用和管理方法分成三種:靜態(tài)存儲(chǔ)分配、棧式動(dòng)態(tài)存儲(chǔ)分配和堆式動(dòng)態(tài)存儲(chǔ)分配。10.1.1靜態(tài)存儲(chǔ)分配靜態(tài)存儲(chǔ)分配這種存儲(chǔ)分配非常簡(jiǎn)單,如果在編譯時(shí)能確定目標(biāo)程序運(yùn)行中所需的全部數(shù)據(jù)空間
4、的大小,編譯時(shí)安排好目標(biāo)程序運(yùn)行時(shí)的全部數(shù)據(jù)空間,確定每個(gè)數(shù)據(jù)對(duì)象的存儲(chǔ)位置,稱這種分配策略為靜態(tài)存儲(chǔ)分配。如果一個(gè)名字的性質(zhì)通過(guò)說(shuō)明語(yǔ)句或隱式或顯式規(guī)則而定義,則稱這種性質(zhì)是“靜態(tài)“確定的。像FTRAN這樣的語(yǔ)言,其程序是段結(jié)構(gòu)的,即由主程序段和若干子程序段組成。各程序段中定義的名字一般是彼此獨(dú)立的(除公共塊和等價(jià)語(yǔ)句說(shuō)明的名字以外),也即各段的數(shù)據(jù)對(duì)象名的作用域在各段中,同一個(gè)名字在不同的程序段表示不同的存儲(chǔ)單元,不會(huì)在不同段間互相
5、引用、賦值。另外它的每個(gè)數(shù)據(jù)名所需的存儲(chǔ)空間大小都是常量(即不許含可變體積的數(shù)據(jù),如可變數(shù)組),且所有數(shù)據(jù)名的性質(zhì)是完全確定的。這樣,整個(gè)程序所需數(shù)據(jù)空間的總量在編譯時(shí)完全確定,從而每個(gè)數(shù)據(jù)名的地址就可靜態(tài)進(jìn)行分配。換句話說(shuō),一旦存儲(chǔ)空間的某個(gè)位置分配給了某個(gè)數(shù)據(jù)名(關(guān)聯(lián)起來(lái))之后,在目標(biāo)程序的整個(gè)運(yùn)行過(guò)程中,此位置(地址)就屬于該數(shù)據(jù)名了。圖10.4給出一個(gè)FTRAN77的程序例子。在圖10.5中描述了該程序中局部變量的靜態(tài)存儲(chǔ)位置。
6、圖10.4一個(gè)FTRAN77的例子(1)PROGRAMCNSUME(2)ACTER50BUF程序體所擁有的靜態(tài)量BUF(3)INTEGERNEXT程序體所擁有的靜態(tài)量NEXT(4)ACTERCPRDUCE程序體所擁有的靜態(tài)量C(5)DATANEXT1BUF(6)6C=PRDUCE()(7)BUF(NEXT:NEXT)=C(8)NEXT=NEXT1(9)IF(C.EN.)GOTO6(10)WRITE((A))BUF(11)END(12)A
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論