没有合适的资源?快使用搜索试试~ 我知道了~
编义技术(文法的二义性)
5星 · 超过95%的资源 需积分: 33 38 下载量 6 浏览量
2010-09-18
09:21:49
上传
评论 3
收藏 24KB DOC 举报
温馨提示
试读
1页
证明下面的文法是二义的: S→iSeS|iS|i 根据文法的二义性的定义,如果要证明该文法是二义的,必须找到一个句子
资源推荐
资源详情
资源评论
例 9 证明下面的文法是二义的:
S→i S e S|i S|i
【解】解题思路:
根据文法的二义性的定义,如果要证明该文法是二义的,必须找到一个句子,使得该
句子具有两个不同的最右推导或两个不同的语法树。我们首先分析这个文法,根据我们对
程序语言的了解,不难发现,这个文法应该是用来表示 if….else….结构的(用“i”代表“if”
或语句集,“e”代表“else”)。因此我们就要到 if….else…结构中去找二义性。我们知道,
程序语言一般都规定 else 部分是和它前面离它最近的没有被匹配的的 if 语句进行匹配。而
上面的这个文法体现不出这种限制,因此我们可以找这样一个句子,在 else 前面有两个
if(如句子 iiiei), else 和不同的 if 进行匹配时就会产生不同的语义。
解答:
考虑句子 iiiei,存在如下两个最右推导:
S => iSeS => iSei => iiSei => iiiei
S => iS => iiSeS => iiSei => iiiei
资源评论
- w9292967932014-05-20虽然内容少,不过还是很详细很感谢
- YUXUYANGJIAN2012-11-11能解决问题,但是只有这一种情况,不全面
- east11072012-11-11就讲这么一道题,内容太少了吧
- 懒人一枚2013-09-26对理解二义性还是有一定帮助的
xueyaping1989
- 粉丝: 6
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功