亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        NFA的確定化過程簡析

        2020-09-02 00:36:45劉楊
        大經(jīng)貿(mào) 2020年6期

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

        【關(guān)鍵詞】 編譯原理 詞法分析 DFA NFA 有限自動(dòng)機(jī)

        一、基本概念

        (一)正規(guī)集和正規(guī)式

        所謂正規(guī)集,就是一個(gè)集合,是一個(gè)字符的集合。正規(guī)指的就是,該集合中的字符,對(duì)于我們所研究的程序設(shè)計(jì)語言來說,是合法的。正規(guī)式則是正規(guī)集的另一種表示方式?;蛘哒f,在研究編譯原理的過程中,用正規(guī)式來表示正規(guī)集。二者的對(duì)應(yīng)關(guān)系可以參考如下示例:設(shè)有字母表Σ,則Σ上的字符a和b都是正規(guī)式,它們分別表示Σ上的正規(guī)集{a}和。

        詞法分析中的等價(jià)關(guān)系判定的充要條件,就是:被研究的兩個(gè)對(duì)象,其所表示的正規(guī)式是否相同。

        (二)DFA和NFA

        首先,F(xiàn)A(finite automaton),有限自動(dòng)機(jī),本質(zhì)上就是狀態(tài)轉(zhuǎn)換圖(表示詞法分析器逐個(gè)識(shí)別輸入字符并進(jìn)行狀態(tài)轉(zhuǎn)換的過程)。一個(gè)有限自動(dòng)機(jī)由一個(gè)五元式組成:

        S:有窮狀態(tài)集;Σ:有窮輸入字母表;f:狀態(tài)轉(zhuǎn)換函數(shù);S0:初始狀態(tài);F:終態(tài)

        有限自動(dòng)機(jī)中的狀態(tài)轉(zhuǎn)換函數(shù)是其精髓所在。狀態(tài)轉(zhuǎn)換函數(shù)將詞法分析器的狀態(tài)轉(zhuǎn)換過程抽象為一個(gè)雙輸入單輸出的函數(shù),而這樣的函數(shù)很容易使用矩陣來表示,從而使詞法分析器的工作過程得以數(shù)字化,進(jìn)而可以使用代碼來實(shí)現(xiàn)。

        DFA(deterministic finite automaton),確定的有限自動(dòng)機(jī);

        NFA(Nondeterministic finite automaton),非確定的有限自動(dòng)機(jī)。

        二者的區(qū)別主要有三點(diǎn):

        DFA的初始狀態(tài)是唯一的,但NFA的初始狀態(tài)可以不唯一(注意,DFA和NFA的終態(tài)結(jié)點(diǎn)都可以不唯一);

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

        DFA中,每個(gè)狀態(tài)接收輸入后的轉(zhuǎn)換關(guān)系是一定的,但是在這一轉(zhuǎn)換關(guān)系NFA中不是確定的。

        二、DFA和NFA之間的等價(jià)轉(zhuǎn)換過程

        通過以上三點(diǎn)區(qū)別,不難看出,DFA是NFA的一種特例,或者說NFA可以確定化為DFA。接下來我們討論NFA的確定化過程。根據(jù)DFA和NFA的三點(diǎn)區(qū)別,確定化的過程也分為三步:初態(tài)唯一化、拆分輸入、轉(zhuǎn)換關(guān)系確定化。

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

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

        若S∈I,則從S出發(fā)經(jīng)過任意條ε弧而能到達(dá)的任何狀態(tài)S都屬于ε-closure(I)。

        即集合形式: ε-closure(I)= I∪{S|從某個(gè)S∈I出發(fā)經(jīng)過任意條ε弧能到達(dá)S}。

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

        J為I中所有狀態(tài)經(jīng)過一條a弧而到達(dá)的狀態(tài)集合;

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

        由此而達(dá)到的效果是,從I中的某個(gè)狀態(tài)出發(fā)經(jīng)過一條a弧而可以達(dá)到的所有狀態(tài)都在Ia之中。從而使得狀態(tài)之間的轉(zhuǎn)換變成狀態(tài)集之間的轉(zhuǎn)換。

        接下來,先準(zhǔn)備一個(gè)大集合 I0,在圖3的狀態(tài)轉(zhuǎn)換圖中,經(jīng)過如下步驟:

        1)從初始狀態(tài)開始,計(jì)算每一個(gè)狀態(tài)的I集合,放入 I0中;

        2)再從I出發(fā),計(jì)算每一個(gè)I的Ja(狀態(tài)經(jīng)過一條a弧到達(dá)的狀態(tài)集合),再計(jì)算 Ia;

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

        4)循環(huán)步驟2、3,直至所有的都出現(xiàn)在 I0中。

        (這里請(qǐng)注意,步驟中的a代指的是狀態(tài)轉(zhuǎn)換圖中的所有非ε終結(jié)符;示例的具體計(jì)算步驟比較繁瑣,但是并不難理解,在此不再詳述)

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

        【參考文獻(xiàn)】

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

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

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

        国产乱子伦一区二区三区| 人妻无码中文专区久久AV| 国产高清一区二区三区视频| 久久99国产精品久久99密桃| 中文字幕有码在线亚洲| 丰满少妇高潮惨叫久久久| 国産精品久久久久久久| 欧美日韩亚洲成色二本道三区| 国产成年女人特黄特色毛片免| 日本在线一区二区三区视频| 国产精品久久久久久妇女| 鲁丝片一区二区三区免费| 日本强好片久久久久久aaa| 亚洲tv精品一区二区三区| 国产猛男猛女超爽免费av| 国产午夜免费一区二区三区视频| 久久99国产精品久久99果冻传媒| 在熟睡夫面前侵犯我在线播放| 越南女子杂交内射bbwbbw| 日韩中文网| 国产精品亚洲av无人区二区| 漂亮人妻洗澡被公强 日日躁| 日本黄页网站免费观看| 亚洲欧美日韩中文字幕网址| 亚洲精品成人一区二区三区| 国产极品女主播国产区| 国产97色在线 | 亚洲| 国产综合久久久久影院| 久久精品视频日本免费| 欧美人妻aⅴ中文字幕| 色偷偷88888欧美精品久久久| 国产精品一级av一区二区| 国产毛片视频一区二区三区在线 | 播放灌醉水嫩大学生国内精品| 亚洲色拍拍噜噜噜最新网站| 亚洲av高清一区二区三区| 国产色视频一区二区三区qq号| 失禁大喷潮在线播放| 亚洲av一区二区国产精品| 成人影院羞羞的视频免费观看 | 在线a免费观看|