国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

消除間接左遞歸 編譯原理,如何消除文法的左遞歸?

編譯原理,如何消除文法的左遞歸?1. A->aa2。A->baB->ab(A和B屬于非終結(jié)符,A和B屬于終結(jié)符)一般來說,左遞歸是在情況1中“>”的兩邊包含相同的非終結(jié)符;在情況2中,

編譯原理,如何消除文法的左遞歸?

1. A->aa

2。A->ba

B->ab(A和B屬于非終結(jié)符,A和B屬于終結(jié)符)

一般來說,左遞歸是在情況1中“>”的兩邊包含相同的非終結(jié)符;

在情況2中,a->ba中“>”后的B和B->ab中“>”前的B是同一個非終結(jié)符

這兩種情況稱為左遞歸。

如何消除左遞歸?

將s->aa | B代入a->ac | SD |ε,得到a->ac | aad | BD |ε,然后消除直接左遞歸:a->bda | a | a | ASA |ε,所以選擇a

如果CFG是這樣的,a-> ABA-> E有左遞歸,語法分析中的遞歸下降法和LL(1)法不能處理這個問題,因為程序會陷入遞歸,不能前進(jìn)。Cfga-> BA“a”-> BA“| e與前面的表達(dá)式相同,但所有語法的第一項是終止符,它消除了左遞歸。有消除左遞歸的算法,一般編譯原理書中會介紹,不是很復(fù)雜。

編譯原理的消除左遞歸是怎么回事???

[Q→RB[b(2),我們可以得到

R->(BCA B B | B | B[B

]R->(BCA BCA | B | a)R“

]R->bcar“”->bcar“124124124(2)R”

R“->bcar”ε