【編譯原理】求一個句型短語、直接短語、句柄(一看就懂~!騙小狗)

1 短語

在這裏插入圖片描述
那麼,abp爲此句型的短語
總結來說:一個句型的語法樹中任一子樹葉結點所組成的符號串都是該句型的短語,由這概念,那麼我們自然可以想到,b也應該是該句型的一個短語。

2 直接短語

跟短語比,限定高度爲2的子樹。
如果子樹中不再包含其他的子樹,即A只能推導出b,而b不能再推出其他的式子,則b爲此句型的直接短語。

3 句柄

直接短語中的最左直接短語爲該句型的句柄。

4 例子

在這裏插入圖片描述
如何證明E+T*F是句型呢?最簡單的方法就是畫抽象語法樹,如果能畫出對應的抽象語法樹,則就表明此表達式是文法的一個句型。

抽象語法樹如下:

在這裏插入圖片描述
按如上的語法樹可知,E=T*F爲此文法的一個句型:

短語: T*F, E+T*F

直接短語:T*F

句柄:T*F
S -> a|b|(T) 
T -> TdS|S
證明(Sd(T)db)是S的一個句型,並求出短語,直接短語,句柄

此文法的抽象語法樹爲:

在這裏插入圖片描述
由此可得S=(Sd(T)db)爲此文法的一個句型:

短語:S,(T),b,Sd(T),Sd(T)db,(Sd(T)db)
直接短語:S,(T),b
句柄:S

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章