编译原理第七章习题
一、问答题
问答第1题
已知文法
A→aAd|aAb|ε
判断该文法是否是SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。
问答第2题
若有定义二进制数的文法如下:
S→L.L|L
L→LB|B
B→0|1
(1) 试为该文法构造LR分析表,并说明属哪类LR分析表。
(2) 给出输入串101.110的分析过程。
问答第3题
文法G=({U,T,S},{a,b,c,d,e},P,S)
其中P为:
S→UTa|Tb
T→S|Sc|d
U→US|e
(1) 判断G是LR(0),SLR(1),LALR(1)还是LR(1),说明理由。
(2) 构造相应的分析表。
问答第4题
证明文法:
S→A$
A→BaBb|DbDa
B→ε
D→ε
是LR(1)但不是SLR(1)。(其中'$'相当于'#')
问答第5题
给定文法:
S→do S or S|do S|S;S|act
(1) 构造识别该文法活前缀的DFA。
(2) 该文法是LR(0)吗?是SLR(1)吗?说明理由。
(3) 若对一些终结符的优先级以及算符的结合规则规定如下:
a) or 优先性大于 do;
b) ;服从左结合;
c) ;优先性大于 do ;
d) ;优先性大于 or ;
请构造该文法的LR分析表,并说明LR(0)项目集中是否存在冲突和冲突如何解决的。