将正规文法转化为正规式

将正规文法转化为正规式有以下几个规则:

通过一道例题来讲解:

①A-->aC|bA

②C-->bD

③D-->aC|bD|\varepsilon

(1)首先将②带入③(不能将自身带入自身例如D-->aC|bD|\varepsilon,文法中带D,不能带入D)

D=abD|bD|\varepsilon=(ab|b)D | \varepsilon,所以对应规则2(A-->xA|y),其中"(ab|b)"对应的是x,y对应的是\varepsilon

所以④D=x*y=(ab|b)*\varepsilon=(ab|b)*

(2)继续将②带入①:

⑤A=abD|bA

(3)将④带入⑤:

A=ab(ab|b)*|bA = bA|ab(ab|b)*,同样对应规则2,得到A=b*ab(ab|b)*

所以最后的结果为

A=b*ab(ab|b)*

C=bD

D=(ab|b)*

再来一道例题: 

 S→aA|a

 A→aA|dA|a|d

解如下: 

S = aA|a                

A = (aA|dA)|(a|d)=(a|d)A|(a|d)

由规则二: A = (a|d)*(a|d)

代入得: S = a(a|d)*(a|d)|a = a(a|d)*(a|d)|ε= a(a|d)*

 注:这里(ald)(ald)和(ald)是等价的,因为它们都表示任意多个(a或d)的组合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值