二义性文法的理解和消除方法

给定文法G,如果存在句子s,它有两棵不同的分析树,那么称G是二义性文法
从编译器角度,二义性文法存在问题:
同一个程序会有不同的含义
因此程序运行的结果不是唯一的
一个句子有多于一棵分析树,仅与文法和句子有关,与采用的推导方式无关。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

悬空else问题

在复合if语句中,可能then多于else,使得else不知与哪个then结合.一般原则是右结合,即else与左边最靠近的then结合。改写文法的根据是将S分为完全匹配(MS)和不完全匹配(UMS)两类,并且在UMS中规定else右结合。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然而,悬空else问题不能够完全解决问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值