88问答网
所有问题
当前搜索:
编译原理消除左递归例题
消除
下列文法G[S]的
左递归
,获得与其等价的、无左递归的文法G’[S]。
答:
将第1个式子带入第3个式子,再将第2个式子也带入,得 R->Rbca|bca|ca|a 对其消除左递归,得 R->(bca|ca|a)R'R'->bcaR'|ε 最终文法变为:S->Qc|c Q->Rb|b R->(bca|ca|a)R'R'->bcaR'|ε 参考资料:
《编译原理》
张素琴等人编著 ...
编译原理
中的
左递归
答:
1.A->Aa 2.A->Ba B->Ab (A和B属于非终结符,a和b属于终结符)通俗点讲:
左递归
就是情况1所说的“->”两边都含有同一个非终结符;情况2所说的A->Ba中“->”后面的B 与 B->Ab中“->”前面的B是相同的非终结符 这两种情况就叫作左递归。
编译原理左递归消除
?
答:
A代入S:S -> S(Sbc|bc|a)|(Sbc|bc|a)b|b|c -> SSbc|Sbc|Sa|Sbcb|bcb|ab|b|c
消除
直接
左递归
S->bcbS'|abS'|bS'|cS'S'->SbcS'|bcS'|aS'|bcbS'|ε S'还是有直接左递归,继续消除 S'->bcS'T|aS'T|bcbS'T T->bcS'T|ε 最后,这题答案就是S,S',T的产生式 --- ...
如何
消除左递归
答:
移除A_i规则中的直接
左递归
} } 也许看上面的规则过于抽象,我们用S -> Aa | b , A -> Sc | d 来实践一下上述的方法。我们以S,A的顺序排列。则只需执行一次主程序体,且Ai 为A,Aj为S。则:A -> Aac | bc | d, 然后再运用前面的规则
消除
直接左递归可得:A -> bcA’ | dA’...
编译原理
语法分析中
消除左递归
的问题。比如A→Ab|c中为什么说它是左递归...
答:
A->Ab|c为什么是左递归,和为什么要
消除左递归
:定义,就无需争辩了。至于为什么自顶向下文法不能处理左递归,解释如下:c∈FIRST(A),所以当预测分析的栈顶出现非终结符A,而输入字符串最左边为c时,就不知道用产生式A->Ab还是A->c了。无法构造预测分析表。比如输入字符串为cbb,我们人当然容易...
编译原理
题目,要写详细
消除
下列文法G[E]的
左递归
。 E→E-T∣T T→...
答:
消除
文法G[E]的
左递归
后得到:E→TE’E’→ -TE’∣ε T→FT’T’→/FT’∣ε F→( E )∣i
编译原理
:考虑文法G[S]
答:
考虑文法:(1)消去
左递归
后:S→a|∧|(T)T→ST’T’ →,ST’|ε (2)计算每个非终结符的FIRST集合和FOLLOW集合:FIRST(S)={a,∧,(} FIRST(T)={ a,∧,(} FIRST(T’)={,ε} FOLLOW(S)={,#} FOLLOW(T)={ )} FOLLOW(T’)={ )} 预测分析表如下:\x09a\x09∧\x09(\x09)\x09,...
关于LL(1)文法的
编译原理
题目?
答:
如果首字符不相同,也没用左递归就说明此文法是LL(1)M→MaH|H H→(M)|b(M)|b 第一个产生式中存在左递归:M->MaH 第二个产生式中存在首字符相同:H->b(M) ,H->b 怎么改呢?对第一个产生式,
消除左递归
就是要变成右递归,把右边剩下的符号提到前面:M->aHM'M'->aHM'对第二个...
编译原理
文法问题,急急急
答:
第三题 最左推导的话,我认为要先
消除左递归
才行(把左递归转成右递归),消除之后:N->DN'N'->DN'|ε D->0|1|2|...|9 最左推导为 N->DN'->2N'->2DN'->25N'->25DN'->258N'->258 规范推导(最右推导)为N->ND->N8->ND8->N58->D58->258 --- 第四题 构造一下语法树...
编译原理
题目 s→ (L)|aS|a L→L,S|S
消除左递归
和回溯(过程请详细点...
答:
消除回溯:提取左公因子a,(注:用e代表一补西农符号,就是反三的那个符号,在电脑上不知道怎么打那个符号)S→aS'|(L)S'→S|e
消除左递归
:L→SL'L'→,SL'|e (注意S前面有一个符号“,”)
1
2
3
4
5
涓嬩竴椤
其他人还搜
消除间接左递归例题
消除左递归的公式
消除直接左递归
消除文法的左递归例题
消除左递归和回溯
编译原理消除左递归代码
消除文法左递归
语法树的画法编译原理
编译原理去掉ε原则