消除左递归

参考关健Young的博客,网址:http://blog.sina.com.cn/s/blog_687911280100nc8t.html

左递归形式为:

1)A→Aβ,A∈VN,β∈V*

2)A→Bβ,B→Aα,A、B∈VN,α、β∈V*

称其为左递归。


其中可以采取修改左递归为右递归:

A→Aβ|γ。其中β非空,γ不以A打头

可写为:A→γA'

                A'→βA'|ε


即:

A→Aα1| Aα2 ||Aαm12|n

其中,αi(1≤i≤m)均不为空,βj(1≤j≤n)均不以A打头。

则消除直接左递归后改写为:

A→ β1A'| β2 A' || βnA'

A'→ α1A' | α2A' || αmA'|ε


例4.12:有文法G(E):

E→E +T |T

T→T*F | F

F→i| (E)

消除该文法的直接左递归。

解:按转换规则,可得:

E→TE'

E'→+TE'|ε

T→FT '

T'→*FT'|ε

F→i| (E)


腾讯实例:

S->Aa|b A->Ac|Sd|e,消除左递归

左递归消除方法如下:其中e为空集

U=Ux1|Ux2|y1|y2--àU=y1U’|y2U’ U’=x1U’|x2U’|e

故此为:A->Ac|Sd|e

A=Ac|Aad|bd|e ---àA=bdA’|A’  A’=cA’|adA’|e





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值