最左推導和最右推導,語法樹,二義性文法

※最左推導和最右推導

(每一步替換最左邊的非終結符/每一步替換最右邊的非終結符),最右推導稱爲規範推導。最右推導對應於最左規約(規範規約)

例:

文法:

S--->AB

A--->a|t

B---->+CD

C--->a

D---->a

最右推導:

S--->AB---->A+CD--->A+Ca---->A+aa----->a+aa

最左推導:

S---->AB----->aB--->a+CD--->a+aD----->a+aa



※語法樹:

文法:

最左推導和最右推導,語法樹,二義性文法 - 小鏡子~ - 菜園子
 

相應的語法樹:

最左推導和最右推導,語法樹,二義性文法 - 小鏡子~ - 菜園子
 

(這是最右推導的語法樹)



※文法的二義性:

給定一個文法G,如果LG)中存在一個具有兩棵或兩棵以上分析樹的句子, 我們就稱該文法爲二義性的,G也叫二義性文法。

對於以下文法:

最左推導和最右推導,語法樹,二義性文法 - 小鏡子~ - 菜園子
 

對於id+id*id的串,有兩個分析樹與之對應

最左推導和最右推導,語法樹,二義性文法 - 小鏡子~ - 菜園子
 

造成二義性的原因是:文法中沒有體現出結合率和優先級

發佈了61 篇原創文章 · 獲贊 23 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章