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

正文內(nèi)容

8hh第6章運(yùn)行時(shí)存儲(chǔ)空間組織-展示頁

2025-01-20 07:32本頁面
  

【正文】 譯程序 可完全確定 程序中數(shù)據(jù)項(xiàng)所在地址 (通常為相應(yīng)于各數(shù)據(jù)區(qū)起始地址的位移量 )。 (3)不允許 采用 動(dòng)態(tài) 數(shù)據(jù)結(jié)構(gòu) , 即程序運(yùn)行過程中不允許申請和釋放存儲(chǔ)空間 。 (1) 數(shù)組的 上下界 必須 是常數(shù) 。 FORTRAN語言 不允許 有 遞歸 過程 ,每個(gè)數(shù)據(jù)名所需存儲(chǔ)空間的大小是常量 (即 不允許 含 可變體積 的數(shù)據(jù) ), 且所有數(shù)據(jù)名的性質(zhì)是完全確定的 (不允許 出現(xiàn) 動(dòng)態(tài) 確定其性質(zhì)的數(shù)據(jù)名 )。 3. 堆式動(dòng)態(tài)分配策略 若程序語言允許用戶 動(dòng)態(tài)地申請和釋放 存儲(chǔ)空間 , 并且 申請和釋放之間 不一定 遵守 “先申請后釋放 ”的原則 , 則必須讓運(yùn)行程序擁有一個(gè)大存儲(chǔ)區(qū) (堆 ), 申請時(shí)從堆中分配一塊 , 釋放時(shí)退還給堆 , 這種方法叫 堆式動(dòng)態(tài)分配策略 。 例如 , FORTRAN語言 2. 棧式動(dòng)態(tài)分配策略 若程序語言 允許有遞歸過程 和 可變數(shù)組 , 則程序 數(shù)據(jù)空間的分配 需 采用 動(dòng)態(tài) 策略 , 即在程序運(yùn)行 時(shí)進(jìn)行 數(shù)據(jù)空間的分配 , 此時(shí)目標(biāo)程序 可用 棧 作為動(dòng)態(tài)的數(shù)據(jù)空間 。 例如 , 目標(biāo)程序 運(yùn)行時(shí) , 源程序中各種變量 、 常量 等如何在存儲(chǔ)器中 存放 ? 如何對它們進(jìn)行 訪問 ? 源程序中各種變量 、 常量的 作用域 和生存期 如何確定 ? 遞歸過程 的數(shù)據(jù)空間 如何在運(yùn)行過程中實(shí)現(xiàn) 動(dòng)態(tài)的分配 ? 這些問題 對于編譯程序是 非常復(fù)雜又十分重要的 。第 6章 運(yùn)行時(shí)存儲(chǔ)空間組織 前面討論了對源程序進(jìn)行 靜態(tài)分析 的 編譯程序 的不同階段 , 這些分析僅取決于源程序本身 的特性 , 與 目標(biāo)機(jī) 及 目標(biāo)機(jī)的操作系統(tǒng)特性 無關(guān) 。 但編譯程序的最終目的是把源程序翻譯成能在 目標(biāo)機(jī) 上運(yùn)行的 目標(biāo)程序 , 這就要求編譯程序不僅能生成目標(biāo)代碼 , 還要在 生成目標(biāo)代碼 之前 進(jìn)行目標(biāo)程序 運(yùn)行環(huán)境的設(shè)計(jì) 和 數(shù)據(jù)空間的分配 。 分配 目標(biāo)程序 數(shù)據(jù)空間的基本策略 : 1. 靜態(tài)分配策略 若一個(gè)程序語言 不允許有遞歸過程 , 不允許含可變體積的 數(shù)據(jù)項(xiàng) 或 待定性質(zhì)的名字 , 則在編譯時(shí)能 完全確定其程序的每個(gè)數(shù)據(jù)項(xiàng)目的存儲(chǔ)空間位置 , 這種策略叫 靜態(tài)分配策略 。 程序 運(yùn)行時(shí) , 每當(dāng)進(jìn)入一 個(gè)子程序 , 其所需的數(shù)據(jù)空間就動(dòng)態(tài)地 分配于棧頂 , 一旦該子程序 運(yùn)行結(jié)束 , 其所占用的空間 就 釋放 , 這種方法叫 棧式動(dòng)態(tài)分配策略 。 靜態(tài) 存儲(chǔ)分配 簡單的 棧式 存儲(chǔ)分配 嵌套過程語言的棧式實(shí)現(xiàn) 堆式 動(dòng)態(tài)存儲(chǔ)分配 參數(shù)傳遞補(bǔ)遺 靜態(tài)存儲(chǔ)分配 若 編譯時(shí) 能 確定程序運(yùn)行 時(shí)所需存儲(chǔ)空間的大小 , 則 編譯 時(shí) 能 安排 好 程序 運(yùn)行 時(shí)的全部數(shù)據(jù)空間 , 并能確定每個(gè)數(shù)據(jù)項(xiàng) 的地址 , 這種存儲(chǔ)分配方法叫做 靜態(tài)分配 。 故 FORTRAN程序可 靜態(tài) 分配存儲(chǔ)空間 。 (2) 過程調(diào)用 不允許遞歸 。 適于 靜態(tài) 存儲(chǔ)分配 的語言需滿足的條件 : 滿足條件 的語言有 FORTRAN, BASIC等 。 由于過程調(diào)用不允許遞歸 , 因此數(shù)據(jù)項(xiàng)的存儲(chǔ)地址與過程相聯(lián)系 。 采用靜態(tài)存儲(chǔ)分配時(shí) , 不存在對存儲(chǔ)區(qū)的再利用問題 , 目標(biāo)程序執(zhí)行時(shí)不必進(jìn)行 運(yùn)行時(shí)存儲(chǔ)空間管理 , 因此 , 過程進(jìn)入和退出很簡單 。 在編譯過程中 , 給程序中 變量 或 數(shù)組 分配存儲(chǔ)單元的一般方法為 : 為每個(gè) 變量 (或 數(shù)組 )確定一個(gè) 有序整數(shù)對 , 并把 這一對整數(shù) 填入符號表相應(yīng)登記項(xiàng)的信息欄中 。 各數(shù)據(jù)區(qū)的起始地址在編譯時(shí)暫不確定 , 待各程序段全部編譯 完后 , 再由 連接裝配程序 最終確定 , 并將各程序段的目標(biāo)代碼組裝成一個(gè)完整的目標(biāo)程序 。 形式單元 用來存放過程調(diào)用時(shí)與形參對應(yīng)的實(shí)參地址或值 。 C語言除了不允許含可變數(shù)組外 , 就是這樣一種語言 。 else return (1)。 do{ scanf (“%d” , num)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1