清华大学出版社——第三版/王生原
第四章作业
1.对文法G[S]
S→a|Λ|(T)
T→T,S|S
(1)给出(a,(a,a))和(((a,a),Λ,(a)),a)的最左推导。
(2)对文法G进行改写,然后对每个非终结符写出不带回溯的递归子程序。
(3)经改写后的文法是否是LL(1)的?给出它的预测分析表。
(4)给出输入串(a,a)#的分析过程,并说明该串是否为G的句子。
5. 文法G如下:
<程序>→begin<语句表> end
<语句表>→<语句>|<语句表>;<语句>
<语句>→<无条件语句>|<条件语句>
<无条件语句>→a
<条件语句>→<如果语句>|<如果语句>else<语句>
<如果语句>→<如果子句><无条件语句>
<如果子句>→ if b then
试将G改写为LL(1)文法,并构造其预测分析表,判断改写后的文法是否为LL(1)文法。
6. 判断下面哪些文法是LL(1)的,哪些能改写为LL(1)文法,并对每个LL(1)文法设计相应的递归下降识别器。
7.对于一个文法若消除了左递归,提取了左公共因子后是否一定为LL(1)文法?试对下面的文法进行改写,并对改写后的文法进行判断。