參考關健young的部落格,**:
左遞迴形式為:
1)a→aβ,a∈vn,β∈v*
2)a→bβ,b→aα,a、b∈vn,α、β∈v*
稱其為左遞迴。
其中可以採取修改左遞迴為右遞迴:
a→aβ|γ。其中β非空,γ不以a打頭
可寫為:a→γa'
a'→βa'|ε
即:a→aα1| aα2 |…|aαm|β1|β2|…|βn
其中,αi(1≤i≤m)均不為空,βj(1≤j≤n)均不以a打頭。
則消除直接左遞迴後改寫為:
a→ β1a'| β2 a' |…| βna'
a'→ α1a' | α2a' |…| αma'|ε
例4.12:有文法g(e):
e→e +t |t
t→t*f | f
f→i| (e)
消除該文法的直接左遞迴。
解:按轉換規則,可得:
e→te'
e'→+te'|ε
t→ft '
t'→*ft'|ε
f→i| (e)
s->aa|b a->ac|sd|e,消除左遞迴
左遞迴消除方法如下:其中e為空集
u=ux1|ux2|y1|y2--àu=y1u』|y2u』 u』=x1u』|x2u』|e
故此為:a->ac|sd|e
a=ac|aad|bd|e ---àa=bda』|a』 a』=ca』|ada』|e
消除左遞迴
first集的求法 對於文法g的任一符號串 x1x2 xn可按下列步驟構造其first 集合 1 置first 2 將first x1 中的一切非 符號加進first 3 若 first x1 將first x2 中的一切非 符號加進first 若 first x1 和first x2 將first...
消除左遞迴
1.將以下文法消除左遞迴,並分析符號串 i i i e e t t t t f f f e i 消除左遞迴 e t e e te t ft t ft f e i first集 first e first e first t first t first f follow集 follow e follo...
消除左遞迴
1.將以下文法消除左遞迴,分析符號串 i i i 並分別求first集 follow集,和select集 e e t t t t f f f e i e te e te t ft t ft f i e first te first te first first ft first ft first i...