网站大量收购闲置独家精品文档,联系QQ:2885784924

编译原理(0002.pptVIP

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新课引入 例:文法G[E]: (1) E→E+T (2) E→T (3) T→T*F (4) T→F (5) F→(E) (6) F→I 能不能采用简单优先分析法进行 分析? 算符优先分析法 教学目的与要求 教学重点 教学目的与要求 教学重点 1.算符文法 算符文法定义: 如果文法G中没有形如U?…VW…的产生式,其中V,W∈VN,则称G为算符文法(OG)。   3.算符优先关系表的构造   引入两个概念: 3.算符优先文法    设有一算符文法G,如果对任意两个终结符对a,b之间至多只有?、?和?三种关系的一种成立,则称G一个算符优先文法。    主讲教师:徐艳群 §1.2 编译过程概述(6个阶段) 翻译程序的工作,从输入源程序开始到输出目标程序为止的整个过程,是非常复杂的。但就其过程而言,他与人们进行自然语言的翻译有许多相近之出。 翻译外文书刊 编译源程序 分析 阅读原文 识别单词 分析句子 进行初步翻译 输入并扫视源程序 词法分析 语法分析 语义分析 及中间代码的生成 综合 修辞加工 写出译文 代码优化 目标代码生成 1.编译程序结构 编译程序从输入源程序到输出目标程序,可由五部分来组成: 源程序 词法分析器 语法分析器 语义分析器 中间代码生成 优化 目标代码生成器 目标代码 表格管理 出错处理 分析 综合 2.编译过程 编译过程可分为两个阶段或三个阶段: 源 程 序 编 译 程 序 目 标 代 码 编译时 初 始 数 据 运行子程序 目标代码 计 算 结 果 运行时 源 程 序 编 译 程 序 汇 编 语 言 汇 编 程 序 目 标 代 码 初 始 数 据 运行子程序 目标代码 计 算 结 果   编译程序完成从源程序到目标程序的翻译工作,是一个复杂的整体的过程。从概念上来说,一个编译程序的整个工作过程是划分成阶段进行的,每个阶段将源程序的一种表示形式转换成另一种表示形式,各个阶段进行的操作在逻辑上是紧密连接在一起的,下面给出了一个编译过程的各个阶段,这是一种典型的划分方法。 §1.3 编译程序的逻辑结构 1.编译逻辑过程   词法分析   语法分析   语义分析   中间代码生成   代码优化   目标代码生成   另外两个重要的工作:表格管理和出错处理与上述六个阶段都有联系。编译过程中源程序的各种信息被保留在种种不同的表格里,编译各阶段的工作都涉及到构造、查找或更新有关的表格,因此需要有表格管理的工作。如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动校正错误,这些工作称之为出错处理。 词法分析器 语法分析器 语义分析及中间代码生成器 优化器 目标代码生成器 出 错 处 理 程 序 表 格 管 理 程 序 源程序 单词符号 语法单位 中间代码 中间代码 目标代码 编译程序总框图 词法分析(第一个阶段)   从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描并分解为具有独立意义的最小语法单位—单词(也称单词符号或符号)。这里所谓的单词是指逻辑上紧密相连的一组字符,这些字符具有具体含义。比如标识符是由字母字符开头,后跟字母、数字字符的字符序列组成的一种单词。保留字(关键字或基本字)是一种单词,此外还有算符,界符等等。 2.编译程序各阶段任务   id1:= id2 + id3 * 60   二元式(单词类别,单词值) 词法分析(线性分析) 输入源程序,对构成源程序的字符串进行扫描和分解,依据词法规则(或构词规则)识别出一个个的单词(单词符号或符号),转换成机器容易识别的内码形式。 内码用二元式(类号,内码)表示。 int x,a,b; x=a+b*50; 基本字 int 标识符 x,a,b 整常数 60 运算符 +,*,= 界限符 , ,; 读字符流的源程序、识别单词   例:   position:=initial+rate*60  单词类型 单词值  标识符1(id1)   position  算符(赋值) := 标识符2(id2) initial 算符(加)   + 标识符3(id3) rate 算符(乘)      * 整数          60 分号      ; 词法分析   是编译过程的第二个阶段。语法分析的任务是在词法分析的基础上根据语言的语法规则(文法规则),把单词符号串组成各类语法单位(语法范畴),如“程序”,“语句”,“表达式”等等。 2.语法分析(parsing或syntax

文档评论(0)

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

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

1亿VIP精品文档

相关文档