編譯原理中,形式語言裡怎麼區分文法類型

來源:互聯網
上載者:User

標籤:span   區分   不能   style   上下文無關文法   如何   固定   ica   一點   

四種文法的判斷非常簡單,說到到,四種文法就是規定產生式的左和右邊的字元的組成規則不同而已,其它的不能理解就不要去想了,你只要知道判斷的時候就是以產生式的左邊和右邊符合的規則進行判斷。下面解釋一下如何根據產生式左邊和右邊的特徵來進行判斷。

首先,應該明確,四種文法,從0型到3型,其規則和約定越來越多,限制條件也越來越多,所以,我們判斷時可以從最複雜的3型進行判斷,依次向下判斷,如果不符合3型的,那再看是不是2型的,不是2型的,再看是不是1型的,當然,對於作題作的熟的朋友,不用這麼複雜,可以一眼直接看出來。

3型文法遵循什麼規範呢?
第一點:左邊必須只有一個字元,且必須是非終結符;
第二點:其右邊最多隻能有兩個字元,且當有兩個字元時必須有一個為終結符而另一個為非終結符。當右邊只有一個字元時,此字元必須為終結符。
第三點:對於3型文法中的所有產生式,其右邊有兩個字元的產生式,這些產生式右邊兩個字元中終結符和非終結符的相對位置一定要固定,也就是說如果一個產生式右邊的兩個字元的排列是:終結符+非終結符,那麼所有產生式右邊只要有兩個字元的,都必須前面是終結符而後面是非終結符。反之亦然,要麼,就全是:非終結符+終結符。

依以上規則判斷,你所給的三個文法顯然都不屬於3型文法。

再看2型文法如何判斷:
第一點:與3型文法的第一點相同,即:左邊必須有且僅有一個非終結符。
第二點:2型文法所有產生式的右邊可以含有若干個終結符和非終結符(只要是有限的就行,沒有個數限制)。

依2型文法的判斷規則,你的三個文法都屬於2型文法,即:上下文無關文法。

再看1型文法如何判斷:
第一點:1型文法所有產生式左邊可以含有一個、兩個或兩個以上的字元,但其中必須至少有一個非終結符。
第二點:與2型文法第二點相同。

依1型文法判斷規則,顯然,你的文法也是屬於1型的。

最後是0型文法,這個就不用看了,只要你能描述出來,都屬於這個類型,即0型。

編譯原理中,形式語言裡怎麼區分文法類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.