西安電子科技大學(xué)編譯原理.ppt

西安電子科技大學(xué)編譯原理.ppt

ID:56397923

大?。?010.50 KB

頁數(shù):19頁

時間:2020-06-16

西安電子科技大學(xué)編譯原理.ppt_第1頁
西安電子科技大學(xué)編譯原理.ppt_第2頁
西安電子科技大學(xué)編譯原理.ppt_第3頁
西安電子科技大學(xué)編譯原理.ppt_第4頁
西安電子科技大學(xué)編譯原理.ppt_第5頁
西安電子科技大學(xué)編譯原理.ppt_第6頁
西安電子科技大學(xué)編譯原理.ppt_第7頁
西安電子科技大學(xué)編譯原理.ppt_第8頁
西安電子科技大學(xué)編譯原理.ppt_第9頁
西安電子科技大學(xué)編譯原理.ppt_第10頁
資源描述:

《西安電子科技大學(xué)編譯原理.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在PPT專區(qū)-天天文庫。

1、3)--終態(tài)判斷2)--循環(huán)1)--準(zhǔn)備初值2.3.2確定的有限自動機(續(xù)3)s:=s0;ch:=nextchar();whilech≠eofloopendloop;ifthenreturn“yes”;elsereturn“no”;endif;■用算法2.1識別abb:1.s=0,ch=a2.s=1,ch=b3.s=2,ch=b4.s=3,ch=eof5.yes用算法2.1識別abab:1.s=0,ch=a2.s=1,ch=b3.s=2,ch=a4.s=1,ch=b5.s=2,ch=eof6.no輸入DFAD和輸入字符串x(eof)。D的初態(tài)為s0,終態(tài)集為F。

2、輸出若D接受x,回答“yes”,否則回答“no”。方法用下述過程識別x:算法2.1模擬DFAs:=move(s,ch);ch:=nextchar();s∈F算法2.312.3.3有限自動機的等價定義2.6若有限自動機M和M’識別同一正規(guī)集,則稱M和M’是等價的,記為M=M’?!稣?guī)式(a

3、b)*abb的NFA正規(guī)式(a

4、b)*abb的DFA特別提示:正規(guī)式與有限自動機從兩個側(cè)面表示正規(guī)集。正規(guī)式是描述,自動機是識別。因此,當(dāng)它們表示相同集合時,均存在等價的問題。22.4從正規(guī)式到詞法分析器構(gòu)造詞法分析器的一般方法和步驟:用正規(guī)式描述模式(為記號設(shè)計正規(guī)式);為每

5、個正規(guī)式構(gòu)造一個NFA,它識別正規(guī)式所表示的正規(guī)集;將構(gòu)造的NFA轉(zhuǎn)換成等價的DFA,這一過程也被稱為確定化;優(yōu)化DFA,使其狀態(tài)數(shù)最少,這一過程也被稱為最小化;根據(jù)優(yōu)化后的DFA構(gòu)造詞法分析器。問題:1.為何不直接從正規(guī)式構(gòu)造DFA? 2.為何不從NFA直接構(gòu)造詞法分析器?原因:正規(guī)式→NFA:有規(guī)范的一對一的構(gòu)造算法DFA→分析器:便于實現(xiàn)記號識別的算法32.4.1從正規(guī)式到NFA算法2.2Thompson算法輸入字母表∑上的正規(guī)式r輸出接受L(r)的NFAN方法首先分解r,然后根據(jù)下述步驟構(gòu)造NFA:<1>對ε,構(gòu)造NFAN(ε)如下。其中,s0為初態(tài),f

6、為終態(tài),此NFA接受{ε};<2>對∑上的每個字符a,構(gòu)造NFAN(a)如右上,它接受{a};<3>若N(P)和N(Q)是正規(guī)式P和Q的NFA,則(a)對正規(guī)式P

7、Q,構(gòu)造NFAN(P

8、Q)如下。其中,s0為初態(tài),f為終態(tài),此NFA接受L(P)∪L(Q);參照P20 正規(guī)式定義s0εεfεε42.4.1從正規(guī)式到NFA(續(xù)1)(b)對正規(guī)式PQ,構(gòu)造NFAN(PQ)如下。其中s0為初態(tài),f為終態(tài),此NFA接受L(P)L(Q);(c)對正規(guī)式P*,構(gòu)造NFAN(P*)如下。其中,s0為初態(tài),f為終態(tài),此NFA接受L(P*)(等價于(L(P))*);(d)對于正規(guī)式

9、(P),使用P本身的NFA,不再構(gòu)造新的NFA?!靓舠0εfεε52.4.1從正規(guī)式到NFA(續(xù)2)正規(guī)式、正規(guī)集、NFA的對應(yīng)關(guān)系:正規(guī)式正規(guī)集NFAε2.a3.P

10、Q4.PQ5.P*6.(P)L(ε)={ε}L(a)={a}L(P)∪L(Q)L(P)L(Q)(L(P))*L(P)s0εεfεεεs0εfεε62.4.1從正規(guī)式到NFA(續(xù)3)例2.11用Thompson算法構(gòu)造正規(guī)式r=(a

11、b)*abb的NFAN(r)<1>分解正規(guī)式<2>自下而上構(gòu)造NFA強調(diào):構(gòu)造過程與正規(guī)式一一對應(yīng)構(gòu)造一個新的NFA最多增加兩個狀態(tài)72.4.2從NFA到DFA<1>N

12、FA識別記號的“并行”方法例2.12從甲地到乙地,可以乘車也可以騎自行車,具體路線如右圖。其中c表示乘車,b表示騎自行車?,F(xiàn)在要求從甲地到乙地,只許乘車而不許騎自行車,該如何走?問題抽象:識別是否有從甲到乙標(biāo)記為全c的路徑試探(串行):甲c2無路可走,回退甲c1c3無路可走,回退甲c1c乙到達(dá)乙地,成功假設(shè)有足夠多的小汽車,每次均到達(dá)小汽車可能到達(dá)的全體并行:甲c{1,2}c{3,乙}到達(dá)乙地,成功82.4.2從NFA到DFA(續(xù)1)并行的方法,核心思想是將不確定的下一狀態(tài)確定化:在每試探一步時,考慮了所有的下一狀態(tài)轉(zhuǎn)移,因此所走的每一步都是確定的。NFA上識別

13、記號的確定化方法確定化的兩個方面(回顧DFA定義)計算下一狀態(tài)轉(zhuǎn)移時:<1>消除ε狀態(tài)轉(zhuǎn)移:ε-閉包(T)<2>消除多于一個的下一狀態(tài)轉(zhuǎn)移:smove(S,a)因此,用NFA識別記號,常用并行方法,而不采用串行的方法(算法不易構(gòu)造,復(fù)雜度高且回溯)92.4.2從NFA到DFA(續(xù)2)定義2.7狀態(tài)集T的ε-閉包(T)是一個狀態(tài)集,且滿足:(1)T中所有狀態(tài)屬于ε-閉包(T);(2)任何smove(ε-閉包(T),ε)屬于ε-閉包(T);(3)再無其他狀態(tài)屬于ε-閉包(T)?!龈鶕?jù)定義,ε-閉包({s2})應(yīng)是:1.s2自身{s2}(1)2.s4{s2,s4}(2

14、)3.s5{s2,s4,

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。