T L:L:<无标号分程序>
T L:L:<分程序首部>;<复合尾部>
T L:L:<分程序首部>;<说明>;<复合尾部> T L:L:begin<说明>;<说明>;<复合尾部> T L:L:begin d;<说明>;<复合尾部> T L:L:begin d;d;<复合尾部>
T L:L:begin d;d;<语句>;<复合尾部> T L:L:begin d;d;s;<复合尾部. T L:L:begin d;d;s;<语句> end T L:L:begin d;d;s;s end 最右推导:
<程序>T<分程序>T<标号>:<分程序> T<标号>:<标号>:<分程序> T<标号>:<标号>:<无标号分程序>
T<标号>:<标号>:<分程序首部>;<复合尾部>
T<标号>:<标号>:<分程序首部>;<语句>;<复合尾部> T<标号>:<标号>:<分程序首部>;<语句>;<语句>;end T<标号>:<标号>:<分程序首部>;<语句>;s;end T<标号>:<标号>:<分程序首部>;s;s;end T<标号>:<标号>:<分程序首部>;说明;s;s;end T<标号>:<标号>:<分程序首部>;d;s;s;end T<标号>:<标号>:begin 说明;d;s;s;end T<标号>:<标号>:begin d;d;s;s;end
T<标号>: L:begin d;d;s;s;end TL:L:begin d;d;s;s;end
(2)句子L:L:begin d;d;s;s end的相应语法树是:
7.解:
aacb是文法G[S]中的句子,相应语法树是:
最右推导:S=>aAcB=>aAcb=>aacb 最左推导:S=>aAcB=>aacB=>aacb
(2)aabacbadcd不是文法G[S]中的句子 因为文法中的句子不可能以非终结符d结尾 (3)aacbccb不是文法G[S]中的句子
可知,aacbccb仅是文法G[S]的一个句型的一部分,而不是一个句子。 (4)aacabcbcccaacdca不是文法G[S]中的句子
因为终结符d后必然要跟终结符a,所以不可能出现?dc?这样的句子。 (5)aacabcbcccaacbca不是文法G[S]中的句子
由(1)可知:aacb可归约为S,由文法的产生式规则可知,终结符c后不可能跟非终结符S,所以不可能出现?caacb?这样的句子。
8.证明:用归纳法于n,n=1时,结论显然成立。设n=k时,对于α1α2...αkT*b,存在βi:i=1,2,..,k,αiT*bi成立,现在设
α1α2... αkαk+1T*b,因文法是前后文无关的,所以α1α2... αk可推导出b的一个前缀b',αk+1可推导出b的一个后缀=b\不妨称为b k+1)。由归纳假设,对于b',存在βi :i=1,2,..,k,b'=β1β2...βk,使得
αiT*bi成立,另外,我们有αk+1T*b\)。即n=k+1时亦成立。证毕。
9.证明:(1)用反证法。假设α首符号为终结符时,β的首符号为非终结符。即设:α=aω;β=Aω’且 α=>*β。
由题意可知:α=aωT ?T Aω’=β,由于文法是CFG,终结符a不可能被替换空串或非终结符,因此假设有误。得证;
(2)同(1),假设:β的首符号为非终结符时,α首符号为终结符。即设:α=aω;β=Aω’且α=aωT ?T Aω’=β,与(1)同理,得证。
10.证明:因为存在句子:abc,它对应有两个语法树(或最右推导): STABTAbcTabc STDCTDcTabc
所以,本文法具有二义性。 11.解:
(1) STABTAaSbTAacbTbAacbTbbAacbTbbaacb
上面推导中,下划线部分为当前句型的句柄。对应的语法树为:
全部的短语:
第一个a (a1)是句子bbaacb相对于非终结符A (A1) (产生式A?a)的短语(直接短语); b1a1是句子bbaacb相对于非终结符A2的短语; b2b1a1是句子bbaacb相对于非终结符A3的短语;
c是句子bbaacb相对于非终结符S1(产生式S?c)的短语(直接短语); a2cb3是句子bbaacb相对于非终结符B的短语; b2b1a1a2cb3是句子bbaacb相对于非终结符S2的短语; 注:符号的下标是为了描述方便加上去的。 (2)句子(((b)a(a))(b))的最右推导:
ST(AS)T(A(b))T((SaA)(b))T((Sa(a))(b)) T(((b)a(a))(b)) 相应的语法树是:
(3)解:iii*i+↑对应的语法树略。
最右推导:E TT=>F=>FP↑T FE↑T FET+↑T FEF+↑T FEP+↑T FEi+↑ TFTi+↑T FTF*i+↑TFTP*i+↑T FTi*i+↑TFFi*i+↑T FPi*i+↑ TFii*i+↑T Pii*i+↑Tiii*i+↑ 12.证明:
充分性:当前文法下的每一符号串仅有一个句柄和一个句柄产生式T对当前符号串有唯一的最左归约T对每一步推导都有唯一的最右推导T有唯一的语法树。
必要性:有唯一的语法树T对每一步推导都有唯一的最右推导T对当前符号串有唯一的最左归约T当前文法下的每一符号串仅有一个句柄和一个句柄产生式