概述問題提出文稿_第1頁
概述問題提出文稿_第2頁
概述問題提出文稿_第3頁
概述問題提出文稿_第4頁
概述問題提出文稿_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

問題的提問題的提不同的源語言結(jié)構(gòu),所需的運(yùn)行環(huán)境持不同。本章僅以最簡(jiǎn)單的、基于過程的、順序執(zhí)行的程序?yàn)榍疤嵊懻?,即源程序的基本結(jié)構(gòu)是順序執(zhí)行的過程,過程與過程之間僅通過函過程、活動(dòng)、生過程、活動(dòng)、生存活動(dòng)活動(dòng)的生存期第一條指最后一條指令令2運(yùn)行環(huán)境與名字的X是運(yùn)行環(huán)境與名字的X是一個(gè)對(duì)象*是一個(gè)存儲(chǔ)單元*是可執(zhí)行的代碼討論僅限于X是一個(gè)數(shù)據(jù)對(duì)象3靜態(tài)與動(dòng)聲明時(shí)靜態(tài)與動(dòng)聲明時(shí)關(guān)心的是聲明的作用域,即當(dāng)一個(gè)名字被引用時(shí),在不同的作用域中與該名字的不同聲明結(jié)合時(shí)關(guān)心的是,即當(dāng)一個(gè)名字在運(yùn)行時(shí)被實(shí)際分配的存儲(chǔ)單元,名字與存儲(chǔ)單元結(jié)合的這段時(shí)間被稱,顯然此生存期應(yīng)該和名字的生存期一4靜態(tài)與動(dòng)靜態(tài)通靜態(tài)與動(dòng)靜態(tài)通過說明語靜動(dòng)態(tài)在程序運(yùn)行動(dòng)5靜態(tài)與動(dòng)靜態(tài)動(dòng)態(tài)運(yùn)行環(huán)靜態(tài)與動(dòng)靜態(tài)動(dòng)態(tài)運(yùn)行環(huán)6變量與值的兩步映變變量與值的兩步映變量名字的映常量名字的射7例x:realconst例x:realconst8注*環(huán)境、狀態(tài)注*環(huán)境、狀態(tài)的區(qū)別*環(huán)境與語言特性相關(guān)9運(yùn)行環(huán)完全靜態(tài)運(yùn)行環(huán)完全靜態(tài)環(huán)基于棧的環(huán)完全動(dòng)態(tài)環(huán)運(yùn)行環(huán)境與存儲(chǔ)組目標(biāo)運(yùn)行環(huán)境與存儲(chǔ)組目標(biāo)代靜態(tài)數(shù)棧堆靜態(tài)分配策動(dòng)靜態(tài)分配策動(dòng)態(tài)分配策靜態(tài)存儲(chǔ)分在編譯時(shí)能夠確靜態(tài)存儲(chǔ)分動(dòng)態(tài)存儲(chǔ)分在編動(dòng)態(tài)存儲(chǔ)分在編譯時(shí)不能確是運(yùn)行1、棧式動(dòng)態(tài)存儲(chǔ)分棧區(qū)2、堆式動(dòng)態(tài)存儲(chǔ)在內(nèi)存中2、堆式動(dòng)態(tài)存儲(chǔ)在內(nèi)存中開辟一個(gè)稱為堆的存儲(chǔ)區(qū),程序運(yùn)行每當(dāng)需要(申請(qǐng))時(shí),就按照某種分配原則在堆的自由區(qū)(可占用區(qū))中,分配能滿足其需要的存儲(chǔ)空間給它,使用后需要通過釋放區(qū)運(yùn)行時(shí)存儲(chǔ)分配的一個(gè)原則是,盡可能對(duì)數(shù)對(duì)象進(jìn)行靜態(tài)分頁存儲(chǔ)區(qū)保存的存儲(chǔ)區(qū)保存的對(duì)代碼數(shù)據(jù)空控制運(yùn)行8.1代碼過程運(yùn)行8.1代碼過程過程…過程存儲(chǔ)分配的重要單元─過程存儲(chǔ)分配的重要單元─過程的活動(dòng)記錄(ProcedureActivation一塊連續(xù)的存儲(chǔ)區(qū),被用來存放過函數(shù)的一次調(diào)用執(zhí)行所需要的信頁語義分析C語義分析C.7 數(shù)說明與調(diào)用翻函數(shù)調(diào)用的語義處理活動(dòng)記錄基本內(nèi)活動(dòng)記錄基本內(nèi)運(yùn)行 靜態(tài)存運(yùn)行 靜態(tài)存儲(chǔ)分靜態(tài)存儲(chǔ)分例給出FORTRAN程序如下例給出FORTRAN程序如下*50BUFC例給出FORTRAN程序如下例給出FORTRAN程序如下CHARACTERFUNCTION 運(yùn)行 *50BUF運(yùn)行 *50BUFC*80BUFFER運(yùn)行 靜運(yùn)行 靜態(tài)分配對(duì)語言的限運(yùn)行 基于棧的運(yùn)運(yùn)行 基于棧的運(yùn)行時(shí)環(huán)境的動(dòng)態(tài)存儲(chǔ)棧(局部變量、臨時(shí)變量函數(shù)所需數(shù)據(jù)空管理過程活動(dòng)的記錄信息(過程用中斷時(shí)當(dāng)前機(jī)器的狀態(tài)信息運(yùn)行 活動(dòng)記錄的運(yùn)行運(yùn)行 活動(dòng)記錄的運(yùn)行時(shí)調(diào)用生長(zhǎng)縮小當(dāng)前過程的運(yùn)行 例設(shè)有如下PASCAL程序運(yùn)行 例設(shè)有如下PASCAL程序全局變量的說Q主程序執(zhí)行語運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 關(guān)鍵運(yùn)行 關(guān)鍵技術(shù)記錄AR的位跟蹤辦法運(yùn)行 局部變機(jī)器狀態(tài)信運(yùn)行 局部變機(jī)器狀態(tài)信實(shí)參返回地DL:控制鏈SL:存取鏈。((((((((((((jmpjmpint0lod1lit0opr0sto1opr0退棧并返回調(diào)用點(diǎn)c:=b+a;cal0調(diào)用過程calljmp0運(yùn)行 M調(diào)用過程…運(yùn)行 M調(diào)用過程…tb運(yùn)行 解決對(duì)非局部量運(yùn)行 解決對(duì)非局部量的引Display—嵌套層次顯示K直接外現(xiàn)行最外 主程序設(shè)為第0程序結(jié)構(gòu)例RQcallPcall程序結(jié)構(gòu)例RQcallPcallprocR(c,d)end/*R*/procP Q /*Q /*PR運(yùn)行 用Display表的方運(yùn)行 用Display表的方運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 例7.5:設(shè)有C(gcd運(yùn)行 例7.5:設(shè)有C(gcd)vu%gcd()運(yùn)行 (老運(yùn)行 (老運(yùn)行 main_block(/*P1運(yùn)行 main_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論