第四章2文法相关知识.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文档。上传文档
查看更多
第四章2文法相关知识

第四章 方法相关知识 文法例1 文法G(z):Z ? D Z ? Z D D ? 0 |1 |…|9 句子12的推导: Z ? ZD ?DD ?1D ?12 Z ? ZD ?DD ?D2 ?12 文法例2 文法G=({+,*,i,( ,)},{E},E,P),其中P为: E ? i E ? E + E E ? E * E E ? ( E ) 句子:i * i + i : 文法二义性的消除 二义性文法的判定是递归不可解的 消除二义性的方法: 1.不改变文法中原有的语法规则,仅加进一些非形式化规则,该规则可在产生二义性的情况下,指出哪一个分析树是正确的 如:运算的优先级,左结合。 2.构造一个等价的无二义文法,即把排除二义性的规则合并到原有文法中,改写原有文法。(思路:把优先级高的放到分析树下边,也就是只能是优先级低的产生式调用优先级高的产生式) 表达式的无二义性文法 E ? T E ? E + T T ? F T ? T * F F ? ( E ) F ? i If语句的无二义性文法定义 Stmt ? Matched_stmt | Unmatched_stmt Matched_stmt ? if E then Matched_stmt else Matched_stmt | other Unmatched_stmt ? if E then Stmt | if E then Matched_stmt else Unmatched_stmt 有关文法实用中的一些说明 有关文法的实用限制 ? 有害规则 U ? U ? 多余规则{ 不可到达的,不可终止的 } 1.规则A?a的左部A不在其它任何规则的右部出现 (A不是初始符) 2.某个非终结符A,无法从它推导出任何终结符 上下文无关文法中的?规则 A ? ? (可导出? 的非终级符在语法分析时可能消失,因为最终为? ) 求能推出?的非终极符 S_Lambda = {Aj | Aj ? ? ? PSet}; 对p?PSet:Ap ? X1…Xn, 如果X1…Xn ?S_Lambda, 则 S_Lambda = S_Lambda ? {Ap} 重复第二步,直至S_Lambda收敛为止 消除空产生式算法 S_Lambda = {Aj | Aj ?+ ?}; 删除所有的空产生式和只能导出空串的非终极符。 对剩余的每个产生式P:A?C1C2…Cp 如果有Ci?S_Lambda,因为删除了所有的空 产生式,需要扩充一些产生式: A?C1…Ci-1Ci+1…Cp 重复上述过程直至不出现新的产生式为止。 语法分析方法 语法分析分为两大类: 自顶向下分析方法 递归子程序法 LL分析方法 自底向上分析方法 优先关系法 LR分析方法 自顶向下分析概述 从文法开始符出发试图推导出所给的终极符串。 例 G[z] : [1] Z ?aBd [2] B ?d [3] B ?c [4] B ?bB 对给定的终极符串abcd,推导过程: Z ?[1] aBd ?[4] abBd ?[3] abcd 问题 自顶向下方法的关键问题是:使用哪个产生式进行替换。 要点 如果栈顶是终极符,则要与输入流中的头进行匹配,若匹配成功,则删除栈顶元素,并将输入指针移一位;若匹配失败,则表示输入流有错。 如果栈顶是非终极符A,则要选择与当前输入符相匹配的A产生式,并用该产生 式的右部替换栈顶上的非终极符。 基本概念 直接推导:仅使用一次规则 推导:a0 ?+ an 句型、句子:文法G有S ?+ x,若x ?(VT?VN )*,则称x 是G的一个句型;若x ?VT,则称x是G的一个句子。 语言:文法G的所有句子的集合称为G所定义的语言,记为L(G). 基本概念

文档评论(0)

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

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

1亿VIP精品文档

相关文档