版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、主要內(nèi)容:主要內(nèi)容:l 詞法分析過程涉及的幾個(gè)問題詞法分析過程涉及的幾個(gè)問題l 詞法分析器的生成技術(shù)詞法分析器的生成技術(shù) 正則表達(dá)式正則表達(dá)式 有限自動(dòng)機(jī)有限自動(dòng)機(jī)l 有關(guān)詞法分析器的幾個(gè)問題和處理方法:有關(guān)詞法分析器的幾個(gè)問題和處理方法: 詞法分析器的功能、分類詞法分析器的功能、分類 單詞的分類、單詞的分類、Token表示表示 保留字保留字 空格符、制表符和換行符空格符、制表符和換行符 復(fù)合型符號(hào)復(fù)合型符號(hào) 括號(hào)類匹配預(yù)檢括號(hào)類匹配預(yù)檢 字符串空間字符串空間 詞法錯(cuò)誤校正詞法錯(cuò)誤校正 詞法分析結(jié)束詞法分析結(jié)束l詞法分析器功能:詞法分析器功能:l 讀源程序的字符序列讀源程序的字符序列, ,逐個(gè)
2、拼出單詞逐個(gè)拼出單詞, ,并并構(gòu)造相應(yīng)的內(nèi)部表示構(gòu)造相應(yīng)的內(nèi)部表示TOKEN.TOKEN.同時(shí)檢查源程序同時(shí)檢查源程序中的詞法錯(cuò)誤中的詞法錯(cuò)誤. .l引入引入TokenToken的原因:的原因:l 編譯程序總是用某種程序語言書寫的程編譯程序總是用某種程序語言書寫的程序,語言的操作對(duì)象只能是該語言規(guī)定的各序,語言的操作對(duì)象只能是該語言規(guī)定的各種數(shù)據(jù)。而編譯程序的操作對(duì)象是程序中的種數(shù)據(jù)。而編譯程序的操作對(duì)象是程序中的各種語法單位,因此,必須把它們表示成某各種語法單位,因此,必須把它們表示成某種數(shù)據(jù)結(jié)構(gòu)形式。種數(shù)據(jù)結(jié)構(gòu)形式。 CharList 獨(dú)獨(dú) 立立詞法分析器詞法分析器語法分析語法分析Toke
3、nList 附附 屬屬詞法分析器詞法分析器語法分析語法分析callTokenCharListlTokenToken表示最小的語義單位表示最小的語義單位- - -單詞的信息。單詞的信息。即單詞內(nèi)部表示的數(shù)據(jù)結(jié)構(gòu)形式。即單詞內(nèi)部表示的數(shù)據(jù)結(jié)構(gòu)形式。 單詞不是程序設(shè)計(jì)語言中的語法概念,是編譯程單詞不是程序設(shè)計(jì)語言中的語法概念,是編譯程序中引進(jìn)的一個(gè)概念。是最小的語義單位,不能序中引進(jìn)的一個(gè)概念。是最小的語義單位,不能分割分割lTokenToken中需要記錄有關(guān)單詞的信息:中需要記錄有關(guān)單詞的信息: 單詞的標(biāo)志碼單詞的標(biāo)志碼($($id,$intCid,$intC, ,) )標(biāo)識(shí)單詞的種類標(biāo)識(shí)單詞的種
4、類-詞法信息詞法信息 單詞的特征屬性(標(biāo)識(shí)符名,符號(hào)表地址等)單詞的特征屬性(標(biāo)識(shí)符名,符號(hào)表地址等) - - -語義信息語義信息l標(biāo)識(shí)符:字母打頭的字母標(biāo)識(shí)符:字母打頭的字母/ /數(shù)字串?dāng)?shù)字串l整常數(shù):數(shù)字打頭的數(shù)字串整常數(shù):數(shù)字打頭的數(shù)字串l實(shí)常數(shù):整數(shù)實(shí)常數(shù):整數(shù). .整數(shù)整數(shù)l保留字:保留字:beginbegin,endend,varvar,readread,writewrite,integerinteger,realreall符號(hào)符號(hào) :+ +,* *,( (,) ),: :,:=:=,; ;l控制控制 : ( (換行符)換行符)l標(biāo)識(shí)符的標(biāo)識(shí)符的TokenToken: : ($id
5、,$id,標(biāo)識(shí)符)如標(biāo)識(shí)符)如($($id,x)id,x)l整常數(shù)的整常數(shù)的Token: ($Token: ($intCintC, ,整常數(shù))如整常數(shù))如 ($ $intC,5)intC,5)l實(shí)常數(shù)的實(shí)常數(shù)的Token: ($Token: ($realCrealC, ,實(shí)常數(shù))如實(shí)常數(shù))如 $ $realC,0.5)realC,0.5)l保留字的保留字的Token: ($begin,-),($end,-)Token: ($begin,-),($end,-)l符號(hào)詞的符號(hào)詞的Token: ($plus,-),($Token: ($plus,-),($multmult,-),-), ($ ($L
6、parenLparen,-),-)l換行符的換行符的Token: ($line,-)Token: ($line,-) ($begin,-) ($var,-) ($id, x) ($colon,-) ($real,-) ($semi,-) l例如下述例如下述MicroMicro的代碼:的代碼: begin begin varvar x : real; x : real; 經(jīng)詞法分析器處理后,它將轉(zhuǎn)換為如下的經(jīng)詞法分析器處理后,它將轉(zhuǎn)換為如下的 TokenToken序列:序列:v標(biāo)識(shí)符和常量的處理標(biāo)識(shí)符和常量的處理: 詞法信息可確定,語義信息形式的確定詞法信息可確定,語義信息形式的確定: a a
7、語義信息的長(zhǎng)度有限制時(shí),直接用語義信息的長(zhǎng)度有限制時(shí),直接用 標(biāo)識(shí)符或常量本身標(biāo)識(shí)符或常量本身 b b 沒有長(zhǎng)度限制時(shí),構(gòu)造標(biāo)識(shí)符或常沒有長(zhǎng)度限制時(shí),構(gòu)造標(biāo)識(shí)符或常 量表,語義信息中為其在表中的地量表,語義信息中為其在表中的地 址(字符串空間址(字符串空間節(jié)省存貯空間)節(jié)省存貯空間)v保留字的處理保留字的處理:識(shí)別保留字的方法:識(shí)別保留字的方法: 1.建立保留字表;順序、散列、散列順序建立保留字表;順序、散列、散列順序 2.拼寫的同時(shí)進(jìn)行判斷拼寫的同時(shí)進(jìn)行判斷 自動(dòng)機(jī)自動(dòng)機(jī) v 運(yùn)算符的處理運(yùn)算符的處理: 不區(qū)分,統(tǒng)一成一類不區(qū)分,統(tǒng)一成一類 區(qū)分,每個(gè)運(yùn)算符為一類區(qū)分,每個(gè)運(yùn)算符為一類v 空
8、格符和制表符以及換行符的處理空格符和制表符以及換行符的處理 1.無用的空格符和制表符要?jiǎng)h掉;無用的空格符和制表符要?jiǎng)h掉; 2.字符串內(nèi)的空格不能刪;字符串內(nèi)的空格不能刪; 3.換行符不能刪。用于錯(cuò)誤定位換行符不能刪。用于錯(cuò)誤定位v 復(fù)合型特殊符,如復(fù)合型特殊符,如“:=”的處理的處理 讀到讀到“:”時(shí)不能判斷是否為冒號(hào),必須讀下時(shí)不能判斷是否為冒號(hào),必須讀下 一字符。一字符。v括號(hào)類配對(duì)預(yù)檢括號(hào)類配對(duì)預(yù)檢l括號(hào)類:括號(hào)類: begin begin end ,if end ,if then, , ,( ) then, , ,( )l處理方法:處理方法: 對(duì)每類括號(hào)設(shè)置一個(gè)計(jì)數(shù)器(初值對(duì)每類括號(hào)設(shè)
9、置一個(gè)計(jì)數(shù)器(初值=0=0) 每當(dāng)遇到開括號(hào),則計(jì)數(shù)器加每當(dāng)遇到開括號(hào),則計(jì)數(shù)器加1 1 每當(dāng)遇到閉括號(hào)時(shí),計(jì)數(shù)器減每當(dāng)遇到閉括號(hào)時(shí),計(jì)數(shù)器減1 1 詞法分析結(jié)束時(shí),如果計(jì)數(shù)器詞法分析結(jié)束時(shí),如果計(jì)數(shù)器 0 0,則,則 表明括號(hào)不匹配。表明括號(hào)不匹配。v字符串空間字符串空間l目的:減少冗余,節(jié)省空間,提高訪問速度目的:減少冗余,節(jié)省空間,提高訪問速度l方法:字符數(shù)組存放字符串,描述字符串信息:方法:字符數(shù)組存放字符串,描述字符串信息: 下標(biāo)下標(biāo) 長(zhǎng)度長(zhǎng)度 l詞法錯(cuò)誤種類:詞法錯(cuò)誤種類:l 語言不允許的符號(hào):語言不允許的符號(hào):# #l 括號(hào)類配對(duì)錯(cuò)誤:括號(hào)類配對(duì)錯(cuò)誤:l 單詞的后繼符錯(cuò)(偶爾):?jiǎn)卧~的后繼符錯(cuò)(偶爾):l詞法錯(cuò)誤校正:詞法錯(cuò)誤校正:l a a 刪除已被讀過的字符,并重新掃刪除已被讀過的字符
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)業(yè)土地流轉(zhuǎn)租賃合同法律風(fēng)險(xiǎn)防范手冊(cè)4篇
- 2025年度面包磚原材料供應(yīng)合同4篇
- 2025年度內(nèi)衣行業(yè)培訓(xùn)與咨詢服務(wù)合同2篇
- 二零二五年度綠色農(nóng)業(yè)田地租賃合同樣本4篇
- 二零二五年度民用無人機(jī)運(yùn)營(yíng)管理合同4篇
- 2025年度廚房設(shè)備安裝與智能化升級(jí)改造合同范本3篇
- 2025版銀行存款賬戶變更及撤銷合同模板3篇
- 二零二五年度垂釣園租賃合同數(shù)據(jù)安全保密合同4篇
- 2025年度苗木種植與水資源利用保護(hù)合同范本4篇
- 2025年度內(nèi)資股東股權(quán)投資風(fēng)險(xiǎn)評(píng)估合同3篇
- 2024年國(guó)家工作人員學(xué)法用法考試題庫(kù)及參考答案
- 國(guó)家公務(wù)員考試(面試)試題及解答參考(2024年)
- 《阻燃材料與技術(shù)》課件 第6講 阻燃纖維及織物
- 同等學(xué)力英語申碩考試詞匯(第六版大綱)電子版
- 人教版五年級(jí)上冊(cè)遞等式計(jì)算100道及答案
- 2024年部編版初中語文各年級(jí)教師用書七年級(jí)(上冊(cè))
- 2024年新課標(biāo)全國(guó)Ⅰ卷語文高考真題試卷(含答案)
- 湖南省退休人員節(jié)日慰問政策
- QB/T 5998-2024 寵物尿墊(褲)(正式版)
- 4P、4C、4R-營(yíng)銷理論簡(jiǎn)析
- 《電力信息系統(tǒng)信息安全檢查規(guī)范》
評(píng)論
0/150
提交評(píng)論