3词法分析 - 有穷自动机
有窮自動(dòng)機(jī)
- FAFAFA 的表示:轉(zhuǎn)換圖
- FAFAFA 定義(接收)的語(yǔ)言
- 最長(zhǎng)子串匹配原則
- 有窮自動(dòng)機(jī)FA的分類
- 確定的有窮自動(dòng)機(jī)DFA
- 非確定有窮自動(dòng)機(jī)NFA
- 帶有“空邊”的NFA
- 帶有和不帶有“空邊”的NFA的等價(jià)性
這類系統(tǒng)具有一系列離散的輸入輸出信息和有窮數(shù)目的內(nèi)部狀態(tài)(狀態(tài):概括了對(duì)過(guò)去輸入信息處理的狀況)
系統(tǒng)只需要根據(jù)當(dāng)前所處的狀態(tài)和當(dāng)前面臨的輸入信息就可以決定系統(tǒng)的后繼行為。每當(dāng)系統(tǒng)處理了當(dāng)前的輸入后,系統(tǒng)的內(nèi)部狀態(tài)也將發(fā)生改變。
- 輸入帶:用來(lái)存放輸入符號(hào)串
- 讀頭:從左向右逐個(gè)讀取輸入符號(hào),不能修改(只讀),不能往返移動(dòng)
- 有窮控制器:具有有窮個(gè)狀態(tài)數(shù),根據(jù)當(dāng)前的狀態(tài)和當(dāng)前輸入符號(hào)控制轉(zhuǎn)入下一狀態(tài)。
FAFAFA 的表示:轉(zhuǎn)換圖
結(jié)點(diǎn):FA的狀態(tài)
- 初始狀態(tài)(開(kāi)始狀態(tài)):只有一個(gè),由start箭頭指向
- 終止?fàn)顟B(tài)(接收狀態(tài)):可以有多個(gè),用雙圈表示
- 帶標(biāo)記的有向邊:如果對(duì)于輸入a,存在一個(gè)從狀態(tài)p到狀態(tài)q的轉(zhuǎn)換,就在p、q之間畫一條有向邊,并標(biāo)記上a
FAFAFA 定義(接收)的語(yǔ)言
給定輸入串x,如果存在一個(gè)對(duì)應(yīng)于串x的從初始狀態(tài)到某個(gè)終止?fàn)顟B(tài)的轉(zhuǎn)換序列,則稱串x被該FA接收
由一個(gè)有窮自動(dòng)機(jī)M接收的所有串構(gòu)成的集合稱為是該 FAFAFA 定義(或接收)的語(yǔ)言,記為L(M)L(M)L(M)
最長(zhǎng)子串匹配原則
當(dāng)輸入串的多個(gè)前綴與一個(gè)或多個(gè)模式匹配時(shí),總是選擇最長(zhǎng)的前綴進(jìn)行匹配。
在到達(dá)某個(gè)終態(tài)之后,只要輸入帶上還有符號(hào),FA就繼續(xù)前進(jìn),以便尋找最可能長(zhǎng)的匹配
有窮自動(dòng)機(jī)FA的分類
- 確定的FA(Deterministic finite automata)—— DFA
- 非確定的FA(Nondeterministic finite automata)—— NFA
確定的有窮自動(dòng)機(jī)DFA
符號(hào)從左到右依次是:
- 有窮狀態(tài)集
- 輸入字母表
- 轉(zhuǎn)換函數(shù)
- 開(kāi)始狀態(tài)(或初始狀態(tài))
- 接收狀態(tài)(或終止?fàn)顟B(tài))集合
非確定有窮自動(dòng)機(jī)NFA
寫轉(zhuǎn)換表時(shí):
如果轉(zhuǎn)換函數(shù)沒(méi)有給出對(duì)應(yīng)于某個(gè)狀態(tài)-輸入對(duì)的信息,就把空集放入相應(yīng)的表項(xiàng)中
帶有“空邊”的NFA
帶有和不帶有“空邊”的NFA的等價(jià)性
總結(jié)
以上是生活随笔為你收集整理的3词法分析 - 有穷自动机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ibm 2011年服务器型号,IBM x
- 下一篇: Unity导出exe报错,PC端