編譯原理 第十章 目標程序運行時的存儲組織_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第9章符號表第十章第十章目標程序運行時的存儲組織目標程序運行時的存儲組織課前索引課前索引【課前思考】◇回顧一般的編譯過程能否找到本章所講內(nèi)容在哪個過程?◇為什么編譯程序要考慮目標程序運行時存儲區(qū)的管理和組織?◇請歸納C語言和PAL語言的程序結(jié)構(gòu)和數(shù)據(jù)類型的不同點【學習目標】全面了解目標程序運行時存儲區(qū)的整體布局;每種存儲區(qū)的組織方式和管理方法;并通過實例著重掌握,對允許過程嵌套定義的情況,棧式動態(tài)存儲分配的組織方式和運行時進棧退棧的活動

2、實現(xiàn)方法。【學習指南】在代碼生成前,編譯程序必須進行目標程序運行環(huán)境的配置和數(shù)據(jù)空間的分配。一般來講,假如編譯程序從操作系統(tǒng)中得到一塊存儲區(qū)以使目標程序在其上運行,該存儲區(qū)需容納生成的目標代碼和目標代碼運行時的數(shù)據(jù)空間。我們這里所說的運行時的存儲區(qū)組織,是指目標程序運行時的數(shù)據(jù)空間的管理和組織?!倦y重點】◇目標程序運行時,存儲區(qū)域的整體布局,以及各區(qū)域的作用?!蟾鞣N不同類型的數(shù)據(jù)表示?!笤试S過程嵌套定義的情況,棧式動態(tài)分配的組織管理。◇

3、對過程的調(diào)用,進入和退出時,棧式動態(tài)分配的工作原理。◇過程活動紀錄的各項內(nèi)容和它們的作用,以及活動紀錄的組織方式?!筮^程參數(shù)傳遞的不同方式?!局R結(jié)構(gòu)】第11章代碼優(yōu)化10.1數(shù)據(jù)空間的三種不同使用方法和管理方法數(shù)據(jù)空間的三種不同使用方法和管理方法數(shù)據(jù)空間的使用和管理方法分成三種:靜態(tài)存儲分配、棧式動態(tài)存儲分配和堆式動態(tài)存儲分配。10.1.1靜態(tài)存儲分配靜態(tài)存儲分配這種存儲分配非常簡單,如果在編譯時能確定目標程序運行中所需的全部數(shù)據(jù)空間

4、的大小,編譯時安排好目標程序運行時的全部數(shù)據(jù)空間,確定每個數(shù)據(jù)對象的存儲位置,稱這種分配策略為靜態(tài)存儲分配。如果一個名字的性質(zhì)通過說明語句或隱式或顯式規(guī)則而定義,則稱這種性質(zhì)是“靜態(tài)“確定的。像FTRAN這樣的語言,其程序是段結(jié)構(gòu)的,即由主程序段和若干子程序段組成。各程序段中定義的名字一般是彼此獨立的(除公共塊和等價語句說明的名字以外),也即各段的數(shù)據(jù)對象名的作用域在各段中,同一個名字在不同的程序段表示不同的存儲單元,不會在不同段間互相

5、引用、賦值。另外它的每個數(shù)據(jù)名所需的存儲空間大小都是常量(即不許含可變體積的數(shù)據(jù),如可變數(shù)組),且所有數(shù)據(jù)名的性質(zhì)是完全確定的。這樣,整個程序所需數(shù)據(jù)空間的總量在編譯時完全確定,從而每個數(shù)據(jù)名的地址就可靜態(tài)進行分配。換句話說,一旦存儲空間的某個位置分配給了某個數(shù)據(jù)名(關(guān)聯(lián)起來)之后,在目標程序的整個運行過程中,此位置(地址)就屬于該數(shù)據(jù)名了。圖10.4給出一個FTRAN77的程序例子。在圖10.5中描述了該程序中局部變量的靜態(tài)存儲位置。

6、圖10.4一個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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論