亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                編譯原理follow集與first集的計算

                下面我將介紹一下我關(guān)于LL(1)文法部分的計算文法非終結(jié)符First集以及Follow集兩個知識點的理解。

                首先是First集的計算部分,計算First集首先看我們原文法的左邊,原文法左邊不重復(fù)的都要進(jìn)行First集的計算,計算時具體有以下三種情況

                (1)先看產(chǎn)生式后面的第一個符號,如果是終結(jié)符,那就可以直接把它寫到這個產(chǎn)生式的First集中,例如:產(chǎn)生式為M->nDc,那在First集中我們就可以直接寫上First (M)={ n };

                (2)如果產(chǎn)生式后面的第一個符號是非終結(jié)符,就看這個非終結(jié)符的產(chǎn)生式,看的時候同樣利用前面的兩種看法;但是當(dāng)產(chǎn)生式為ε時,則需要把ε帶入到待求First集的元素的產(chǎn)生式中再判斷。例如:A->Bc; B->aM;B->ε,求First(A)時,我們看到A的第一個產(chǎn)生式中的第一個符號是B,B是一個非終結(jié)符,所以我們就要接著看B的產(chǎn)生式,B的第一個產(chǎn)生式的第一個符號為a,a是一個終結(jié)符,直接把a寫入First(A),B的第二個產(chǎn)生式為ε,把ε帶入A->Bc中,A->c(注意:如果將B->ε帶入表達(dá)式后A的產(chǎn)生式為A->ε,ε不可以忽略),c是終結(jié)符,所以把c也寫入First(A),最后First (A)={ a,c }。

                (3)當(dāng)產(chǎn)生式右邊全為非終結(jié)符,且兩個非終結(jié)符又都可以推出ε時,我們需要把這個產(chǎn)生式的所有情況都列出來,再分析。例如:A->BC;B->b|ε;C->c|ε。我們把A的所有產(chǎn)生式利用上述兩種方法列出來就是A->bc,A->b;A->c,A->ε;最后First (A)={b,c, ε}。

                接下來介紹一下Follow集的部分,先簡單介紹一下計算Follow集的大致規(guī)則。比如我們要求Follow(X),文法中多個產(chǎn)生式中含有X,則需要考慮多種情況,以下是具體計算時的三種情況:

                (1)文法開始符:所有文法開始符的Follow集中都有一個#。

                (2)S->αB的形式:求Follow(B),因為B的后面為空,把Follow(S)寫入B的Follow集中。

                (3)S->αBβ的形式:求Follow(B),B后部不為空。

                ①當(dāng)β是終結(jié)符時,直接把β寫入Follow(B)。

                ②當(dāng)β是非終結(jié)符時,將First (β)(如果First(B)中有ε,就把ε刪掉)寫入Follow(B)中。(需要注意的是:如果β->ε,那么原產(chǎn)生式就變成了S->αB,也就是第二種情況,這兩種情況都要算在Follow(B)中)。

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月14日 21:06
                下一篇 2022年6月14日 21:06

                相關(guān)推薦

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息