社区
数据结构与算法
帖子详情
消除 直接左递归
styleking
2008-12-03 08:48:52
E->E+T|T
T->T*F|F
F->(E)|I
...全文
479
7
打赏
收藏
消除 直接左递归
E->E+T|T T->T*F|F F->(E)|I
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nicosile5258
2011-05-05
打赏
举报
回复
哎!!头都大了,编译怎么才学得懂呀!
zm881210
2008-12-24
打赏
举报
回复
你写的也太抽象点了吧!
jieao111
2008-12-24
打赏
举报
回复
1楼正解
nail63547188
2008-12-23
打赏
举报
回复
著名的号称“龙书”的编译原理那本书中有消除左递归的算法。
CPlusPlusFans
2008-12-22
打赏
举报
回复
不要研究LL(1)文法了,LL(1)很难使用语法制导翻译,还是考虑LALR和LR(1)文法吧
qq675927952
2008-12-22
打赏
举报
回复
LZ 是想要程序实现吗?
C1053710211
2008-12-03
打赏
举报
回复
E->TE`
E`->+TE`|空
T->FT`
T`->*FT`|空
F->(E)|I
编译原理
消除
左递归
,
直接
左递归
、间接
左递归
消除
左递归
左递归
的定义 如果存在非终结符PPP经过一步或一步以上推导出PαP\alphaPα,即 P⟹+PαP\stackrel{+}{\Longrightarrow}P\alphaP⟹+Pα则称PPP含有
左递归
。 含有
左递归
的文法将使自上而下的分析过程1陷入无限循环。
左递归
的
消除
消除
直接
左递归
假定关于非终结符PPP的规则为P→Pα∣βP\to P\alpha|\betaP→Pα∣β...
文法
左递归
的
消除
(
直接
左递归
和间接
左递归
)
一个文法G,若存在P经过一次或多次推导得到Pa(即能推导出以P开头的式子), 则称G是
左递归
的。
左递归
分为
直接
左递归
和间接
左递归
。
直接
左递归
经过一次推导就可以看出文法存在
左递归
,如P→Pa|b。 间接
左递归
侧需多次推导才可以看出文法存在
左递归
,如文法:S→Qc|c,Q→Rb|b,R→Sa|a有S =>Qc =>Rbc =>Sabc
消除
直接
左递归
的方法:
编译原理:
直接
左递归
和间接
左递归
的
消除
1.
直接
左递归
的
消除
采用扩充BNF表示 设有产生式 A→Aα |Aα |…|Aα |β |β |…|β 设有产生式 A→Aα|Aα|…|Aα|β|β|…|β 引进新的非终结符号,将
左递归
改写为右递归。 设有产生式 A→Aα |Aα |…|Aα |β |β |…|β 设有产生式 A→Aα1|Aα2|…|Aαm|β1|β2|…|βn 其中yi(i=1,2,…,n)均不以符号U为首,增加新非终结 符...
编译原理(三)
直接
左递归
与间接
左递归
的
消除
在进行语法分析的时候,如果采用自上而下的分析方法(从开始符开始,推句子),那么要求文法不是
左递归
的,进而如果是
左递归
的,则要求
消除
左递归
,因此
左递归
只是在自上而下的那种文法里的。
左递归
的定义:文法经过一次或多次推导之后,出现如下形式,原理是很简单了。
左递归
的分类
直接
左递归
:P → Pa 简介
左递归
:P → Aa, A → …… → Pb
直接
左递...
编译原理—
消除
直接
左递归
自顶向下语法分析语法分析从顶部(树根、文法的开始符号)到底部(叶子、语言的终结符号)为输入的符号串建立分析树。自顶向下语法分析要求无
左递归
,有
左递归
会陷入无穷递归。
左递归
一个文法G,若存在P经过一次或多次推导得到Pa(即能推导出以P开头的式子), 则称G是
左递归
的。
左递归
分为
直接
左递归
和间接
左递归
。
直接
左递归
经过一次推导就可以看出文法存在
左递归
,如P→Pa|b。间接
左递归
侧需多次推导才可以看出文法...
数据结构与算法
33,025
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章