版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、編 譯 原 理,1,學(xué)習(xí)交流PPT,第九章 符號表,2,學(xué)習(xí)交流PPT,在編譯程序工作的過程中,需要不斷收集、記錄和使用源程序中一些語法符號的類型和特征等相關(guān)信息。這些信息一般以表格形式存儲于系統(tǒng)中。如常數(shù)表、變量名表、數(shù)組名表、過程名表、標(biāo)號表等等,統(tǒng)稱為符號表。 對于符號表組織、構(gòu)造和管理方法的好壞會直接影響編譯系統(tǒng)的運(yùn)行效率。,第九章 符號表,3,學(xué)習(xí)交流PPT,一、符號表的作用和功能,收集符號屬性 上下文語義的合法性檢查的依據(jù) 作為目標(biāo)代碼生成階段地址分配的依據(jù),詞法分析:a是一個單詞; 語法分析:a出現(xiàn)在一條變量聲明語句和一條賦值語句中; 語義分析:a是一個整形變量,并分配地址。,4
2、,學(xué)習(xí)交流PPT,二、符號表的內(nèi)容,標(biāo)識符的名字 與標(biāo)識符有關(guān)的信息 類型信息(包括種類和屬性) 地址碼 層次信息 行號信息 ,5,學(xué)習(xí)交流PPT,二、符號表的內(nèi)容,例:Pascal語言的名字信息表nametab,名字標(biāo)識符,名字種類,可以是常量(constant)、變量(variable)、類型(type)、過程(procedure),名字所在的程序體的靜態(tài)層次。規(guī)定主程序的層次為1,主程序中定義的層次為2,依次類推,名字的類型,類型有整型(ints)、字符型(chars)、布爾型(bool)、數(shù)組(arrays),對于無類型的名字填入notype,一個布爾量,用于標(biāo)明名字是否為變量形參名,
3、當(dāng)名字是否為變量形參名時填入false,其他情況填入true或不填,當(dāng)名字為數(shù)組類型或數(shù)組變量名時,ref指向該數(shù)組在數(shù)組信息表中的位置;當(dāng)名字為過程名時,ref指向該過程在程序體表(btab)中的位置;其他情況ref為0,adr, 當(dāng)名字為變量名時(包括形參,存入該變量(或形參)在相應(yīng)活動記錄中分類的存貯單元的相對地址;對于過程名,填入他們相應(yīng)代碼的入口地址 val, 當(dāng)名字為變量名時,填入他們的相應(yīng)值 size, 當(dāng)名字為類型名時,填入該類型數(shù)據(jù)所需存貯單元的數(shù)目,指向同一程序體中定義的上一個名字在nametab中的位置,每個程序體在nametab中登記的第一個名字的link為0,6,學(xué)習(xí)
4、交流PPT,二、符號表的內(nèi)容,例:Pascal語言的名字信息表nametab,type a=array1.10, 1.10 of integer;,nametab,7,學(xué)習(xí)交流PPT,例:Pascal語言的數(shù)組信息表atab,數(shù)組的下標(biāo)類型,數(shù)組元素類型,當(dāng)元素為數(shù)組時,它指向該元素數(shù)組信息在atab表中的位置,其他情況為0,數(shù)組下限,數(shù)組上限,數(shù)組元素的體積,數(shù)組本身的體積,二、符號表的內(nèi)容,8,學(xué)習(xí)交流PPT,type a=array1.10, 1.10 of integer;,nametab,atab,9,學(xué)習(xí)交流PPT,三、符號表的組織,按照屬性種類完全相同的那些符號組織 在一起; 把
5、所有語言中的符號都組織在一張符號 表中; 根據(jù)符號屬性相似程度分類組織成若干 張表,每張表中記錄的符號都有比較多 的相同屬性。,10,學(xué)習(xí)交流PPT,三、符號表的組織,假設(shè)有下列三類符號及其所需屬性,第一種組織法:按屬性分類,優(yōu)點(diǎn):管理一致,空間效率高 缺點(diǎn):管理復(fù)雜,11,學(xué)習(xí)交流PPT,三、符號表的組織,假設(shè)有下列三類符號及其所需屬性,第二種組織法:單一組織,優(yōu)點(diǎn):管理一致,集中單一 缺點(diǎn):管理復(fù)雜,12,學(xué)習(xí)交流PPT,三、符號表的組織,假設(shè)有下列三類符號及其所需屬性,第三種組織法:折中方法,13,學(xué)習(xí)交流PPT,四、符號表的數(shù)據(jù)結(jié)構(gòu),線性表符號表項按照符號被掃描到的先 后順序登錄,a
6、b a d c b ,14,學(xué)習(xí)交流PPT,四、符號表的數(shù)據(jù)結(jié)構(gòu),有序表符號表項按照符號的字符代碼串 的值的大小排列,a b a d c b ,15,學(xué)習(xí)交流PPT,四、符號表的數(shù)據(jù)結(jié)構(gòu),散列表符號表項的位置由對該符號進(jìn)行 某種函數(shù)操作所得到的函數(shù)值來確定,a b a d c b ,16,學(xué)習(xí)交流PPT,五、符號表與作用域,int main() int a=0; int b=0; int b=1; int a=2; printf(“%d,%dn”,a,b); int b=3; printf(“%d,%dn”,a,b); printf(“%d,%dn”,a,b); printf(“%d,%dn”,a,b); ,17,學(xué)習(xí)交流PPT,int main() int a=0; int b=0; int b=1; int a=2; printf(“%d,%dn”,a,b); int b=3; printf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車險銷售知識課件
- 車隊安全培訓(xùn)工作總結(jié)
- 2026年下半年傳染病防控工作培訓(xùn)試題及答案
- 2025年大促期間倉儲發(fā)貨應(yīng)急預(yù)案落地與時效保障專項總結(jié)(3篇)
- 酒店客房預(yù)訂與房價調(diào)整制度
- 銀行合規(guī)經(jīng)營內(nèi)部控制制度
- 車間物流安全培訓(xùn)課件
- 車間安全管理培訓(xùn)
- 車間安全生產(chǎn)培訓(xùn)圖文課件
- 車間安全教育培訓(xùn)感想課件
- 2024-2025學(xué)年重慶市南開中學(xué)七年級(上)期末道德與法治試卷(含答案)
- 【語文】廣東省深圳市寶安區(qū)寶城小學(xué)二年級上冊期末復(fù)習(xí)試題(含答案)
- 2025西藏日喀則市薩迦縣招聘專職網(wǎng)格員11人筆試備考題庫及答案解析
- 節(jié)能工程監(jiān)理質(zhì)量評估報告范本
- 攝影取景角度課件
- 2025寧夏黃河農(nóng)村商業(yè)銀行科技人員社會招聘考試筆試參考題庫及答案解析
- 統(tǒng)編版語文一年級上冊無紙化考評-趣味樂考 玩轉(zhuǎn)語文 課件
- 2025年北京市海淀區(qū)中小學(xué)教師招聘筆試參考試題及答案解析
- 全科接診流程訓(xùn)練
- 2026年新《煤礦安全規(guī)程》培訓(xùn)考試題庫(附答案)
- 繼續(xù)教育部門述職報告
評論
0/150
提交評論