- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 根据编译程序各部分功能,将编译程序分成前端和后端 前端:通常将与源程序有关的编译部分称为前端——分析部分。 包括:词法分析、语法分析、语义分析、中间代码生成 特点:与源语言有关 后端:与目标机有关的部分称为后端——综合部分。 包括:代码优化、代码生成 特点:与目标机有关 编译程序的前端和后端 1.4 编译程序的前端、后端、遍 * 第一遍 第二遍 …… S.P 中间形式1 S.P 中间形式2 C2 C1 S.P O.P 上一遍的结果是下一遍的输入,最后一遍生成目标程序。 对源程序(包括源程序中间形式)从头到尾扫描一次,并做有关的加工处理,生成新的源程序中间形式或目标程序,通常称之为一遍。 1.4 编译程序的前端、后端、遍 * 一遍扫描即可完成整个编译工作的称为一遍扫描编译程序 遍的划分视具体情况而定(内存的大小、源语言的繁简、目标程序质量的高低)。 优点: 1、减少对内存容量的要求 2、编译程序结构清晰、各遍功能独立、相互联系简单 缺点: 增加读写中间文件的次数,降低效率 1.4 编译程序的前端、后端、遍 * 应用:大部分软件工具的开发,都要使用编译技术和方法 高级语言的翻译工具,自然语言理解 编辑器,信息检索,模式识别 软件测试工具 静态分析器:不可能执行的代码、定义后未引用的变量 动态测试工具:运行后与期望结果比较 程序理解工具:确定调用关系,画出流程图 排版、绘图系统 1.5 编译技术的应用与发展 * 并行编译技术 目的:提高并行计算机体系结构的性能,超大规模计算 的日益增长的需求。两种实现方法: 利用重构技术将串行程序并行化 直接编写并行程序 交叉编译技术 由于目标机指令系统与宿主机的指令系统不同,编译时 将应用程序的源程序在宿主机上生成目标机代码,称为 交叉编译。 发展: 1.5 编译技术的应用与发展 * 1.判断下面的陈述是否正确。 (1)高级语言程序到低级语言程序的转换是基于功能的 等价变换; (2)含有优化部分的编译程序的执行效率高; (3)因为编译程序和解释程序具有不同的功能,所以它 们的实现技术也完全不同; (4)编译程序和解释程序的根本区别在于解释程序对源 程序并没有真正进行翻译; (5)无论一遍扫描的编译器还是多遍扫描的编译器都要 对源程序扫描一遍。 课堂练习 答案:(1)??T ??(2)??F (3)??F ?? (4)??F ?? (5) T * 答案:(1)??语法?? (2)?语义 ??(3)?词法 请指出下列错误信息是编译的哪个阶段报告的: (1)else没有匹配的if ; (2)使用的函数没有定义 ; (3)在数中出现非数字字符 。 课堂练习 * * * * * 编译原理 * 第一章 编译的基本概念 * 基本概念 术语: 语言和程序 翻译程序和翻译方式 宿主机与目标机 编译过程概述 编译程序的逻辑结构 编译程序的前端、后端、遍 编译技术的应用与发展 * 语言:符合一定规则(文法)的程序的集合 低级语言 字位码、机器语言、汇编语言 特点:与特定的机器有关,功效高,但使用复杂、繁 琐、费时、易出错 高级语言 Fortran、Pascal、C、JAVA等 特点:不依赖具体机器,移植性好、对用户要求低、易 使用、易维护等。 1.1 术语 * 1.1 术语 程序:一组指令组成的序列,称为程序 源程序:用汇编语言或高级语言编写的程序称为源程序 目标程序:用目标语言所表示的程序,可以是介于源语言和 机器语言之间的“中间语言”,可以是某种机器 的机器语言,也可以是某机器的汇编语言。 翻译程序:将源程序转换为目标程序的程序称为翻译程序。 它是指各种语言的翻译器,包括汇编程序和编译 程序,是汇编程序、编译程序以及各种变换程序 的总称。 * 源程序、翻译程序、目标程序三者关系: 源程序 翻译程序 目标程序 SOURCE PROGRAM TRANSLATER OBJECT PROGRAM 即源程序是翻译程序的输入,目标程序是翻译程序的输出。 1.1 术语 * 汇编程序 若源程序用汇编语言书写,经过
文档评论(0)