- 62
- 0
- 约6.94千字
- 约 7页
- 2016-02-26 发布于江西
- 举报
编译原理第五章 作业参考答案.doc
第五章 自顶向下语法分析方法
1.对文法G[S]
S(a|∧|(T)
T(T,S|S
给出(a,(a,a))和(((a,a),∧,(a)),a)的最左推导。
对文法G,进行改写,然后对每个非终结符写出不带回溯的递归子程序。
经改写后的文法是否是LL(1)的?给出它的预测分析表。
给出输入串(a,a)#的分析过程,并说明该串是否为G的句子。
解:
(1) (a,(a,a))的最左推导为S((T)((T,S)((S,S)((a,(T))((a,(T,S))((a,(S,a))((a,(a,a))
(((a,a),∧,(a)),a)的最左推导为
S((T)((T,S)((S,a)(((T),a)(((T,S),a)(((T,S,S),a)(((S,∧,(T)),a)((((T),∧,(S)),a)
((((T,S),∧,(a)),a)((((S,a),∧,(a)),a)((((a,a),∧,(a)),a)
(2)由于有T(T,S的产生式,所以消除该产生式的左递归,增中一个非终结符U有新的文法G/[S]:
S(a|∧|(T)
T(SU
U(,SU|ε
分析子程序的构造方法
对满足条件的文法按如下方法构造相应的语法分析子程序。
(1) 对于每个非终结号U,编写一个相应的子程序P(U);
(2) 对于规则U::=x1|x2|..|xn,有一个关于U的子程序P(U),P(U)按如下
原创力文档

文档评论(0)