《编译原理》第1章-编译概述.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文档。上传文档
查看更多
《编译原理》第1章-编译概述

编译原理 金成植 金英 吉林大学计算机科学与技术学院 Email: jinying@ 第一章 编译概述 编译器和解释器 编译器的功能分解和组织结构 编译器的伙伴程序 编译器的实现途径 编译技术的作用 1. 编译器和解释器 程序设计语言的历史 机器语言:能够被计算机的硬件系统直 接执行的指令程序。 汇编语言:将硬件指令用一些助记符表 示。如ADD表示加法操作, SUB表示减法操作等等 高级语言:使用便于理解的自然语言。 1. 编译器和解释器 翻译程序(器):接受某种语言的源语言程序后,将它改造成另一种逻辑上等价的目标语言程序。 汇编程序:源语言为汇编语言,目标语言为机器语言的翻译程序。 编译程序(器):源语言为高级语言,目标语言是低级语言(汇编或机器语言)的翻译程序。 1. 编译器和解释器 解释程序(器):是语言的另一种实现方式。接受所输入的用程序语言(源语言)编写的程序(源程序),然后直接解释执行源程序。相当于源程序的抽象执行机。 1. 编译器和解释器 编译器和解释器的比较 2. 编译器的功能分解和组织结构 2. 编译器的功能分解和组织结构 编译器的前端:一般包括词法分析、语法分析、符号表构造、语义分析、中间代码生成、代码优化和错误处理等。此部分工作的特点是不依赖于具体机器。 编译器的后端:主要是指中间代码到目标代码生成的阶段。此部分紧密地依赖于中间代码和目标机 遍:对源程序或源程序的中间表示形式从头到尾扫描一次,生成新的中间结果或目标程序 3. 编译器的伙伴程序 编辑器 (editor) 除一般的文本编辑功能外,还可以对正在编辑的文本进行分析、提示、自动提供关键字匹配等功能。 预处理器(preprocessor) 删除源程序中的注释、执行宏替换以及包含文件的嵌入等。 连接程序(linker) 将不同的目标文件连接到一个可执行的文件中。 装入程序(loader) 将程序加载到内存中,以便执行。 调试程序(debugger) 在被编译的程序中判定执行错误的程序 4. 编译器的实现途径 预处理方法 用于语言的扩充。设已有L语言的编译器,其扩充语言L1的编译器可通过语言转换程序将L1程序转换为L程序,利用L的编译器,从而实现L1的编译器。 移植法 同一语言的编译器在不同机器间的移植。方法: a 目标代码的转换 b 修改中间代码到目标代码的转换 自展法 自我扩展,自己编写自己的编译器。 工具法 利用编译阶段各个部分的自动生成工具自动生成。 理论法 利用形式化描述理论,实现自动化。 5. 编译技术的作用 理解语言,编写出高效的代码 灵活设计实现自定义语言 提高软件设计技术 应用于涉及元级操作的实现 其它领域 * * 高级语言程序 (源程序) 低级语言程序 (目标程序) 编译程序 (器) 解释程序 (器) 高级语言程序 (源程序) 数据 计算结果 相对较慢 相对较快 运行速度 软件系统 硬件CPU 运行机构 数据结构(高级) 机器代码(低级) 内部形式 中小规模 规模较大 程序规模 解释器 编译器 表 处 理 错 误 处 理 目 标 代 码 生 成 中 间 代 码 优 化 中 间 代 码 生 成 语 义 分 析 语 法 分 析 词 法 分 析 目 标 程 序 源 程 序 需预处理的源程序 预处理器 源程序 编译程序 目标汇编程序 汇编程序 可重定位的目标代码 连接/装配程序 绝对目标代码 高级语言程序到可执行代码的转换过程 *

文档评论(0)

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

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

1亿VIP精品文档

相关文档