語法樹求短語、簡單短語和控制代碼:
1)短語:子樹的末端結點形成的符號串。
2)簡單子樹:只有一層分支的子樹。
3)直接短語(簡單短語):簡單子樹的末端結點形成的符號串。
4)控制代碼:子樹中最左邊的那棵只有父子兩代的子樹的所有葉結點自左至右排列起來,就是該句型的控制代碼。
例子:
由此可得s=(sd(t)db)為此文法的乙個句型:
1.已知文法:
s->a|^|(t)
t->t,s|s
分析句型(t,(^,a)),求全部的短語、直接短語和控制代碼。
答:依題意得到語法樹如下圖:
全部短語:(t,(^,a)) t,(^,a) (^,a) ^,a ^ a
直接短語:^ a
控制代碼:^
2.構造上下文無關文法,描述語言:
(1){anbn|n>=0}
(2){ambn|m>=n>=0}
(3) if語句
(4){(ab)n|n>=0}
(5){ambn|m,n>=1}
答:(1)g[s]:s -> asb | ab | ε
由s產生任意多個相同數量的a和b
(2)g[s]:s -> asb | a | ε
由s產生任意多個a和任意多個b,數量a比b多
(3)if語句 -> if《條件》then《語句》 | if《條件》then《語句》else《語句》
(4)g[s]:s -> asb | aasbb | ... | (ab)n | ε
由s產生任意多個相同數量的a和b
(5)g[s]:s -> as|sb | a | ε
由s產生任意多個a和任意多個b,a和b的個數都大於1個
3.如果if語句的方法:
stmt->if expr then stmt
| if expr then stmt else stmt
| other
句子if e1 then if e2 then s1 else s2是否有兩棵不同的語法樹?說明了什麼?
答:依題意畫出語法樹如下圖:
語法樹(1)
語法樹(2)
依題意可以畫出兩顆語法樹,兩顆語法樹都是可以描述同乙個文法的。這說明了這個文法是二義性的。
語法樹,短語,直接短語,控制代碼
1.已知文法 s a t t t,s s 分析句型 t,a 求全部的短語 直接短語和控制代碼。語法書為 由語法樹可知全部短語 t,a t,a a a a 直接短語 a 控制代碼 2.構造上下文無關文法,描述語言 anbn n 0 ambn m n 0 ab n n 0 ambn m,n 1 s as...
語法樹,短語,直接短語,控制代碼2 0
1.已知文法 s a t t t,s s 分析句型 t,a 求全部的短語 直接短語和控制代碼。存在如下的語法樹 存在的短語如下 直接短語如下 控制代碼如下 2.構造上下文無關文法,描述語言 anbn n 0 ambn m n 0 ab n n 0 ambn m,n 1 s asb if n 0 th...
作業三 語法樹 短語 直接短語 控制代碼
1.已知文法 s a t t t,s s 分析句型 t,a 求全部的短語 直接短語和控制代碼。答 根據題意畫出語法樹如下所示 全部短語 t,a t,a a a a 直接短語 a 控制代碼 2.構造上下文無關文法,描述語言 1 anbn n 0 2 ambn m n 0 3 ab n n 0 4 am...