




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第四章
符號(hào)表&詞法分析一、符號(hào)表及其作用二、符號(hào)表的內(nèi)容三、存儲(chǔ)分配&符號(hào)表的組織四、標(biāo)識(shí)符的處理五、符號(hào)表的結(jié)構(gòu)和存取六、詞法分析七、取單詞八、讀標(biāo)識(shí)符九、詞法分析器的自動(dòng)生成十、一個(gè)實(shí)例1一、符號(hào)表及其作用1.編譯程序邏輯圖表格管理錯(cuò)誤處理源程序詞法分析語(yǔ)法分析中間代碼生成中間代碼優(yōu)化目標(biāo)代碼生成目標(biāo)程序2一、符號(hào)表及其作用(續(xù)一)符號(hào)表(單詞屬性表)常量表變量表(標(biāo)識(shí)符表)保留字表特殊符號(hào)表數(shù)組信息表過(guò)程信息表……名字屬性3一、符號(hào)表及其作用(續(xù)二)符號(hào)表靜態(tài)表:保留字表,標(biāo)準(zhǔn)函數(shù)表等
動(dòng)態(tài)表:標(biāo)識(shí)符表,過(guò)程信息表等符號(hào)表查填隱式說(shuō)明語(yǔ)言的符號(hào)表查填: FORTRAN語(yǔ)言顯式說(shuō)明語(yǔ)言的符號(hào)表查填:pascal,c等符號(hào)表的作用:輔助語(yǔ)義正確性檢查、輔助目標(biāo)代碼的生成4二、符號(hào)表的內(nèi)容單詞的基本屬性(Pascal語(yǔ)言為例)1、保留字的屬性2、特殊符號(hào)的屬性3、常量的屬性eg.begin,end,procedure,to,for,with屬性eg.+,*,/,<,<>,等屬性屬性:名字、值、類型eg.100,false,0.5等5二、符號(hào)表的內(nèi)容(續(xù)一)4標(biāo)識(shí)符的屬性標(biāo)準(zhǔn)類型標(biāo)識(shí)符:integer,char,real常量標(biāo)識(shí)符簡(jiǎn)單變量標(biāo)識(shí)符過(guò)程/函數(shù)標(biāo)識(shí)符數(shù)組標(biāo)識(shí)符名字、值、類型名字、類型、地址vari,j,k:integer;vara:array[1..10]ofinteger;名字、類型、維數(shù)、上下界、下標(biāo)類型、數(shù)據(jù)區(qū)首地址等Proceduresearch(a:char);名字、形參、局部變量、過(guò)程/函數(shù)入口地址等eg.constpi=3.14159266二、符號(hào)表的內(nèi)容(續(xù)二)一個(gè)單詞一個(gè)屬性值:1)常量的屬性值為常量本身或者存放常量的單元地址,也即指向存放常量有關(guān)信息的常量表的入口指針。2)標(biāo)識(shí)符的屬性值為標(biāo)識(shí)符本身或者標(biāo)識(shí)符表的地址,也即存放標(biāo)識(shí)符有關(guān)信息的符號(hào)表的入口指針7二、符號(hào)表的內(nèi)容(續(xù)三)符號(hào)表的內(nèi)容符號(hào)的名字符號(hào)的類型地址碼數(shù)組的維數(shù)、下標(biāo)過(guò)程/函數(shù)參數(shù)…...8三、存儲(chǔ)分配&符號(hào)表的組織存儲(chǔ)分配原則:(參見(jiàn)例P81)1、標(biāo)號(hào)、類型標(biāo)識(shí)符和過(guò)程標(biāo)識(shí)符不分配單元。 (1)標(biāo)號(hào)對(duì)應(yīng)機(jī)器語(yǔ)言是一個(gè)地址,不需要分配單元。 (2)類型標(biāo)識(shí)符定義了某種類型,不需要分配單元。 (3)過(guò)程標(biāo)識(shí)符沒(méi)有值,也不需要分配單元。2、常量、簡(jiǎn)單變量、數(shù)組、形參和函數(shù)等需要分配單元。9三、存儲(chǔ)分配&符號(hào)表的組織(續(xù)一)靜態(tài)分配:編譯時(shí)能夠確定所需存儲(chǔ)空間的大小,并進(jìn)行存儲(chǔ)分配。1、同一分程序的不同分量分配在不同單元。2、內(nèi)外層中的不同量分配在不同的單元。形參的分配。eg.Proceduresum1(varsum:integer,I:integer);beginsum:=sum+I;end;10形參的分配。eg.Proceduresum1(varsum:integer,I:integer);beginsum:=sum+I;end;
原則:1、如果形參是按值調(diào)用,則分配一個(gè)單元存放實(shí)參的值2、如果形參是按名調(diào)用,則分配一個(gè)單元存放實(shí)參的地址。三、存儲(chǔ)分配&符號(hào)表的組織(續(xù)二)11四、標(biāo)識(shí)符的處理Programsumm(input,output)varI,sum:integer;procedurexxx(I:integer)begin…end;beginsum:=0;forI:=1to100dosum:=sum+I;end.12四、標(biāo)識(shí)符的處理標(biāo)識(shí)符的出現(xiàn)定義性出現(xiàn)應(yīng)用性出現(xiàn)填表查表13五、符號(hào)表的結(jié)構(gòu)和存取
符號(hào)表結(jié)構(gòu):無(wú)序符號(hào)表有序符號(hào)表 樹(shù)結(jié)構(gòu)符號(hào)表?xiàng)7?hào)表
hash表14六、詞法分析任務(wù):詞法分析階段:
掃描源程序的ASCII碼序列,拼出每一個(gè)單詞,并把每個(gè)單詞的ASCII碼序列替換為所謂的機(jī)內(nèi)表示TOKEN形式(屬性字),這時(shí)還檢查詞法錯(cuò)誤。掃描源程序識(shí)別單詞轉(zhuǎn)換成屬性字15六、詞法分析(續(xù)一)詞法分析的兩種處理結(jié)構(gòu)源程序詞法分析L1程序字符單詞符號(hào)表源程序詞法分析語(yǔ)法分析單詞符號(hào)表字符回送單詞161、單詞的種類單詞由字符組成。<字符>::=<字母>|<數(shù)字>|<特定符號(hào)>|<無(wú)效字符><字母>::=a|b|c|..z|A|B|C|...|Z<數(shù)字>::=0|1|2|3|...|9<特定符號(hào)>::=+|-|*|/|:=|<>|<|….<無(wú)效字符>::=<回車符>|<換行符>|<制表符>symbol=(ident,constsy,notop,mul,div,add,sub….)單詞的機(jī)內(nèi)表示采用長(zhǎng)度統(tǒng)一的二元形式(token字)(單詞種別碼,單詞的自身值)七、取單詞17流程圖七、取單詞跳過(guò)空格符和回車符字母特殊符號(hào)數(shù)字讀標(biāo)識(shí)符查保留字表保留字sy取數(shù)特殊符號(hào)syidentsy結(jié)束開(kāi)始errorNY查到NYconstsysyNYNY18八、讀標(biāo)識(shí)符1、標(biāo)識(shí)符的文法規(guī)則<標(biāo)識(shí)符>::=<字母>{<字母>|<數(shù)字>}<字母>::=a|b|c|..z|A|B|C|...|Z<數(shù)字>::=0|1|2|3|...|92、標(biāo)識(shí)符的狀態(tài)轉(zhuǎn)換圖S0S2字母非字母數(shù)字S1字母數(shù)字3、讀標(biāo)識(shí)符子程序(略)19九、詞法分析器的自動(dòng)生成詞法分析程序的自動(dòng)生成問(wèn)題Lex語(yǔ)言20十、一個(gè)實(shí)例1、查填符號(hào)表(見(jiàn)書(shū))2、流程圖21十、一個(gè)實(shí)例流程圖字母,數(shù)字Tempword:=Symbol+ch
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個(gè)人之間農(nóng)業(yè)貸款借款合同
- 家長(zhǎng)與孩子二零二五年度家務(wù)勞動(dòng)責(zé)任履行協(xié)議
- 2025年度泳池救生員安全責(zé)任及應(yīng)急響應(yīng)規(guī)范協(xié)議
- 2025年度智慧城市建設(shè)預(yù)付款合作合同
- 二零二五年度酒店管理營(yíng)業(yè)執(zhí)照及品牌加盟轉(zhuǎn)讓合同
- 二零二五年度房屋維修基金頂賬返還協(xié)議書(shū)
- 二零二五年度外墻保溫涂料產(chǎn)品環(huán)保認(rèn)證與綠色標(biāo)識(shí)合同
- 二零二五年度女方婚前財(cái)產(chǎn)協(xié)議婚姻安全與婚姻風(fēng)險(xiǎn)規(guī)避合同
- 二零二五年度裝配行業(yè)產(chǎn)品研發(fā)終止合同
- 石家莊市2025年度勞動(dòng)合同電子化管理規(guī)范
- 心理測(cè)量學(xué)(全套教學(xué)課件)
- 高職英語(yǔ)課程說(shuō)課稿課件
- 大班綜合《要是你給老鼠玩手機(jī)》課件
- DB37-T 5026-2022《居住建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)》
- DN900鋼管dn800E管定向鉆穿越京杭大運(yùn)河施工方案
- 全套IECQ QC080000-2017 有害物質(zhì)過(guò)程管理體系程序文件
- 冀教版三年級(jí)數(shù)學(xué)下冊(cè)《第二單元第2課時(shí) 兩位數(shù)乘兩位數(shù)(進(jìn)位)的乘法》教學(xué)課件PPT小學(xué)公開(kāi)課
- 成都市入戶申請(qǐng)表
- 主題班會(huì):預(yù)防流行性感冒課件
- 對(duì)外援助成套項(xiàng)目管理辦法(試行)
- 管道吹掃、試壓檢驗(yàn)批質(zhì)量驗(yàn)收記錄表
評(píng)論
0/150
提交評(píng)論