编译原理my第二章2010.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文档。上传文档
查看更多
编译原理my第二章2010

第二章 前后文无关文法和语言 编译工作首先需要解决: 如何描述或定义一种程序设计语言 如何识别或分析这种程序设计语言 上世纪50年代,N.Chomsky对语言描述提出探讨,建立了四类文法的数学模型。 形式描述:用一组数学符号和规则来描述语言的方式。 形式语言:形式描述所用的数学符号和规则。 §2.1 文法及语言的表示 什么是语言?某字母表上符号串的集合。 语言的表示方法或定义方法: 1.枚举法 2.规则法 3.自动机(算法/过程) §2.2 文法和语言的定义 2.2.1 基本概念和术语 1)字母表:由若干元素组成的有限非空集合,其中每一元 素称为符号。 2)符号串:用字母表中的符号组成的任何有限序列。 符号串的长度:符号串中所含有符号的个数。 空符号串ε:|ε|=0. 3)符号串的前缀、后缀与子串:(真前(后)缀:) 4)符号串的连接和方幂:(ε是连接操作的单位元素) 5)符号串集合的和与积: A+B={w|w∈A或w∈B} AB={xy|x∈A且y∈B} 6)符号串集合的方幂和闭包:(正闭包、自反传递闭包) 2.2.2 文法和语言的形式定义 产生语言就是制定出有限个规则(文法),借助于它们,就能产生出此语言的全部句子。 ▲ 产生语言的规则中的一系列需定义的语法范畴的名字称为非终结符号,其集合记为 vN ▲ 规则中不需进一步定义的基本符号称为终结符号,其集合记为vT ▲ 非终结符中最终需要定义的那个为推导句子开始的语法范畴,被称为开始符号或识别符号,记作S ▲ 每一规则是用 ::= 或 ? 连接起来的有序对,亦称产生式,用P表示 句子::=主语短语动词短语 主语短语::=the名词 动词短语::=动词宾语短语 宾语短语::=冠词名词 名词::=monkey 名词::=banana 动词::=ate 动词::=has 冠词::=the 冠词::=a the monkey ate a banana 定义2.1 前后文无关文法 定义2.2 直接推导 定义2.3 推导 定义2.4 句型和句子 定义2.5 语言 定义2.6 直接递归、递归、递归文法 定义2.7 文法等价 L(G1)=L(G2) 引理2.1 §2.3 句型的分析 句型的分析是指构造一种算法,用以判断所给符号串是否为某一文法的句型(或句子) 。 分两类方法:自顶向下分析;自底向上分析 2.3.1 规范推导和规范归约 最左(右)推导:对一个推导序列中的每一直接推导,被替换的总是当前符号串中的最左(右)非终结符号。 左(右)句型:能由最左(右)推导推出的句型。 把最右推导称为规范推导,右句型为规范句型。 当有非终结符由多个候选式定义时,将成为带回溯的自顶向下分析。 问题:如何选用侯选式? 最右(左)推导的逆过程是最左(右)归约。最左归约为规范归约。 问题:对于规范归约的每一步,如何确定应被归约的最左子串? 2.3.2 语法树和二义性 引入语法树(推导树)更直观、更清晰地描述一句型或句子的语法结构. 树的性质: 子树:由某结点连同其所有后继组成的部分 。 直接子树:只有直接后继,而无更远的后继的子树(树高为1)。 文法G=(VN, VT, P, S)的推导树满足以下条件: (1)每一结点均有一标记,此标记为VN∪VT中的一个符号。 (2)树的根结点标记为文法的开始符号S。 (3)若一结点至少有一个直接后继,则此结点上的标记为VN中的一个符号。 (4)若一个以A为标记的结点有K个直接后继,且按从左至右的顺序,标记 为x1、x2、…、xk,则A?x1x2…xk必是G的一个产生式。 语法树与推导序列间为1对多的关系,但一语法树只对应于唯一的最左推导和最右推导。 L(G)的某个句子(句型)可能对应不只一个最左推导和最右推导,称这样的文法G为二义性文法。 如果一文法所产生的每一个句子都仅有一棵语法树,则称此文法为无二义性的。 任给的前后文无关文法是否具有二义性是不可判定的。 但对某些具体文法可判断其二义性或无二义性。 如LL(1)等文法。 另存在一些检查文法二义性的充分条件 。 如含有既是左递归又是右递归非终结符的文法必是二义性文法。 先天二义性语言:用于定义语言的一切文法都是二义性的。 2.3.3 短语和句柄 对于句型 η 的一棵语法树,如果它的一棵子树的根结点标记为 A,若此子树的末端结点标记自左至右排列起来所形成的符号串为 β,则 β 是句型 η 相对于 A 的一个短语;如果此子树为一棵

文档评论(0)

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

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

1亿VIP精品文档

相关文档