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

正文內(nèi)容

06-第6章-運行時存儲空間的組織和管理-編譯原理-中國科-文庫吧資料

2025-01-18 03:14本頁面
  

【正文】 al。 begin write(r: 5: 3) end。 var r: real。 small。 writeln。 show。 show end。 var r: real。 begin write(r: 5: 3) end。 var r: real。 small。 writeln。 show。 show end。 var r: real。 begin write(r: 5: 3) end。 var r: real。 small。 writeln。 show。 show end。 var r: real。 begin write(r: 5: 3) end。 var r: real。 writeln end. dynamic show small small show show show 非局部名字的訪問 實現(xiàn)動態(tài)作用域的方法 ? 深訪問 – 用控制鏈搜索運行棧 , 尋找包含該非局部名字的第一個活動記錄 ? 淺訪問 – 為每個名字 在 靜態(tài)分配的存儲空間 中保存它的當前值 – 當過程 p的新活動出現(xiàn)時 , p的局部名字 n使用在靜態(tài)數(shù)據(jù)區(qū)分配給 n的存儲單元 。 show。 small。 begin 動 態(tài)作用域 r := 。 begin r := 。 procedure small。 procedure show。 writeln end. dynamic show small small show show show 非局部名字的訪問 program dynamic(input, output)。 show。 small。 begin 靜態(tài)作用域 r := 。 begin r := 。 procedure small。 procedure show。 writeln end. dynamic show small small show show show 非局部名字的訪問 program dynamic(input, output)。 show。 small。 begin r := 。 begin r := 。 procedure small。 procedure show。 b(f) end. a ret b addm 執(zhí)行 addm時, a的活動記錄已不存在,取不到 m的值 非局部名字的訪問 ? C語言的函數(shù)聲明不能嵌套 , 函數(shù)不論在什么情況下激活 , 要訪問的數(shù)據(jù)分成兩種情況 – 非靜態(tài)局部變量 ( 包括形式參數(shù) ) , 它們分配在活動記錄棧頂?shù)哪莻€活動記錄中 – 外部變量 ( 包括定義在其它源文件之中的外部變量 ) 和靜態(tài)的局部變量 , 它們都分配在靜態(tài)數(shù)據(jù)區(qū) – 因此 C語言允許函數(shù) ( 的指針 ) 作為返回值 非局部名字的訪問 動態(tài)作用域 ? 被調(diào)用過程的非局部名字 a和它在調(diào)用過程中引用的是同樣的存儲單元 – 基于 運行時的調(diào)用關系 – 而不 是基于靜態(tài)作用域來確定 ? 新的綁定僅為被調(diào)用過程的局部名字建立 ,這些名字在被調(diào)用過程的活動記錄中占用存儲單元 – 這一點 與靜態(tài)作用域沒有區(qū)別 非局部名字的訪問 program dynamic(input, output)。 begin writeln (g(2)) end。 return addm end。 begin return m+n end。 var m: integer。( 過程作為返回值 ) var f: function (integer): integer。 begin f := a。 procedure b (g: function (integer): integer)。 begin m:= 0。 function addm (n: integer): integer。 function a: function (integer): integer。 begin c end. b調(diào)用 f時,用傳遞過來的訪問鏈來建立 f的訪問鏈 訪 問 鏈 訪 問 鏈 param c m b f, 訪 問 鏈 b 非局部名字的訪問 program ret (input, output)。 begin m := 0。 var m: integer。( 過程作為參數(shù) ) procedure b(function h(… begin writeln(h(2)) end 。 b(f) end {c}。 function f(n: integer)… begin f := m+n end {f}。 procedure c。 begin c end. 從 b的訪問鏈難以建立 f的訪問鏈 訪 問 鏈 訪 問 鏈 param c m b f 非局部名字的訪問 program param(input, output)。 begin m := 0。 var m: integer。( 過程作為參數(shù) ) procedure b(function h(… begin writeln(h(2)) end 。 b(f) end {c}。 begin f := m+n end {f}。 var m: integer。 begin writeln(h(2)) end 。 } | } 非局部名字的訪問 本節(jié)介紹 ? 無過程嵌套的靜態(tài)作用域 ( C語言 ) ? 有過程嵌套的靜態(tài)作用域 ( Pascal語言 ) ? 動態(tài)作用域 ( Lisp語言 ) 非局部名字的訪問 無過程嵌套的靜態(tài)作用域 ? 過程體中的非局部引用可以直接使用靜態(tài)確定的地址 ( 非局部數(shù)據(jù)此時就是全局數(shù)據(jù) ) ? 局部變量在棧頂?shù)幕顒佑涗浿?, 可以通過base_sp指針來訪問 ? 無須深入棧中取數(shù)據(jù) , 無須訪問鏈 ? 過程可以作為參數(shù)來傳遞 , 也可以作為結果來返回 非局部名字的訪問 有過程嵌套的靜態(tài)作用域 sort readarray exchange quicksort partition 非局部名字的訪問 有過程嵌套的靜態(tài)作用域 ? 過程 嵌套深度 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 ? 變量的嵌套深度:它的聲明所在過程的嵌套 深度作為該名字的嵌套深度 ? 訪問鏈 – 用來尋找非局部 名字的存儲單元 s a, x q (1, 9) k, v 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 p (1, 3) i, j 訪問鏈 e (1, 3) 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 p (1, 3) i, j 訪問鏈 非局部名字的訪問 非局部名字的訪問 ? 訪問非局部名字的存儲單元 假定過程 p的嵌套深度為 np, 它引用嵌套深度為 na 的變量 a, na ? np, 如何訪問 a的存儲單元 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 非局部名字的訪問 ? 訪問非局部名字的存儲單元 假定過程 p的嵌套深度為 np, 它引用嵌套深度為 na 的變量 a, na ? np, 如何訪問 a的存儲單元 – 從棧頂?shù)幕顒佑涗涢_始 , 追蹤訪問鏈 np ? na次 – 到達 a的聲明所在過程的活動記錄 – 訪問鏈的追蹤用間接操作就可完成 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 ? 訪問非局部名字的存儲單元 sort readarray exchange quicksort partition s a, x q (1, 9) k, v 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 p (1, 3) i, j 訪問鏈 e (1, 3) 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 p (1, 3) i, j 訪問鏈 非局部名字的訪問 非局部名字的訪問 ? 過程 p對變量 a訪問時 , a的地址由下面的二元組表示: ( np ? na, a在活動記錄中的偏移 ) 非局部名字的訪問 ? 建立訪問鏈 – 假定嵌套深度為 np的過程 p調(diào)用嵌套深度為 nx的過程 x (1) np nx的情況 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 這時 x肯定就聲明在 p中 非局部名字的訪問 ? 建立訪問鏈 – 假定嵌套深度為 np的過程 p調(diào)用嵌套深度為 nx的過程 x (1) np nx的情況 – 被調(diào)用過程的訪問鏈必須指向調(diào)用過程的活動記錄的訪問鏈 ? 訪問非局部名字的存儲單元 sort readarray exchange quicksort partition s a, x q (1, 9) k, v 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 p (1, 3) i, j 訪問鏈 e (1, 3) 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 p (1, 3) i, j 訪問鏈 非局部名字的訪問 非局部名字的訪問 ? 建立訪問鏈 – 假定嵌套深度為 np的過程 p調(diào)用嵌套深度為 nx的過程 x (2) np ? nx的情況 sort 1 readarray 2 exchange 2 quicksort 2 partition 3 這時 p和 x的嵌套深度分別為 1, 2, … ,nx? 1的外圍過程肯定相同 非局部名字的訪問 ? 建立訪問鏈 – 假定嵌套深度為 np的過程 p調(diào)用嵌套深度為 nx的過程 x (2) np ? nx的情況 – 追蹤訪問鏈 np ? nx + 1次 , 到達了靜態(tài)包圍 x和 p的且離它們最近的那個過程的最新活動記錄 – 所到達的活動記錄就是 x的活動記錄中的訪問鏈應該指向的那個活動記錄 ? 訪問非局部名字的存儲單元 sort readarray exchange quicksort partition s a, x q (1, 9) k, v 訪問鏈 s a, x q (1, 3) k, v 訪問鏈 q (1, 9) k, v 訪問鏈 s a
點擊復制文檔內(nèi)容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1