第5题
LL(1)文法的判断。
作业要求:
LL(1)文法本质含义是第一个L表明自顶向下分析是从左向右扫描输入串,第2个L表明分析过程中将使用最左推导,1表明只需向右看一个符号便可决定如何推导,即选择哪个产生式(规则)进行推导。
有以下文法G:
E->TE'
E'->+E|ε
T->FT'
T'->T|ε
F->PF'
F'->*F'|ε
P->(E)|a|b|^
(1)计算这个文法每个非终结符的FIRST集和FOLLOW集。
(2)证明这个方法是LL(1)的。
第7题
(3)设文法G[S]的LR(1)有效项目为: I=[S→.A,] 求closure({I})。 (4)设LR(1)项目集中有一状态Si: Si={[A→A+A.,+/],[A→A.+A,+/]} 求go(Si,+)。
第10题
采用语法制导翻译思想,表达式E的“值”的描述如下:
产生式 语义动作
如采用LR分析方法,给出表达式(5*4+8)*2的语法树并在各结点注明语义值VAL。
答:
采用语法制导翻译思想,表达式E的“值”的描述如下:
产生式 语义动作
假如终结符n可以是整数或实数,算符+和*的运算对象类型-致,语义处理增加“类型匹配检查”,请给出相应的语义描述。
第11题
A.LL(1)分析表指示栈顶为非终结符时面临输入符号应该选择的产生式
B.LL(1)文法的LL(1)分析表可以有多重定义
C.一个产生式只能在LL(1)分析表中填写一次
D.LL(1)分析表也可用于自底向上语法分析