编译原理——第二章.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理——第二章.ppt

* * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.7.1 符号表接口 符号表上执行的操作有: insert(s, t):将字符串s和记号t插入符号表,返回相应表项的索引。 lookup(s):到符号表中查找字符串s,如果找到则返回相应表项的索引,否则返回0。 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.7.3 符号表的实现方法 符号表和存储字符串的数组 * * * * 《编译原理》 冶金工业出版社 编译原理——第二章 第2章 简单的一遍编译器 本章重点介绍编译器的前端部分,即词法分析、语法分析和中间代码生成,并通过开发一个把中缀表达式转换成后缀表达式的C++程序来展示一些基本的编译技术。 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.1 概述 程序设计语言可以通过描述以下两个方面来定义:第一方面是程序模式,即语言的语法;第二方面是程序含义,即语言的语义。为了说明语言的语法,广为使用的表示法是:上下文无关文法或者BNF(Baackus-Naur范式)。 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 编译器前端的结构 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.2 语法定义 上下文无关文法所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。上下文无关文法不适合描述任何自然语言,但对大多程序设计语言已基本够用了。 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.2.1 分析树 分析树亦称推导树,用来表示一个句型的推导。 一棵树(严格地说是有序有向树)是一个具有如下性质的图: (1)有一个称作根的结点,它无前趋,并且从它到每一个结点只有一条路径。 (2)除根以外,每个结点恰有一个前趋。 (3)每一个结点的后继“自左”排序。 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.2.2 二义性 如果一文法的句子存在两棵分析树,那么,该句子是二义性的。如果一文法包含二义性的句子,则说这个文法是二义性的;否则,该文法是无二义性的。 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.2.3 操作符的结合规则 9+5+2的左结合操作符和右结合操作符的分析树 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.2.4 操作符的优先级 算术表达式的最终文法为: expr → expr + term | expr – term | term term → term * factor | term / factor | factor factor → digit | (expr) * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.3 语法制导翻译 所谓语法制导翻译方法,实际上是根据产生式所包含的语义,用一个或多个例程(称为语义动作或语义例程)所要完成的功能来描述其语义,并将这些例程插入到产生式中的相应位置,从而形成了称之为翻译文法的文法。语义动作一方面表示了一个产生式所产生的符号串的语义,另一方面又可按照产生式的语义规定生成的某种中间代码进行哪些基本操作。 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.3.1 后缀表示 后缀表达式可归纳地定义为: (1)如果E是变量或常数,则E的后缀式就是E自身。 (2)如果E是“El op E2”形式的表达式,其中op是双目运算符,则E的后缀式为“ElE2op”,其中El和E2分别是E1和E2的后缀式。 (3)如果E是(E1)形式的表达式,则E1的后缀式也是E的后缀式。 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 2.3.2 语法制导定义 语法制导定义是上下文无关文法的推广,其中每个文法符号都有一个属性集,其中的属性可分成两类,分别称之为该文法符号的综合属性和继承属性。一个属性可以代表所要选择的任何对象。 * * * 《编译原理》 冶金工业出版社 编译原理——第二章 一个结点的综合属性值是从其子结点的属性值计算出来的。而继承属性值则是由该结点的兄弟结点和父结点的属性值计算的。 * * * 《编译原理》 冶金工业出版社 编译原理—

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档