乘積
設A和B是符號串的集合,則A和B的乘積定義為
AB = {xy | x∈A and y∈B}。
eg:若A={a,b},B={b,c},則AB = {ab,ac,bb,bc}。
對任意符號串集合A,有{ε}A = A{ε} = A。
冪運算
設A是符號串的集合,則A的冪運算定義為
A0 = {ε} A1 = A An = AAn-1(n>0)
eg:若A={0,1},則A0={ε},A1={0,1},A2={00,01,10,11}。
4)正閉包與閉包
設A是符號串的集合,則集合A的正閉包A+和閉包A*定義為
A+ = A1∪A2∪…∪An∪…
A* = A0∪A1∪…∪An∪…
eg:若A={0,1},則A+={0,1,00,01,10,11,000,001,…},A*={ε,0,1,00,01,10,11,000,001,…}。
推導:
若存在一個直接推導序列:α0⇒α1⇒α2⇒…⇒αn,則稱這個序列是一個從α0至αn的長度為n的推導。
當n>0時,α0至αn的推導記為α0 ⇒+ αn,表示從α0出發,經過1步或者若干步可推導出αn。
當n≥0時,α0至αn的推導記為α0 ⇒* αn,表示從α0出發,經過0步或者若干步可推導出αn。
句型和句子 設有文法G[Z],Z是文法G的開始符號。
1)句型:若Z ⇒* x,x∈(VN∪VT)*,則稱符號串x為文法G[Z]的句型。
2)句子:若Z ⇒* x,x∈VT*,則稱符號串x為文法G[Z]的句子。
3)句子一定是句型,句型不一定是句子。
語言
1)定義:文法G[Z]產生的所有句子的集合稱為文法G所定義的語言,記為L(G[Z]),簡寫為L(G)。L(G)={x| Z ⇒+ x且x∈VT*}。
2)語言L(G)是VT*的子集。
文法遞歸
1)定義:對於文法中的任一非終結符,若能建立一個推導過程,在推導所得的符號串中又出現該終結符本身,則稱文法是遞歸的。
2)種類:左遞歸、右遞歸、遞歸。
3)左遞歸:A ⇒+ A…
4)右遞歸:A ⇒+ …A
5)遞歸:A ⇒+ …A…
原文鏈接:https://blog.csdn.net/qq_38428886/article/details/93197490
1. 根據句型畫語法推導樹【對句型的推導】。
2. 判斷短語:短語是語法推導樹中每一個非葉子節點作為根的子樹,從左到右的葉子節點。注意:短語可以是非終結符。
3. 判斷直接短語:直接短語在短語中找,它們作為子樹的葉子節點,根節點必須是它們所有節點的父親節點。
4. 判斷句柄:最左直接短語。
5. 判斷素短語:素短語遞歸定義,滿足三個條件:
① 素短語是短語。
② 素短語中必須包含至少一個終結符。
③ 素短語中不能包含其它素短語。
6. 最左素短語:在語法推導樹中最靠左的素短語。
原文鏈接:https://blog.csdn.net/LeeDuoZuiShuai/article/details/104882488