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

正文內(nèi)容

[工學]第05章語義分析上(編輯修改稿)

2025-11-15 00:13 本頁面
 

【文章內(nèi)容簡介】 Off。 RecBodyIR *Next。 } RecBodyIR。 //記錄類型的域表鏈; ? Typedef struct{ String FieldName。 TYPEIR *FieldType。 UniBodyIR *Next。 } UniBodyIR。 //聯(lián)合類型的域表鏈; 21 《編譯原理》電子教案 韶關學院計算機系程細柱 運行時值的表示 ?非結構類型有: 整型、實型、布爾類型、字符類型、 枚舉類型、子界類型、指針類型 ?有序類型: 以上類型,除 實型 、 指針 外 22 《編譯原理》電子教案 韶關學院計算機系程細柱 有序類型的常量表示: ? 整型常量: ord(N) = N ? 布爾常量: ord(false)=0, ord(true)=1 ? 字符常量: ord(C) = ASCⅡ(C) ? 枚舉常量: 設有枚舉類型 (D,A,B),則有 ord(D)=0,ord(A)=1,ord(B)=2 ? 子界常量: 設有子界類型 C1..C2,則值空間 為 [ord(C1)...ord(C2)] 23 《編譯原理》電子教案 韶關學院計算機系程細柱 符號表 ? 標識符的作用: 為語義檢查和代碼生成提供 標識符的語義信息。 聲明部分: 定義了各種對象及對應的屬性和 使用規(guī)則。 程序體: 對所定義的對象進行各種操作。 $id idname idname AttributeIR ? 必要性 Token: 新表- 符號表 (種類、類型等信息): 24 《編譯原理》電子教案 韶關學院計算機系程細柱 ? 有關符號表的操作: 添加、作用域刪除、查詢 ? 處理符號表的模塊: 定義符號表數(shù)據(jù)結構 定義符號表上的操作 ? 標識符的處理思想: ? 遇到定義性標識符時,在符號表中填寫被定義標識符的符號項; ? 當遇到使用性標識符時,用該標識符查符號表求得其屬性。 25 《編譯原理》電子教案 韶關學院計算機系程細柱 ?標識符的作用域: 標識符有效的最大程序段。 ?嵌套作用域規(guī)則: 當存在標識符的嵌套聲明時,最近定義的屬性為標識符的當前屬性。 ?局部化單位: 允許有聲明的程序段。 P: Var x ,y,z Var x,m,n x:=1。 m:=x+1。 y:=x+1。 x:=0。 Q: 26 《編譯原理》電子教案 韶關學院計算機系程細柱 ?符號表的種類: 全局符號表、局部符號表。 ?符號表的操作特點: ? 在 聲明部分,定義標識符,要加入符號表; ? 在表達式或語句中,使用標識符,應查表 查其屬性; ? 每個標識符在其作用域結束后,要刪掉該 屬性表項; ? 體現(xiàn)嵌套作用規(guī)則和局部化。 27 《編譯原理》電子教案 韶關學院計算機系程細柱 符號表查找技術 常用符號表查表法: ?順序查表法 ?折半查表法 ?散列查表法 常用符號表結構: ?二叉樹局部符號表 ?外拉鏈散列式全局符號表 ?嵌套式全局符號表 28 《編譯原理》電子教案 韶關學院計算機系程細柱 一、順序查表法 ? 表構造法: 依次添加表元素 ? 表結構: 數(shù)組、鏈表 ? 查表法: 按表的順序查 ? Pascal語言描述: SymbTable = ARRAY [0..N] OF Iterm。 Iterm = RECORD id : String。 Attrib : AttributeIR END SymbTable = RECORD id : String。 Attrib : AttributeIR。 Next : ? SymbTable END ? 優(yōu)點: 簡單 ? 缺點: 查表速度慢 ? 平均查表速度: (N+1)/2 29 《編譯原理》電子教案 韶關學院計算機系程細柱 二、折半查表法 ? 數(shù)據(jù)結構: 排序的數(shù)組、鏈表和二叉樹 ? 特點: 查表時每次比較中間關鍵字且速度較快 ? Pascal語言描述: SymbTable = RECORD id : String。 Attrib : AttributeIR。 Left, Right : ? SymbTable END 例: 數(shù)組 AB, BB, DA, ED, FF, GA, ZA ED BB AB DA GA FF ZA 30 《編譯原理》電子教案 韶關學院計算機系程細柱 ? 查表速度: log2(N+1) ? 查表算法: while(lowhigh){ mid=(low+high)/2。 midvalue=L[mid]。 if(a==midvalue) return(mid)。 if(amidvalue)then high=mid1。 else
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1