二义性文法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二义性文法.ppt

增加拓广产生式 定理:对任一文法G1都可以构造文法G2,使得L(G1)=L(G2),且G2的开始符唯一且不出现于任何产生式的右部。 证明:假设S是G1的开始符,则只要在G1中扩充一条新产生式Z?S即可,其中Z是新的开始符。另这样扩充后的文法为G2,则它显然满足定理的要求。 * 消除空产生式 定理:对任一文法G1,可构造文法G2,使得L(G1)=L(G2),且G2中无空产生式。 证明:根据G1,构造G2的方法如下: 令G2=G1; 令?={A | A??},?=??{A | A ?+?, ???+};对于文法中任意产生式A?X1X2…Xi-1XiXi+1…Xn,若Xi??,补充规则A? X1X2…Xi-1Xi+1…Xn;重复2,直到不补充新的产生式。 从G2.P中删除所有形如A??的产生式。 从G2.VN删除只能导出空串的非终极符。 例: A?aBcD B?b | ? D?BB | d * 消除不可达产生式 定理:对任一文法G1都可以构造文法G2,使得L(G1)=L(G2),且G2中的每个非终极符必出现在它的某个句型中。 证明:根据G1,构造文法G2的方法如下: 令G2=G1。 令?={S | S是文法的开始符},递归扩充? ?=??{B | A?xBy?G1, B?VN, A??}。 若A??,则删除以A为左部的所有产生式。 * 消除特型产生式 定理:对任一文法G1,可以构造文法G2,使得L(G1)=L(G2),且在G2中没有特型产生式。 证明:构造无特型产生式的文法G2的方法如下: 对文法G1中任意非终极符A,求集合 ?A={B | A?+B, B?VN}。 若B??A,且B??是文法G中的一个非特型产生式,则补充如下规则A??。 去掉文法G1中的所有的特型产生式。 去掉新的文法中的无用产生式。 例: A?B|D|aB B?C|b C?c D?B|d * 消除公共前缀 某个非终极符A有如下的两个产生式: A→??,A→?? 称这两个产生式有公共前缀。 方法: 对于产生式:A???1|??2|… |??n|? ,其中?表示不以?开头的字符串,引进非终极符A’,使产生式替换为: A ? ? A? | ? A? ? ?1|?2 |…| ?n * 消除左递归 一个文法含有下列形式的产生式时 (1) A?Aa |b 其中A?VN;a,? ?(VN?VT)* (2) A?B?|? B?A?|? 其中A,B ?VN; a,?,?,?? (VN?VT)* (1)称为直接左递归,(2)称为间接左递归,即文法中只要有A?+A…,则称文法为左递归的。 对于不含回路或空产生式,消除做递归方法为…… * (1)对直接左递归形如: A?A?|? 消除左递归得: A??A? A???A?|? (2)间接左递归形如: A?B?|? B?A?|? 消除左递归得: 转为直接左递归形式: A?A??|??|? 或者 B?B??|??|? 按照直接左递归方式消除。去掉多余的产生式。 * 消除文法二义性 S ? if E then S | if E then S else S | Other 该文法是一个二义性文法,与之等价的无二义性的文法如下: S ? M | U M? if E then M else M | Other U? if E then S | if E then M else U * 小结 语法分析概述 文法 * * 实质:产生式有两种以上的右部供选择 * 第三章 语法分析 语法分析概述 语法分析依据——文法 1 语法分析概述 语法分析的功能 语法错误的分类 语法错误处理 语法分析方法概述 * 1.1 语法分析的功能 * Token List 语法分析器 语法树 / 语法错误信息 1.2 语法错误类别 程序的开始符,语句(表达式)的开始符(后继符)错 标识符(常量)错:该出现时未出现 括号类错误:不匹配 分隔符错:赋值语句 * 1.3 语法错误处理 要求: 报告错误出现的位置 修复错误并继续检查后续部分 执行开销不应太大 处理策略: 紧急方式恢复; 短语级恢复; 出错产生式; 全局纠正。 * 2.4 语法分析方法概述 自顶向下 LL(1) 递归下降 自底向上 简单优先方法 LR族方法 * 2 语法分析的依据——文法 文法概述 文法相关的概念 文法等价变换 * 2.1 文法概述 文法能清晰地描述程序设计语言的语法构成,易于理解。 文法能构造有效的语法分析器,检查源程序是否符合语言规定的语法形式。 文法定义可以了解程序设计语言的结构,有利于将源程序转化

文档评论(0)

cdf1961 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档