不确定的自顶向下的分析思想和确定的自顶向下的分析方法

在前面可以看出,可以根据当前文法不满足LL(1)时,则不能用确定的自顶向下分析,但在这种情况下,可用不确定自顶向下的分析法,也就是说带回溯的自顶向下的分析法。引起回溯的原因是在文法中当关于某个非终结符的产生式有很多时,当面临当前的输入符无法确定选用唯一的产生式,从而引起回溯,下面说明三个简单的例子。


1,由于相同的左部的产生式的右部first集交集不为空而引起回溯。



2,由于相同的左部非终结符的右部存在能推导出空串的产生式,且该非终结符的FOLLOW集中含有其他产生式右部的first集的元素。



3,由于文法含有左递归而引起回溯。



由以上的例子可以看出,带回溯的自顶向下的分析是一个试探过程,当分析不成功时退回到适当位置再重新试探其他的候选的可能的推导,这样需要记录已选过的产生式,直到把所有的推导序列都试完仍不能确定该输入串不是该文法的句子而报销,由于在编译的程序真正实现时往往是边分析边插入语义分析动作,因此带回溯分析代价会很高,效率很低,在实用编译程序中几乎不用,因此对他实现的详细算法不再进行介绍。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值