文法和語言
-
ε,{ε},Ø三者之間的區別 :
ε是一個終結符推導出的結果,表示一個不包含任何字符的序列。
Ø是不包含任何元素的空集{},表示不存在匹配文法的句子。
{ε}是任意一個符號串集合的0次冪,表示一個由空字組成的集合。
-
句子與句型:
如果符號串x是由起始符號推導出的,則稱x是文法G[S]的句型。
如果x中只包含終結符,則稱x是文法G[S]的句子。
文法描述的語言是該文法一切句子的集合。
-
四種文法:
0型文法:
α→β,其中α至少包含一個非終結符。1型文法(上下文有關文法):
α→β,其中|β|≥|α|,S→ε除外。2型文法(上下文無關文法):
a→β,其中a是一個非終結符。3型文法(規范文法):
A→a或A→aB.4種文法是逐漸增加限制的,所以規范文法一定是0型文法、1型文法、2型文法,上下文無關文法也一定是0型文法、1型文法...
-
規范推導:
最右推導為規范推導,由規范推導推出的句型稱為右句型或規范句型。
-
文法的二義性:
一個句型可能對應多個語法樹,一個句型可能對應多個最左/最右推導。
如果一個文法中的某個句子可以對應兩個不同的語法樹,則稱這個文法是二義的。
兩個不同的文法可能是一樣的語言。
如果一種語言的所有文法都是二義的,則稱此語言先天二義。
判定一個文法是否是二義的是遞歸不可解的。
