作者:Lily賈麗 | 来源:互联网 | 2023-09-25 14:21
四、五章单元测试内容
T1
常识问题。
使用自上而下分析法需要先消除左递归,再消除回溯。
T2
显然是错的,LL(1)文法是无二义文法,二义文法就无法在逻辑上与LL(1)文法等价。
T3
显然是对的,LL(1)文法的预测分析表确实没有多重定义入口。这也是判断某文法是否为LL(1)文法的依据之一。
T4
没有两个相继并列的非终结符,只能算是算符文法(OG文法)。而算符优先文法(OPG文法)需要每个算符(即终结符)之间的优先关系最多只有一种(只有一种或没有,因此算符优先关系表中可以有空白)。
T5
算符优先分析法是自下而上分析法。
T6
最右推导为规范规约的逆过程,因此最右推导得到的句型为规范句型。
LR分析法中的R,指的正是最右推导的逆过程。
T7
规范规约也称最左规约,是最右推导的逆过程。
T8
无二义文法的句柄一定是唯一的。
T9
常识问题。
在规范规约的过程中,分析栈内的符号串和扫描剩下的输入符号串构成一个规范句型。
而使用最左素短语定义可归约串,得到的中间句型不一定是规范句型,因此算符优先分析法并不等同于规范规约。
T10
SLR(1)文法是LR(1)文法的真子集。这个S指的是“Simple”,加了个S,可以理解为在LR(1)的基础上作出了限制。
T11
送分题,不解释。
T12
同上,略。
T13
同上,略。
T14
同上,略。
T15
画出该句型的语法分析树即可快速找到句柄。
T16
LL(1)文法、算符优先文法、SLR(1)文法和LR(k)文法都是无二义文法。
T17
使用FIRST集合和FOLLOW集合一个个做判断即可。
T18
当句柄已知时,活前缀一定不会包含句柄之后的符号。
所有活前缀:ε、a、aB、aBc。
T19
先判断是否为算符文法,如果是算符文法,再通过算符优先关系表来判断。
T20
显然,从I4状态读入e后,来到I5,此时,对于I4中的S → iS·eS
,进入I5后变为S → iSe·S
,·
后面有非终结符S,则S的所有产生式,需要在右部头加·
,加入到I5中。此外,从I4读入e之后,对于I4的第二产生式S → iS·
没法继续前进了,因此不读入I5,综上,I5中的状态有上述四种。