版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第二章詞法分析2
確定有限自動機(jī)DFA確定有限自動機(jī)(DFA)的定義DFA的兩種表示方法DFA接受的集合DFA的確定性用DFA描述單詞自動機(jī)的實現(xiàn)有限自動機(jī)FA(FiniteAutomata)
有限自動機(jī)FA作為一種識別裝置,它能準(zhǔn)確識別正規(guī)集,即識別正規(guī)表達(dá)式所表示的語言,引入FA這個理論,正是為詞法分析程序的自動構(gòu)造尋找一種特殊的方法和工具。確定有限自動機(jī)(DFA:DeterministicFiniteAutomata)
非確定有限自動機(jī)(NFA:NondeterministicFiniteAutomata)
1確定有限自動機(jī)的定義確定有限自動機(jī)M為一個五元組:M=(S,,S0,f,Z),其中:S是一個有窮狀態(tài)集,它的每個元素稱為一個狀態(tài);是一個有窮字母表,它的每個元素稱為一個輸入字符;S0S,是唯一的一個初始狀態(tài)(開始狀態(tài));f是狀態(tài)轉(zhuǎn)換函數(shù):SS,且單值函數(shù).f(Si,a)=Sk
表示:當(dāng)前狀態(tài)為Si,遇輸入字符a時,自動機(jī)將唯一地轉(zhuǎn)換到狀態(tài)Sk,稱Sk為Si的一個后繼狀態(tài);ZS,是終止?fàn)顟B(tài)集(可接受狀態(tài)集、結(jié)束狀態(tài)集),其中的每個元素稱為終止?fàn)顟B(tài)(可接受狀態(tài)、結(jié)束狀態(tài)),Z可空.一個DFA的例子DFAM=({S0,S1,S2,S3},{a,b},f,S0,{S3}),其中f定義為:
f(S0,a)=S1f(S2,a)=S1f(S0,b)=S2f(S2,b)=S3f(S1,a)=S3f(S3,a)=S3f(S1,b)=S2f(S3,b)=S32DFA的兩種表示方式
a.狀態(tài)轉(zhuǎn)換圖:用有向圖表示自動機(jī)1.結(jié)點表示狀態(tài):1)
非終止?fàn)顟B(tài)由單圓圈圍住的狀態(tài)標(biāo)識來表示;2)
終止?fàn)顟B(tài)由雙圓圈圍住的狀態(tài)標(biāo)識來表示;3)開始狀態(tài)由一個箭頭指向的狀態(tài)結(jié)點來表示.2.狀態(tài)轉(zhuǎn)換函數(shù)用有向邊來表示,若f(Si,a)=Sk,則由表示Si的狀態(tài)節(jié)點到表示Sk的狀態(tài)節(jié)點發(fā)出一條標(biāo)識為a的有向邊.DFAM=({S0,S1,S2,S3},{a,b},f,S0,{S3}),其中f定義為:
f(S0,a)=S1f(S2,a)=S1f(S0,b)=S2f(S2,b)=S3f(S1,a)=S3f(S3,a)=S3f(S1,b)=S2f(S3,b)=S3狀態(tài)轉(zhuǎn)換圖S1S0S2S3aababab,bb.狀態(tài)轉(zhuǎn)換矩陣:用二維數(shù)組描述DFA轉(zhuǎn)換矩陣的行表示確定有限自動機(jī)的狀態(tài);標(biāo)識初始狀態(tài)和終止?fàn)顟B(tài):一般約定,第一行表示開始狀態(tài)S0
,或在右上角標(biāo)注“+”;右上角標(biāo)有“*”或“-”的狀態(tài)為終止?fàn)顟B(tài);轉(zhuǎn)換矩陣的列表示確定有限自動機(jī)的輸入字符;矩陣元素表示確定有限自動機(jī)的狀態(tài)轉(zhuǎn)換函數(shù).DFAM=({S0,S1,S2,S3},{a,b},f,S0,{S3}),其中f定義為:
f(S0,a)=S1f(S2,a)=S1f(S0,b)=S2f(S2,b)=S3f(S1,a)=S3f(S3,a)=S3f(S1,b)=S2f(S3,b)=S3
輸入字符狀態(tài)abS0+S1,S2S1S3S2S2S1,S3S3*S3S33DFA接受的字符串對于中的任何字符串t,若存在一條從初始結(jié)點到某一終止結(jié)點的路徑,且這條路上所有弧上的標(biāo)記符連接成的字符串等于t,則稱t可為DFAM所接受(識別).注意路徑中可以多次經(jīng)過終止?fàn)顟B(tài).若DFAM的初始狀態(tài)同時又是終止?fàn)顟B(tài),則空字符串可為DFAM所接受(識別).DFAM所能接受的字符串的全體記為L(M).
例1:L(M1)={aba,abaa,abab,abaab,…}0123abaa,b
例2:L(M2)={a,ab,abb,abbb,…}DFAM201ab
例3:L(M3)={,b,bb,bbb,…}DFAM31b4陷阱狀態(tài)例4:設(shè)有DFAM=({0,1,2,3},{a,b,c},f,{0},{3})其中f定義為:
f(0,a)=1f(0,b)=4f(1,a)=4f(1,b)=2 f(2,a)=3f(2,b)=4 f(3,a)=3f(3,b)=3 f(4,a)=4f(4,b)=401
23abaa,b4a,babb01
23abaa,bΣS
ab0+11223
3*334444445DFA的確定性初始狀態(tài)唯一.狀態(tài)轉(zhuǎn)換函數(shù)f:SS是一個單值函數(shù),也就是說,對任何狀態(tài)sS,和輸入符號a,f(S,a)唯一地確定了下一個狀態(tài),即至多確定一個狀態(tài).沒有空邊,即不接受沒有任何輸入就進(jìn)行狀態(tài)轉(zhuǎn)換(沒有輸入為的情況)。標(biāo)識符的描述L表示所有字母,L=[a-zA-Z]D表示數(shù)字,D=[0-9]則有:01LL|D6DFA描述單詞常數(shù)的描述D1=[1-9],D=[0-9]無符號整數(shù)帶符號整數(shù)實數(shù)01D1D320405..6DD.+|-D1特殊符號01{2+3EOF7DFA的兩種程序?qū)崿F(xiàn)方法_1直接轉(zhuǎn)向法:狀態(tài)轉(zhuǎn)換圖的形式每個狀態(tài)對應(yīng)一個帶標(biāo)號的switch語句例:ijkabLi:switch(CurChar){case‘a(chǎn)’: goto
Lj;case‘b’: goto
Lk;case‘Eof’: Accept;default:Error();}7DFA的兩種程序?qū)崿F(xiàn)方法_1直接轉(zhuǎn)向法:狀態(tài)轉(zhuǎn)換圖的形式每個狀態(tài)對應(yīng)一個帶標(biāo)號的switch語句例:ijkab特點:程序長但占用存儲空間少while((curChar=getchar())!=Eof)
switch(state)case1:……break;……casei:
switch(curChar){case‘a(chǎn)’:state=j;break;case‘b’:state=k;break;default:Error();}break;casej:……狀態(tài)轉(zhuǎn)換矩陣的形式:
state=S0;
curChar=readNextChar();
while(curChar!=eof&&T[state,curchar]error)
{//則當(dāng)前狀態(tài)轉(zhuǎn)為新的狀態(tài)state
=T[state,curChar];
curChar=readNextChar();
}
if(curChar==eof&&stateFinalState)return(1);elsereturn(0);特點:程序短小,但占用存儲空間多.7DFA的兩種程序?qū)崿F(xiàn)方法_2練習(xí)1設(shè)計DFA以識別所有能被3整除的無符號
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 墊片課程設(shè)計
- 2024年聯(lián)盟協(xié)議:共建行業(yè)領(lǐng)先聯(lián)盟
- 2024年度月嫂服務(wù)與母嬰用品配送合同3篇
- 系統(tǒng)工程課程設(shè)計優(yōu)化
- 2024年汽車銷售合同擔(dān)保模板附車輛檢測及評估服務(wù)3篇
- 2024年茶園管理與養(yǎng)護(hù)全面合作協(xié)議
- 2024年股權(quán)轉(zhuǎn)移及合作經(jīng)營授權(quán)協(xié)議一
- 2024年礦產(chǎn)資源勘探與開采合同標(biāo)的及礦產(chǎn)質(zhì)量
- 2024年地鐵口商鋪租賃合同規(guī)范文本正范本8篇
- 電氣自動化課程設(shè)計
- 新媒體運營工作年終總結(jié)
- 微積分(I)知到智慧樹章節(jié)測試課后答案2024年秋南昌大學(xué)
- 【MOOC】電子技術(shù)-北京科技大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年1月福建省普通高中學(xué)業(yè)水平合格性考試化學(xué)試題(解析版)
- 低空經(jīng)濟(jì)的商業(yè)化路徑分析
- 項目年終總結(jié)及明年計劃
- 新外貿(mào)業(yè)務(wù)員年終總結(jié)
- 化工廠設(shè)備安裝施工方案
- 國家電網(wǎng)公司招聘高校畢業(yè)生應(yīng)聘登記表
- 代賬公司會計主管年終總結(jié)
- 創(chuàng)新思維訓(xùn)練學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論