日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

词法分析(2)---NFA

發(fā)布時(shí)間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 词法分析(2)---NFA 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  假定一個(gè)輸入符號(hào)(symbol),可以得到2個(gè)或者2個(gè)以上的可能狀態(tài),那么這個(gè)finite automaton就是不確定的,反之就是確定的。例如:

  這就是一個(gè)不確定的無限自動(dòng)機(jī),在symbol a輸入的時(shí)候,無法確定狀態(tài)應(yīng)該轉(zhuǎn)向0,還是1

  不論是確定的finite automaton還是非確定的finite automaton,它們都可以精確的描述正規(guī)集(regular sets)

  我們可以很方便的把正規(guī)表達(dá)式(regular expressions)轉(zhuǎn)換成為不確定 finite automaton

  2. NFA(Nondeterministic Finite Automaton)

  非確定的無限自動(dòng)機(jī),我們用NFA這個(gè)術(shù)語表示,它是一個(gè)數(shù)學(xué)模型(model):

  1.       一個(gè)關(guān)于狀態(tài)的集合S

  2.       一個(gè)關(guān)于輸入符號(hào)(input symbols)的集合Σ

  3.       函數(shù) move : (狀態(tài), 符號(hào)) -> P(S)

  4.       一個(gè)開始狀態(tài)s0,是一個(gè)唯一的狀態(tài)

  5.       一個(gè)結(jié)束(接受)狀態(tài)集合F

  注意,P(S),表示S的冪集(所謂冪集, 就是原集合中所有的子集(包括全集和空集)構(gòu)成的集族)。在NFA中,input symbol可以為 ε

  轉(zhuǎn)換函數(shù)(transition function)的含義就是,一個(gè)確定的狀態(tài)已經(jīng)從這個(gè)狀態(tài)出發(fā)的一條邊的標(biāo)簽(符號(hào)symbol),可以確定它的下一個(gè)狀態(tài)組成的集合,比如上圖(這個(gè)轉(zhuǎn)換圖就是NFA的一種表示方式),0狀態(tài),a符號(hào),確定了一個(gè)狀態(tài)的集合{0,1}

  3. 轉(zhuǎn)換圖(transition graph)的表示

  我們知道,計(jì)算機(jī)是無法直接表示一個(gè)圖,我們應(yīng)該如何來表示一個(gè)轉(zhuǎn)換圖?使用表格就是一個(gè)最簡(jiǎn)單的方法,每行表示一個(gè)狀態(tài),每列表示一個(gè)input symbol,這種表格被叫做 transtion table(轉(zhuǎn)換表)

  可以說使用表格是最簡(jiǎn)單的表示方式,但是我們可以注意到在這個(gè)圖中狀態(tài)1和input symbol a,是沒有下一個(gè)狀態(tài)的(空集合),也就是,對(duì)于一個(gè)大的狀態(tài)圖,我們可能花費(fèi)大量的空間,而其中空集合會(huì)消耗不少空間,但是這種消耗又不是必須的,所以,作為最簡(jiǎn)單的一種實(shí)現(xiàn)方式,卻不是最優(yōu)的

  語言(language)被NFA定義成為一個(gè)input string的集合,而這個(gè)集合中的元素則是被NFA受接受的所有的字符串(那些可以從開始狀態(tài)到某接受狀態(tài)的input string)

  至于存儲(chǔ)的方式,可以試試鄰接表。注意,使用什么樣的數(shù)據(jù)結(jié)構(gòu)來保存NFA按情況不同而不同,在一些特殊情況下,某些數(shù)據(jù)結(jié)構(gòu)會(huì)變得很方便使用,而換入其他情況,則不可以使用了。

總結(jié)

以上是生活随笔為你收集整理的词法分析(2)---NFA的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。