第四章语法分析1(中国矿业大学).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文档。上传文档
查看更多
第四章语法分析1(中国矿业大学)

第四章 语法分析 * 源语言的文法可以分解为词法和语法 词法:描述语言单词符号构成的文法 语法:描述语言结构的文法 用正规文法或正规表达式描述单词符号的结构 用上下文无关文法描述语言的结构 什么是词法?什么是语法? 词法的产生式中的终结符号是单个字符 语法的产生式中的终结符号是单词符号 2型(上下文无关文法):产生式形式 A?? 3型(正规文法): A?aB或A?a A?Ba或A?a stmt? if expr then stmt ?if expr then stmt else stmt ?other expr? … ( A ?B... ?Z ?a ?b... ?z ?_) (( A ?B... ?Z ?a ?b... ?z) ?_ ?(0 ?1 ?.. ?9))* id ? A rid ?B rid ?... Z rid ? a rid ?b rid ?... ?z rid ?_ rid rid ? ? ? A rid ?... Z rid ? a rid ?... ?z rid ?_ rid ? 0 rid ?... ?9rid 语法分析任务:按照语言规定的语法规则,对词法分析形成的记号(单词)串进行语法检查,识别出相应的语法成分,采用语法树的形式输出,如果不符合语法要求则给出出错的原因。 语法分析程序:执行语法分析的程序,也称语法分析器. 语法分析的关键:句型的识别 词 法 分析器 语 法 分析器 源程序 单词符号 取下一个 单词符号 分析树 4.1 语法分析器的作用 S.P O.P 语义分析与中间代码生成 目标代码生成程序 代码优化 语法分析程序 词法分析程序 出 错 处 理 信 息 表 管 理 在编译程序的逻辑位置 书写格式约定 1、终结符号 (a)次序靠前的小写字母,如a,b,c (b)标点符号 (c)黑体的字串 if , for 2、非终结符号 (a)次序靠前的大写字母和S (c)小写的斜体的名字 expr 3、文法符号:次序靠后的大写字母 X,Y,Z 4、 终结符号串:次序靠后的小写字母,u,v,..z. 5、文法符号串:小写的希腊字母, α,β,? 1 自顶向下分析 2 自底向上分析 思想:从文法的开始符号出发,反复使用合适的产生式对句型中非终结符替换,寻找匹配于输入符号串的最左推导。若存在,则输入符号串在语法上是合法的,否则不合法。 思想:从输入符号串开始,逐步进行归约,直至归约到文法(语法)的开始符号。(最右推导的逆过程,称为规范归约) 语法分析方法 按语法分析途径,即生成分析树的方向,分为两类 S?aAS?a A ?SbA ?SS ?ba 自顶向下分析aabbaa A S a S b S A a a b a ?aSbAS ?aabAS ?aabbaS ?aabbaa ?aAS S S?aAS ? a A ?SbA ? SS ?ba 自底向上分析aabbaa A S a S b S A a a b a ?aAa ( a) ?aSbAa (SbA) ?aabbaa (a) ?aAS (aAS) S ?aSbbaa (ba) 对于无二义性文法句子的最左推导或最右推导是唯一的,也就是语法树是唯一的,是进行语法分析的基础 4.2 书写标准文法 4.2.1 消除文法二义性 4.2.2 消除左递归 4.2.3 提取左因子 1. 左递归的定义 一个文法G,若存在推导A A ?,其中, A∈VN,?∈(VT∪VN)*,则称G是左递归的。 +? 4.2.2 消除左递归 间接左递归例子 S ?Aa ?b A? Sd ? ? S ?Aa ?Sda 例如: E→E+T?T T→(E)?id 称E是直接左递归的 消除左递归? A A a A a A ?Aa ?b baa ? 如果我们在匹配输入串过程中,假定正好要用非终结符 A直接匹配输入串,即要用A的右部符号串A ¨¨去匹配,为 了用A ¨¨去匹配,又得用A去匹配,这样无限的循环下去 将无法终止。 A?A??? 其中?不以A打头 则可以改写为 A ??A’

文档评论(0)

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

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

1亿VIP精品文档

相关文档