第1章-编译概述

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解释器
程序规模 规模较大
中小规模
内部形式 机器代码(低级) 数据结构(高级)
运行机构 硬件CPU
软件系统
运行速度 相对较快
相对较慢
2. 编译器的功能分解和组织结构
表处理



















生Baidu Nhomakorabea

















错误处理
2. 编译器的功能分解和组织结构
编译器的前端:一般包括词法分析、语法分析、 符号表构造、语义分析、中间代码生成、代码 优化和错误处理等。此部分工作的特点是不依 赖于具体机器。
预处理器(preprocessor) 删除源程序中的注释、 执行宏替换以及包含文件的嵌入等。
连接程序(linker) 将不同的目标文件连接到一 个可执行的文件中。
装入程序(loader) 将程序加载到内存中,以便 执行。
调试程序(debugger) 在被编译的程序中判定 执行错误的程序

需预处理的源程序
移植法
同一语言的编译器在不同机器间的移植。方法:
a 目标代码的转换 b 修改中间代码到目标代码的转换
自展法 工具法 理论法
自我扩展,自己编写自己的编译器。
利用编译阶段各个部分的自动生成工具自动生成。 利用形式化描述理论,实现自动化。
5. 编译技术的作用
理解语言,编写出高效的代码 灵活设计实现自定义语言 提高软件设计技术 应用于涉及元级操作的实现 其它领域
1. 编译器和解释器
翻译程序(器):接受某种语言的源语言程序后, 将它改造成另一种逻辑上等价的目标语言程序。
汇编程序:源语言为汇编语言,目标语言为机器语 言的翻译程序。
编译程序(器):源语言为高级语言,目标语言是 低级语言(汇编或机器语言)的翻译程序。
高级语言程序 (源程序)
编译程序 (器)
低级语言程序 (目标程序)
1. 编译器和解释器
解释程序(器):是语言的另一种实现方式。 接受所输入的用程序语言(源语言)编写的 程序(源程序),然后直接解释执行源程序。 相当于源程序的抽象执行机。
高级语言程序 (源程序)
数据
解释程序 (器)
计算结果
1. 编译器和解释器
编译器和解释器的比较
编译器
编译器的后端:主要是指中间代码到目标代码 生成的阶段。此部分紧密地依赖于中间代码和 目标机
遍:对源程序或源程序的中间表示形式从头到 尾扫描一次,生成新的中间结果或目标程序
3. 编译器的伙伴程序
编辑器 (editor) 除一般的文本编辑功能外, 还可以对正在编辑的文本进行分析、提示、自 动提供关键字匹配等功能。


预处理器


源程序

到 可
编译程序


目标汇编程序

码 的
汇编程序


可重定位的目标代码


连接/装配程序
绝对目标代码
4. 编译器的实现途径
预处理方法
用于语言的扩充。设已有L语言的编译器,其扩充语言L1的编 译器可通过语言转换程序将L1程序转换为L程序,利用L的编 译器,从而实现L1的编译器。
编译原理
第一章 编译概述
编译器和解释器 编译器的功能分解和组织结构 编译器的伙伴程序 编译器的实现途径 编译技术的作用
1. 编译器和解释器
程序设计语言的历史 机器语言:能够被计算机的硬件系统直
接执行的指令程序。 汇编语言:将硬件指令用一些助记符表
示。如ADD表示加法操作, SUB表示减法操作等等 高级语言:使用便于理解的自然语言。
相关文档
最新文档