88问答网
所有问题
S-〉S(S) S—〉a 先扩展,后求LR(1)文法。 请问需要消除左递归吗?我消除左递归再扩展算不算错
真诚求教。关系重大。
举报该问题
推荐答案 2013-02-26
LL文法需要消除左递归。LR(1)文法,不需要。不算,因为消除前和消除后等价的。看看龙书,书上说的很详细。来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://88.wendadaohang.com/zd/VMcMgMVM1.html
相似回答
...| B+C C-> )A* | ( 如何
消除递归,
转成LL
(1)文法
答:
原文法有
左递归,
利用A->Ab|a可以化为 A->aA`A`->bA`|e 可以得到,原文法可以化为G`
(S)
:S->A A->BA`A`->iBA`|e B->CB`B`->+CB`|e C->)A*|(
关于LL
(1)文法
答:
F ->i (3)i/i-i的分析过程:步骤 输入串 剩余串 移进或规约 1 # i/i-i 2 #i /i-i# E->TD 3 #DT ...剩余的只要按照书上的步骤填就行了。
编译原理
——LR
分析表
答:
两个参数状态i,终结符号a
(s(
i)代表第i个状态,r(i)代表第i条表达式)Goto[i,A]=j 文法 容易得知这个文法可以推出 0 1 00 01 等的字符串。因为它是
左递归
。不适用于 LL 文法分析,只能使用 LR 分析。因为本题入口有两个
——
S
→ L·L S → L ,所以需要构造额外的...
如何
消除左递归
答:
如果我们用非递归的LL文法分析,那么在我们将把A->Aa无限次地压入到栈中,即每次弹出A都会压入Aa。所以我们必须采取手段
消除左递归,
下面给出标准方法。其中β1…βn 不是从A开始 其实原理在于通过转换将A的语法不从非终结符号(A本身)开始,而是从终结符号β1…βn 开始。虽然A的原语法是从A...
消除
该
文法
的
左递归
答:
消除Ai规则中的直接左递归;} 化简由(2)所得到的
文法,
即去掉多余的规则。利用此算法可以将上述文法进行改写,来
消除左递归
。首先,令非终结符的排序为R、Q、S。对于R,不存在直接左递归。把R代入到Q中的相关规则中,则Q的规则变为Q→Sab/ ab/ b。代换后的Q不含有直接
左递归,
将其代入
S,S
...
考虑下面
文法
G
1
:
答:
(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’)={ )} 预测分析表如下:a∧(),SS→aS→∧S→(T)TT→ST’T...
LL
(1)
分析法是什么?
答:
LL
(1)
分析使用显式栈而不是递归调用来完成分析。以标准方式表示这个栈非常有用,这样LL(1)分析程序的动作就可以快捷地显现出来。在这个介绍性的讨论中,我们使用了生成成对括号的串的简单文法:S →
(S)
S | 且将额外的栈项推向右边。输入符号由左列向右。美元符号标出了输入的结束(它与由扫描程序...
消除左递归
的途径:
()
答:
消除左递归
的方法主要有两种:1. 直接消除左递归:通过改写文法规则,直接消除非终结符的左递归。这种方法的核心思想是将左递归规则改写为非左递归规则。以文法规则A→Aα|β为例,可以改写为A→βA'和A'→αA'|ε。其中,A'是一个新的非终结符,ε表示空字符串。通过这种改写,原规则中的左递归...
大家正在搜
S a
S-R
S a
S_a_k_
Sⅰa
S_a_e
L/S
S17
S.E
相关问题
对下面文法先消除左递归,并提取左公共因子,再判断其是否是LL...
对下面文法先消除左递归,并提取左公共因子,再判断其是否是LL...
如何消除左递归
对下面文法消除左递归:S->Qc|cQ->Rb|bR->Sa...
编译原理:消除文法中的左递归
编译原理,如何消除文法的左递归
编译原理 G[S]: S::=a|b|(T) T::=T,S...
编译原理A->A,(A)|a消除左递归