0型文法 1型文法 2型文法 3型文法 的判定

2022-06-04 02:18:10 字數 1163 閱讀 8047

引用: 

==================== 

s-> aas|a是什麼型的,為什麼 

s-> asb|ab是什麼型的,為什麼 

s-> sas|b是什麼型的,為什麼 

===================== 

答:三種文法都屬於上下文無關文法。 

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

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

3型文法遵循什麼規範呢? 

第一點:左邊必須只有乙個字元,且必須是非終結符; 

第二點:其右邊最多只能有兩個字元,且當有兩個字元時必須有乙個為終結符而另乙個為非終結符。當右邊只有乙個字元時,此字元必須為終結符。 

第三點:對於3型文法中的所有產生式,其右邊有兩個字元的產生式,這些產生式右邊兩個字元中終結符和非終結符的相對位置一定要固定,也就是說如果乙個產生式右邊的兩個字元的排列是:終結符+非終結符,那麼所有產生式右邊只要有兩個字元的,都必須前面是終結符而後面是非終結符。反之亦然,要麼,就全是:非終結符+終結符。 

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

再看2型文法如何判斷: 

第一點:與3型文法的第一點相同,即:左邊必須有且僅有乙個非終結符。 

第二點:2型文法所有產生式的右邊可以含有若干個終結符和非終結符(只要是有限的就行,沒有個數限制)。 

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

再看1型文法如何判斷: 

第一點:1型文法所有產生式左邊可以含有乙個、兩個或兩個以上的字元,但其中必須至少有乙個非終結符。 

第二點:與2型文法第二點相同。 

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

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

所以,取其最高的符合規則,最後的答案是其符合:上下文無關文法規則,即2型。

0型文法 1型文法 2型文法 3型文法

引用 s aas a是什麼型的,為什麼 s asb ab是什麼型的,為什麼 s sas b是什麼型的,為什麼 答 三種文法都屬於上下文無關文法。四種文法的判斷非常簡單,說到到,四種文法就是規定產生式的左和右邊的字元的組成規則不同而已,其它的不能理解就不要去想了,你只要知道判斷的時候就是以產生式的左邊...

0型文法 1型文法 2型文法 3型文法

引用 s aas a是什麼型的,為什麼 s asb ab是什麼型的,為什麼 s sas b是什麼型的,為什麼 答 三種文法都屬於上下文無關文法。四種文法的判斷非常簡單,說到到,四種文法就是規定產生式的左和右邊的字元的組成規則不同而已,其它的不能理解就不要去想了,你只要知道判斷的時候就是以產生式的左邊...

編譯原理(4) 1型文法和線性界限自動機

1型文法也稱上下文有關文法,相當於線性界限自動機。如果文法g n,p,s 的規則集p中所有規則滿足如下形式 其中,a n,n 且 至少包含乙個字元,規則右端的長度大於左端則稱文法g為1型文法。若 和 同時為空,則1型文法變成了2型文法。1 線性界限自動機的 中包括兩個特殊符號 和 分別表示輸入鏈的左...