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

正文內(nèi)容

目標(biāo)程序運(yùn)行時的組織教材-文庫吧在線文庫

2025-03-15 02:27上一頁面

下一頁面
  

【正文】 ? 表達(dá)式求值 如何組織表達(dá)式的計算 ? 存儲分配 如何組織不同作用域變量的存儲 ? 過程實(shí)現(xiàn) 如何以例程實(shí)現(xiàn)過程,函數(shù),參數(shù)傳遞 任務(wù):編譯程序?qū)δ繕?biāo)程序運(yùn)行時的組織(設(shè)計運(yùn)行環(huán)境和分配存儲) 如 通常存儲區(qū)布局可為: 目標(biāo)代碼區(qū) 靜態(tài)數(shù)據(jù)區(qū) Stack heap 運(yùn)行環(huán)境和存儲分配 設(shè)計分析 邏輯階段:在目標(biāo)代碼生成前,作準(zhǔn)備 實(shí)質(zhì): 關(guān)聯(lián)( Binding) 將源程序的文本 ? 程序運(yùn)行動作的實(shí)現(xiàn) 源文件中的名字 N ? 運(yùn)行時的存儲 S 在語義學(xué)中,使用術(shù)語 environment函數(shù)表示 env: N→S (N 到 S的映射 ) 靜態(tài)文本中 運(yùn)行時動作及為實(shí)現(xiàn)其動作的準(zhǔn)備 (與運(yùn)行時數(shù)據(jù)對象的表示有關(guān))過程定義 過程名 執(zhí)行過程體 過程體 控制數(shù)據(jù)對象的分配,為執(zhí)行過程體使用源文本中同樣的名字 目標(biāo)程序中不同的數(shù)據(jù)空間因?yàn)橐粋€過程可以是遞歸的,這時同一個名字在不同的時間可能代表不同的存儲單元 決定運(yùn)行管理復(fù)雜程度的因素 —— 源語言本身 1. 允許的數(shù)據(jù)類型的多少 2 .語言中允許的數(shù)據(jù)項(xiàng)是 靜態(tài)確定 動態(tài)確定 3 .程序結(jié)構(gòu) 決定名字的作用域的規(guī)則和結(jié)構(gòu) A . 段結(jié)構(gòu) B . 過程定義不嵌套,只允許過程遞歸調(diào)用 C . 分程序結(jié)構(gòu) 分程序嵌套 過程定義嵌套 4存儲類別的多少 Global Static Local dynamic 術(shù)語 ? 靜態(tài):如果一個名字的性質(zhì)通過說明語句或隱或顯規(guī)則而定義,則稱這種性質(zhì)是“靜態(tài)”確定的。 ? (7) begin r := 5。 wri te /n 。 ? 例 : main ? 全局變量的說明 ? proc R ? …… ? end R。 const a=10。 read(b)。 ?? P Q call R R( x , y)。 B2:begin real d, e。因此,可以把處理過程的存儲辦法應(yīng)用到處理分程序中。第 一,對每個過程或分程序都建立有自己的棧頂指示器 TOP,代替原來僅有過程的棧頂指示器 , 每個 TOP的值保存在各自活動記錄中。 3. 參數(shù)個數(shù)和形式單元 4. DISPAY表。 參數(shù)傳遞 (1)procedure exchangel(i,j:integer)。 (3)procedure swap({var} x,y:integer)。 (13) writeln(‘ a=‘ ,a)。 ? ,就像使用局部變量一樣使用這些形式單元。 x:=y; y:=temp end; 調(diào)用 swap(i,a[i]) 其結(jié)果等價于執(zhí)行下列運(yùn)算: 1把 i和 a[i]的地址分別放到 x和 y相應(yīng)的單元 a1,a2 2( temp :=x; )temp的內(nèi)容置為 a1所指單元中存的內(nèi)容 3 (x :=y。 (9) printf(“ a is now %d,b is now %d\n” ,a,b)。 writeln(h(2)) end。 ? (3) begin writeln(h(2)) end。 因此 , 這個方法有時也被稱為復(fù)制進(jìn) , 復(fù)制出 , 或復(fù)制存儲 。 名字傳遞 這是傳遞機(jī)制中最復(fù)雜的參數(shù)了 。 ++x。我們總是在調(diào)用程序的環(huán)境中計算自變,而總是在過程的定義環(huán)境中執(zhí)行過程。 申請 m個空間 , 令首地址為 a。 堆式動態(tài)存儲分配 堆變量 堆空間的管理策略 減少碎片的技術(shù) 空間的釋放 C++的堆變量 Int *Ptr。 Myclass::Myclass(){ Set(0,0)。 Cout“ two” endl。} I n t A r r a y o p e r a t o r = ( c o n s t IntArray)。 // initialize array for (int i=0。 分配時每次都分配指針 available所指的塊 , 然后available指向相鄰的下一塊 。通常在選擇時需考慮下列因素:用戶的要求;請求分配量的大小分布;分配和釋放的頻率以及效率對系統(tǒng)的重要等等。 unsigned usedsize。 unsigned nunits。 if (ps. freesize nunits) return NULL。 return (void *)(newp+1)。 prevs. next = ps. next。為了實(shí)現(xiàn)并行工作,在存儲塊中要設(shè)置回收子程序訪問的信息。但這樣做極浪費(fèi)空間。 它的優(yōu)點(diǎn)在于:可做出安排以使每個方法都有一個可預(yù)測的偏移量 ,而且也不再需要用一系列表查詢遍歷類的層次結(jié)構(gòu) 。 virtual void h()。 virtual void g()。由于是通過類繼承的搜索來找到這個機(jī)制的,所以該機(jī)制還實(shí)現(xiàn)繼承性與動態(tài)聯(lián)編。 ( 2) 第二個階段為回收階段 , 所有未加標(biāo)記的存儲塊回收到一起 , 并插入空閑塊鏈表中 , 然后消除在存儲塊中所加的全部標(biāo)記 。 這個過程稱作垃圾回收 ( grabage collection) 。 (p!=bp) (p!= memptr)。 newp = ps. next。 memptrs. freesize = MEMSIZE1。 }Header。 此時的空閑塊鏈表按空閑的塊的大小從大到小排序 。按這種方法,初始化時存儲空間是一個整塊。 標(biāo)準(zhǔn)過程dispose是釋放空間 . new與 dispose不斷改變著堆存儲器的使用情況 。 int * ia。 } one Defalt Destructor two m=5 Destructor 堆式動態(tài)存儲分配 Const int ArraySize=24。 } Myclass:: ?Myclass() { Cout“ Destructor” endl。n=j。 | public virtual void draw() }。 while k=n do begin di:=uili+ 1。 p(a[i])。} 中,若做了一個如 p(a[i])的調(diào)用時,其結(jié)果是計算++(a[i])。 } main() {int a=1。 ? (7) begin f:=m+n end{f}。 () begin f:=m+n end{f}。 gen(call,,,entry(id))} (2)arglist ? arglist1,E{把 arglist.q 的末端; (3)arglist ? E 過程作為參數(shù)傳遞 三種環(huán)境:詞法環(huán)境 傳遞環(huán)境 活動環(huán)境 program param(input,output)。 *x=*y。 x:=y; y:=temp end; 調(diào)用 swap(a,b) 過程將不會影響 a和 b的值。 例如:過程 swap(x,y:integer)。 (8) y:=temp (9) end。 a[i]:=a[j]。 變 量 e B 5 的 T O P 數(shù) 組 C 的 內(nèi) 情 向 量 變 量 e 和 d B 4 的 T O P B 2 的 TOP 數(shù) 組 B 的 內(nèi) 情 向 量 變 量 z K B 1 的 T O P D D I S P L A Y 6 形 式 單 元 m,n 5 參 數(shù) 個 數(shù): 2 4 調(diào) 用 時 的 棧 頂 地 址 (老 T O P ) 3 全 局 D I S P L A Y 地 址 2 返 回 地 址 1 老 S P 0 過 程 的 T O P ,指 向 活 動 記 錄 之 頂 B Z B 1 T O 的 內(nèi) 情 向 量 的 P D I S P L A Y D I S P L A Y 形式單元 m , n 2 形式單元 m , n 2 連 接 數(shù) 據(jù) 連 接 數(shù) 據(jù) A 的 T O P A 的 T O P ∶ ∶ ∶ ∶ (a) (b) (a) 到 達(dá) 標(biāo) 號 B 1 處 。 : 每個過程被當(dāng)作是 0層分程序。 按照過程處理辦法,意味著必須一層一層地通過“返回” 來恢復(fù)所要到達(dá)的那個分程序的數(shù)據(jù)區(qū),但不能直接到達(dá)。 L6: 5 4 end。 ?全局 DISPLAY地址 0
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1