编译原理及实现技术(张睿)精品课件4.pptVIP

编译原理及实现技术(张睿)精品课件4.ppt

  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 语法分析概述 语法分析的功能 语法错误的分类 语法错误处理 语法分析方法概述 * 1.1 语法分析的功能 Token List 语法分析器 语法树 / 语法错误信息 * 1.2 语法错误类别 程序的开始符,语句(表达式)的开始符(后继符)错 标识符(常量)错:该出现时未出现 括号类错误:不匹配 分隔符错:assignment * 1.3 语法错误处理 要求: 报告错误出现的位置 修复错误并继续检查后续部分 执行开销不应太大 处理策略: 紧急方式恢复; 短语级恢复; 出错产生式; 全局纠正。 * 2.4 语法分析方法概述 自顶向下 LL(1) 递归下降 自底向上 简单优先方法 LR族方法 * 2 语法分析的对象——文法 文法概述 文法相关的概念 文法等价变换 * 2.1 文法概述 文法能清晰地描述程序设计语言的语法构成,易于理解。 文法能构造有效的语法分析器,检查源程序是否符合语言规定的语法形式。 文法定义可以了解程序设计语言的结构,有利于将源程序转化为目标代码及检查出语法错误。 基于文法实现的语言易于扩展 * 2.1.1 文法的形式化定义 文法G定义为四元组(VT,VN,S,P) VT是有限的终极符集合 VN是有限的非终极符集合 S是开始符,S? VN P是产生式的集合,且具有下面的形式: ???,其中?,??(VT?VN)* * 2.1.2 文法分类 O型文法:也称为短语文法,其产生式具有形式: ?→?,其中?,??(VT?VN)*,并且?至少含一个非终极符 。 1型文法:也称为上下文相关文法。它是0型文法的特例,要求|?| ? |?| (S→?例外,但S不得出现于产生式右部)。 2型文法:也称为上下文无关文法。它是1型文法的特例,即要求产生式左部是一个非终极符: A→? 。 3型文法:也称为正则文法。它是2型文法的特例,即产生式的右部至多有两个符号,而且具有下面形式之一: A →a ,A →a B 其中A,B?VN ,a?VT 。 * 2.1.3 上下文无关文法 定义为四元组(VT,VN,S,P) VT是有限的终极符集合 VN是有限的非终极符集合 S是开始符,S? VN P是产生式的集合,且具有下面的形式: A?X1X2…Xn 其中A?VN,Xi?(VT?VN) ,右部可空。 * 2.2 文法相关概念 推导(直接推导):如果A??是一个产生式,则有?A????? ,其中?表示一步推导。这时称???是由?A?直接推导的。 /*?的含义是,使用一条规则,代替?左边的某个符号,产生?右端的符号串。*/ ? ?+ ?: 表示?通过一步或多步可推导出? ? ?* ? : 表示?通过0步或多步可推导出? * 句型:如果有S?* ? ,则称符号串?为CFG的句型 。我们用SF(G)表示文法G的所有句型的集合。 句子:如果?只包含终极符,则称?为CFG的句子。 语言:L(G)={ u| S ?+ u ,u ? VT* }文法G所定义的语言是其开始符所能推导的所有终极符号串(句子)的集合。 * 最左(右)推导:如果进行推导时选择的是句型中的最左(右)非终极符,则称这种推导为最左(右)推导,并用符号?lm(?rm)表示最左(右)推导。 左(右)句型:用最左推导方式导出的句型,称为左句型,而用最右推导方式导出的句型,称为右句型(也称为规范句型)。 * 短语:设S是文法的开始符,???是句型(即有S ?*???),如果满足条件: S?* ?A? A?+ ? ??VT+ 则称?是句型???的一个短语。 直接短语(简单短语):如果满足条件: S?* ?A? A? ? ??VT+ 则称?是句型???的一个简单短语。 句柄:一个句型可能有多个简单短语,其中最左的简单短语称之为句柄。 * 语法分析树(简称分析树)用来描述句型的结构,是句型推导的一种树型表示。给定文法 G=(VN,VT,S,P),则称满足下面条件的树为G的一棵语法分析树: 每个结点都有G的一个文法符号,并且根结点标有初始符S,非叶结点标有非终极符,叶结点标有终极符或非终极符或?。 如果一个非叶结点A有n个儿子结点(从左到右)为 X1,X2,...,Xn,则G一定有产生式 A→X1X2 ...Xn 。 * 线性推导:称用?符号进行的推导为线性推导 。 树型推导与线性推导的不同:线性推导指明了推导的顺序,而树型推导则没有指明推导的顺序。因此,句型一般只有一棵分析树(如果无二义性),而线性推导则可以有很多棵分析树。 二义性文法:如果一个文法的某个句型有两棵不同的语法分析树,则称该文法二义性为二义性文法

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档