免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      編譯原理follow集與first集的計(jì)算

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

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

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

      (2)如果產(chǎn)生式后面的第一個(gè)符號是非終結(jié)符,就看這個(gè)非終結(jié)符的產(chǎn)生式,看的時(shí)候同樣利用前面的兩種看法;但是當(dāng)產(chǎn)生式為ε時(shí),則需要把ε帶入到待求First集的元素的產(chǎn)生式中再判斷。例如:A->Bc; B->aM;B->ε,求First(A)時(shí),我們看到A的第一個(gè)產(chǎn)生式中的第一個(gè)符號是B,B是一個(gè)非終結(jié)符,所以我們就要接著看B的產(chǎn)生式,B的第一個(gè)產(chǎn)生式的第一個(gè)符號為a,a是一個(gè)終結(jié)符,直接把a(bǔ)寫入First(A),B的第二個(gè)產(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é)符,且兩個(gè)非終結(jié)符又都可以推出ε時(shí),我們需要把這個(gè)產(chǎn)生式的所有情況都列出來,再分析。例如:A->BC;B->b|ε;C->c|ε。我們把A的所有產(chǎn)生式利用上述兩種方法列出來就是A->bc,A->b;A->c,A->ε;最后First (A)={b,c, ε}。

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

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

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

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

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

      ②當(dāng)β是非終結(jié)符時(shí),將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
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息