999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

NFA的確定化過程簡析

2020-09-02 00:36:45劉楊
大經貿 2020年6期

【摘 要】 在編譯原理的學習中,從上下文無關文法的初步理解進階到詞法分析過程,是理解整個編譯過程的關鍵一步;其中,確定性有限自動機(DFA)和非確定性有限自動機(NFA)的等價與轉換,是這一部分的難點之一。本文將首先介紹DFA和NFA相關的幾個基本概念,然后著重介紹確定性有限自動機(DFA)和非確定性有限自動機(NFA)的等價變化過程。

【關鍵詞】 編譯原理 詞法分析 DFA NFA 有限自動機

一、基本概念

(一)正規集和正規式

所謂正規集,就是一個集合,是一個字符的集合。正規指的就是,該集合中的字符,對于我們所研究的程序設計語言來說,是合法的。正規式則是正規集的另一種表示方式。或者說,在研究編譯原理的過程中,用正規式來表示正規集。二者的對應關系可以參考如下示例:設有字母表Σ,則Σ上的字符a和b都是正規式,它們分別表示Σ上的正規集{a}和{b}。

詞法分析中的等價關系判定的充要條件,就是:被研究的兩個對象,其所表示的正規式是否相同。

(二)DFA和NFA

首先,FA(finite automaton),有限自動機,本質上就是狀態轉換圖(表示詞法分析器逐個識別輸入字符并進行狀態轉換的過程)。一個有限自動機由一個五元式組成:

S:有窮狀態集;Σ:有窮輸入字母表;f:狀態轉換函數;S0:初始狀態;F:終態

有限自動機中的狀態轉換函數是其精髓所在。狀態轉換函數將詞法分析器的狀態轉換過程抽象為一個雙輸入單輸出的函數,而這樣的函數很容易使用矩陣來表示,從而使詞法分析器的工作過程得以數字化,進而可以使用代碼來實現。

DFA(deterministic finite automaton),確定的有限自動機;

NFA(Nondeterministic finite automaton),非確定的有限自動機。

二者的區別主要有三點:

DFA的初始狀態是唯一的,但NFA的初始狀態可以不唯一(注意,DFA和NFA的終態結點都可以不唯一);

DFA中,每個狀態的輸入只能是單個字符,且不包括ε(空字符);但是在NFA中,可以是一個字或者單個字符或者ε;

DFA中,每個狀態接收輸入后的轉換關系是一定的,但是在這一轉換關系NFA中不是確定的。

二、DFA和NFA之間的等價轉換過程

通過以上三點區別,不難看出,DFA是NFA的一種特例,或者說NFA可以確定化為DFA。接下來我們討論NFA的確定化過程。根據DFA和NFA的三點區別,確定化的過程也分為三步:初態唯一化、拆分輸入、轉換關系確定化。

為了方便討論,我們以圖1(a)為NFA狀態轉換圖的示例。首先,引進新的初態結點X和終態結點Y(X、Y不屬于原NFA的狀態集),從X到NFA的原初態集合中的任意一個結點連一條ε弧,從原終態集合中的任意一個結點連一條ε弧到Y,使X、Y成為新的初態和終態結點,完成初態結點的確定化,如圖1(b)所示。這樣并沒有改變原NFA的識別能力。接著,將圖中弧線上的多個字符拆分,方法是在有個u個字符的弧線上,添加u-1個狀態結點,多字符弧線分解為一個字符一條弧線,效果如圖1(c)所示。狀態函數確定化的關鍵是,要將每個狀態所連接的ε弧和其本身的非ε弧到達的狀態統一起來。這里要用到子集法。討論子集法之前,要先了解兩個概念。

1.設有狀態S,狀態集I是整個狀態集的一個子集,則定義I的ε-閉包——ε-closure(I)為:若S∈I,則S∈ε-closure(I);

若S∈I,則從S出發經過任意條ε弧而能到達的任何狀態S都屬于ε-closure(I)。

即集合形式: ε-closure(I)= I∪{S|從某個S∈I出發經過任意條ε弧能到達S}。

2.設a是Σ中的一個字符,定義 Ia=ε-closure(J) :

J為I中所有狀態經過一條a弧而到達的狀態集合;

將ε-closure(I)的定義套用在集合J上。

由此而達到的效果是,從I中的某個狀態出發經過一條a弧而可以達到的所有狀態都在Ia之中。從而使得狀態之間的轉換變成狀態集之間的轉換。

接下來,先準備一個大集合 I0,在圖3的狀態轉換圖中,經過如下步驟:

1)從初始狀態開始,計算每一個狀態的I集合,放入 I0中;

2)再從I出發,計算每一個I的Ja(狀態經過一條a弧到達的狀態集合),再計算 Ia;

3)檢查 I0中是否有 Ia,如果沒有,就將 Ia放入I0中,將 Ia看作新的集合I,再計算其Ja和Ia;

4)循環步驟2、3,直至所有的都出現在 I0中。

(這里請注意,步驟中的a代指的是狀態轉換圖中的所有非ε終結符;示例的具體計算步驟比較繁瑣,但是并不難理解,在此不再詳述)

至此,NFA和DFA的三方面差別都被消除。之后還可以對DFA進行簡化使結果更加直觀。以上既是NFA向DFA的轉換過程,也可以間接證明二者的等價。

【參考文獻】

[1] 陳火旺,等.程序設計語言編譯原理(第3版)[M].北京:國防工業出版社,2006: 46-53

[2] [美] Andrew W.Appel.現代編譯原理[M].趙克佳,等,譯.北京:人民郵電出版社, 2006: 18-20

作者簡介:劉楊(1999——)男,漢族,河南信陽人,單位:河南大學計算機與信息工程學院,本科,軟件工程專業,軟件工程:

主站蜘蛛池模板: 97一区二区在线播放| 久久人搡人人玩人妻精品| 色综合中文综合网| 99一级毛片| 国产黑丝视频在线观看| 乱色熟女综合一区二区| 欧美日韩专区| 久久精品中文无码资源站| 久久中文字幕2021精品| 欧美激情第一区| 激情在线网| 亚洲AV无码乱码在线观看代蜜桃| 五月天天天色| 91精品国产无线乱码在线| 国产一级毛片网站| 日本a∨在线观看| 人妻中文久热无码丝袜| www亚洲天堂| 亚洲制服丝袜第一页| h网站在线播放| 精品一区二区久久久久网站| 亚洲成a人在线观看| 特级毛片免费视频| 国产情侣一区二区三区| 亚洲精品手机在线| 国产精品久线在线观看| 大陆精大陆国产国语精品1024| 无码一区中文字幕| 青青草国产在线视频| 国产小视频a在线观看| 青青青国产视频手机| 欧美午夜精品| 无码中文字幕乱码免费2| 国产网站一区二区三区| 亚洲国产欧美中日韩成人综合视频| 伊人福利视频| 99精品在线看| 国产91丝袜| 国产欧美日韩综合一区在线播放| 永久免费精品视频| 欧美精品v日韩精品v国产精品| 四虎在线高清无码| 国产成人精品一区二区| 日本精品中文字幕在线不卡 | 99re精彩视频| 女人av社区男人的天堂| 国国产a国产片免费麻豆| 99er精品视频| 久久久久人妻一区精品色奶水 | 国产无码网站在线观看| 日韩小视频在线观看| 精品国产免费观看| 色哟哟国产精品一区二区| 波多野结衣视频一区二区| 久久国产精品嫖妓| 麻豆精品久久久久久久99蜜桃| 亚洲—日韩aV在线| 波多野结衣二区| 日韩在线网址| 国产高清在线观看91精品| 好吊色国产欧美日韩免费观看| 午夜视频免费试看| 综合社区亚洲熟妇p| 永久免费精品视频| 99在线视频网站| 天堂网国产| 国产极品嫩模在线观看91| 国产免费怡红院视频| 99热在线只有精品| 88国产经典欧美一区二区三区| 色综合久久88色综合天天提莫| 亚洲,国产,日韩,综合一区| 美女毛片在线| 91亚洲国产视频| 88av在线看| 91精品国产综合久久香蕉922 | 亚洲男人的天堂久久香蕉网| 亚洲91精品视频| 中国成人在线视频| 久久青青草原亚洲av无码| 成人午夜天| 欧美成人一区午夜福利在线|