社区
C语言
帖子详情
左递归与右递归
c*s*d*n
2008-09-05 03:50:28
请分别解释下 谢谢
...全文
1633
6
打赏
收藏
左递归与右递归
请分别解释下 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
baihacker
2008-09-05
打赏
举报
回复
参考:http://203.208.37.104/search?q=cache:2c9TQG9PoLwJ:study.hhit.edu.cn/component/ascx/AccessoryShow.aspx%3FSemester%3D%26Annex_ID%3D11556+%E5%B7%A6%E9%80%92%E5%BD%92+%E6%96%87%E6%B3%95%E5%AE%9A%E4%B9%89&hl=zh-CN&ct=clnk&cd=5&gl=cn&st_usg=ALhdy2-LQiKnFweX3kSBsO0fGpDrRv92uA
文法中的规则 UxUy
x=ε时,则有UUy,为左递归规则
y=ε时,则有UxU,为右递归规则
...
如果要自顶向下分析,先要消除左递归,可以参考相关算法.
lunarfan
2008-09-05
打赏
举报
回复
[Quote=引用 4 楼 qqwx_1986 的回复:]
引用 1 楼 hai040 的回复:
没听过
[/Quote]
qqwx_1986
2008-09-05
打赏
举报
回复
[Quote=引用 1 楼 hai040 的回复:]
没听过
[/Quote]
jieao111
2008-09-05
打赏
举报
回复
[Quote=引用 1 楼 hai040 的回复:]
没听过
[/Quote]
FingerStyle
2008-09-05
打赏
举报
回复
o o..
hai040
2008-09-05
打赏
举报
回复
没听过
[编译原理随记]预测分析法-
左
递归
右
递归
准备名词: 二义性:同一个记号串,能被多种分析树生成,这样的文法叫做二义性的文法。 超前扫描符号(lookahead):输入中当前被扫描的符号,就是输入串最左边第一个符号,当完成这个符号扫描之后,串的下一个称为lookahead。 非终结符:就是输入串可以继续拆分的符号。 终结符:输入串里面不能再拆分的符号。 预测分析法:是一种自顶向下的语法分析方法,使用超前扫描符号无二义地确定每个非终结符选择的过程,可以无二义处理非终结符。 ε产生式:是一个空串的产生式。
左
递归
-
右
递归
: 如果有一个这样
文法
左
递归
的消除(直接
左
递归
和间接
左
递归
)
一个文法G,若存在P经过一次或多次推导得到Pa(即能推导出以P开头的式子), 则称G是
左
递归
的。
左
递归
分为直接
左
递归
和间接
左
递归
。 直接
左
递归
经过一次推导就可以看出文法存在
左
递归
,如P→Pa|b。 间接
左
递归
侧需多次推导才可以看出文法存在
左
递归
,如文法:S→Qc|c,Q→Rb|b,R→Sa|a有S =>Qc =>Rbc =>Sabc 消除直接
左
递归
的方法:
编译原理 消除
左
递归
,直接
左
递归
、间接
左
递归
消除
左
递归
左
递归
的定义 如果存在非终结符PPP经过一步或一步以上推导出PαP\alphaPα,即 P⟹+PαP\stackrel{+}{\Longrightarrow}P\alphaP⟹+Pα则称PPP含有
左
递归
。 含有
左
递归
的文法将使自上而下的分析过程1陷入无限循环。
左
递归
的消除 消除直接
左
递归
假定关于非终结符PPP的规则为P→Pα∣βP\to P\alpha|\betaP→Pα∣β...
消除
左
递归
及提取左公因子
消除
左
递归
什么是
左
递归
? 如果一个文法中有一个非终结符号A使得对某个串α存在一个推导A=》Aα,那么这个文法就是
左
递归
的。
递归
分为立即
左
递归
和非立即
左
递归
。立即
左
递归
单步即可看出来,非立即
左
递归
举个例子: 立即
左
递归
: A ——> Aα | β 非立即
左
递归
: 1)A→aB 2)A→Bb 3)B→Ac 4)B→d 消除
左
递归
消除立即
左
递归
只需要遵循以下规律进行转换就ok。...
编译原理(三)直接
左
递归
与间接
左
递归
的消除
在进行语法分析的时候,如果采用自上而下的分析方法(从开始符开始,推句子),那么要求文法不是
左
递归
的,进而如果是
左
递归
的,则要求消除
左
递归
,因此
左
递归
只是在自上而下的那种文法里的。
左
递归
的定义:文法经过一次或多次推导之后,出现如下形式,原理是很简单了。
左
递归
的分类 直接
左
递归
:P → Pa 简介
左
递归
:P → Aa, A → …… → Pb 直接左递...
C语言
69,381
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章