当前位置:首页 » 编程软件 » 左递归消除编译原理

左递归消除编译原理

发布时间: 2022-02-09 04:51:52

‘壹’ 编译原理:消除文法中的左递归

总得有个规则吧。如果不能提供,可以自己看看bison源代码分析--gcc源代码分析语法分析部分。

‘贰’ 编译原理中的左递归

1.A->Aa
2.A->Ba
B->Ab (A和B属于非终结符,a和b属于终结符)

通俗点讲:左递归就是情况1所说的“->”两边都含有同一个非终结符;
情况2所说的A->Ba中“->”后面的B 与 B->Ab中“->”前面的B是相同的非终结符
这两种情况就叫作左递归。

‘叁’ 编译原理语法分析中消除左递归的问题。比如A→Ab|c中为什么说它是左递归呢,明明是A定义为Ab或者

A->Ab|c为什么是左递归,和为什么要消除左递归:

定义,就无需争辩了。至于为什么自顶向下文法不能处理左递归,解释如下:

c∈FIRST(A),所以当预测分析的栈顶出现非终结符A,而输入字符串最左边为c时,就不知道用产生式A->Ab还是A->c了。无法构造预测分析表。比如输入字符串为cbb,我们人当然容易知道是A->Ab->Abb->cbb了,但是电脑没那么聪明,如果不消除左递归,只有回溯了。

‘肆’ 编译原理题 语法分析首先要求消除左递归吗

是的!

‘伍’ 编译原理 清除左递归

先提公因子

‘陆’ 编译原理题:消除以下文法的公共左因子和左递归

自己想的,不敢保证对错,若有纰漏,还请高手指教:
A->bAA'|aB
A'->bB|Bb
B->abB'|baB'
B'->aAB'|ε

‘柒’ 编译原理左递归消除

这些题很难啊!!!
都有间接左递归。要先变成直接左递归,然后消除掉。
--------------------
G3.1
S->SA|Ab|b|c
A->Bc|a
B->Sb|b
--------------------
间接左递归转直接左递归
B代入A:A ->(Sb|b)c|a -> Sbc|bc|a
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的产生式

--------------------
下面两题更难了,上一题反复代入还能把其他非终结符消掉,下面两个文法都是最后代入还剩下两个非终结符反复迭代,佛了!
G3.2
E->ET+|T

T->TF*|F

F->E|i
--------------------
F代入T: T->T(E|i)*|(E|i)->TE*|Ti*|E|i
T代入E:

--------------------
G3.3
S->V_1

V_1->V_2|V_1 2 V_2

V_2->V_3|V_2 + V_3
V_3->V_1 * |(
这些字母我都不认识了,换一下
S->A|SiA
A->B|A+B
B->S*|(
--------------------
B代入A:A->(S*|()|A+(S*|()->S*|(|A+S*|A+(
A代入S:

--------------------

‘捌’ 【编译原理】自顶向下LL(1)分析中,消除左递归和提取左因子的目的是什么

提取左因子---避免程序回溯;
消除左递归---消除死循环。

‘玖’ 编译原理的消除左递归是怎么回事啊

如果一个CFG像这样
A -> Ab
A -> e

就是有左递归,语法分析里的递归下降法和LL(1)就不能处理啦,因为程序会陷入递归而无法前进。
而CFG
A -> bA'
A' -> bA'|e
和前面一个表达的语言是一样的,但所有语法的第一项都是终结符,就消除了左递归。

有消除左递归的算法,一般编译原理书上会有介绍,不是很复杂。

‘拾’ 编译原理,如何消除文法的左递归

T::=ST'

T'::=,ST'|ε

热点内容
编程控制小船 发布:2025-01-11 05:35:05 浏览:756
萤石云清理缓存 发布:2025-01-11 05:34:29 浏览:779
怎么在电脑上传照片 发布:2025-01-11 05:30:20 浏览:487
python3哪个版本好 发布:2025-01-11 05:07:29 浏览:864
手机怎么访问外网 发布:2025-01-11 05:07:27 浏览:532
财务信息服务器搭建 发布:2025-01-11 04:48:09 浏览:875
算法实现过程 发布:2025-01-11 04:43:45 浏览:457
瞄准下载ftp 发布:2025-01-11 04:43:44 浏览:573
校园电影脚本 发布:2025-01-11 04:32:08 浏览:437
现在手机配置最高是什么 发布:2025-01-11 04:30:37 浏览:549