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

正文內容

第六章中間代碼生成-文庫吧

2025-07-17 13:20 本頁面


【正文】 的預期類型是否匹配。 ? 類型信息的用途 – 查錯、確定名字需要的內存空間、計算數(shù)組元素的地址、類型轉換、選擇正確的運算符 ? 本節(jié)的內容 – 確定名字的類型, – 變量的存儲空間布局(相對地址) 類型表達式 ? 類型表達式( type expression):表示類型的結構 – 基本類型 – 類名 – 類型構造算子作用于類型 ? array[數(shù)字,類型表達式 ] ? record[字段 /類型對的列表 ](可以用符號表表示) – 函數(shù)類型構造算子 ?:參數(shù)類型 ?結果類型 – 笛卡爾積: s X t – 可以包含取值為類型表達式的變量 類型表達式的例子 ? 類型例子 – 元素個數(shù)為 3X4的二維數(shù)組 – 數(shù)組的元素的記錄類型 – 該記錄類型中包含兩個字段 : x和 y,其類型分別是 float和 integer ? 類型表達式 – array[3, array[4,record[(x,float),(y,float)]] 類型等價 ? 不同的語言有不同的類型等價的定義 ? 結構等價 – 或者它們是相同的基本類型 – 或者是相同的構造算子作用于結構等價的類型而得到的。 – 或者一個類型是另一個類型表達式的名字 ? 名等價 – 類型名僅僅代表其自身 聲明 ? 文法 – D ? T id 。 D | ε – T ? B C | record ‘{’ D ‘}’ – C ? int | float – C ? ε | [num] C ? 含義: – D生成一系列聲明; – T生成不同的類型; – B生成基本類型 int/float; – C表示分量,生成 [num]序列; – 注意 record中包含了各個字段的聲明。字段聲明和變量聲明的文法一致。 局部變量的存儲布局 ? 變量的類型可以確定變量需要的內存 – 即類型的寬度 – 可變大小的數(shù)據(jù)結構只需要考慮指針 ? 函數(shù)的局部變量總是分配在連續(xù)的區(qū)間; – 因此給每個變量分配一個相對于這個區(qū)間開始處的相對地址 ? 變量的類型信息保存在符號表中; 計算 T的類型和寬度的 SDT ? 綜合屬性: type, width ? 全局變量 t和 w用于將類型和寬度信息從 B傳遞到 C? ε – 相當于 C的繼承屬性,因為總是通過拷貝來傳遞,所以在SDT中只賦值一次。 也可以把 t和 w替換為 SDT運行的例子 ? 輸入: int[2][3] 作用域和符號表 ? 在具有語句塊概念的編程語言中,標識符 x在最內層的 x聲明的作用域中。 ? 每個作用域對應于一個符號表;多個符號表形成樹狀結構。 ? 在語義分析時,通過棧來存放當前符號表及其祖先。 聲明序列的 SDT( 1) ? 在處理一個過程 /函數(shù)時,局部變量應該放到單獨的符號表中去; ? 這些變量的內存布局獨立 – 相對地址從 0開始; – 假設變量的放置和聲明的順序相同; ? SDT的處理方法 – 變量 offset記錄當前可用的相對地址; – 每“分配”一個變量, offset的值增加相應的值 ? (, , offset) – 在當前符號表 (位于棧頂 )中創(chuàng)建符號表條目,記錄標識符的類型,偏移量 聲明序列的 SDT( 2) ? 我們可以把 offset看作 D的繼承屬性 – D中第一個變量的相對地址 – P?{ =0} D – D? T id。 { = + 。} D1 記錄字段的處理 ? T
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1