编译程序又可根据用途和侧重点的不同, 进一步分类为: ①诊断编译程序(Diagnostic Compiler)) 专门用于帮助程序开发和调试的编译程序 ②优化编译程序(Optimizing Compiler) 着重于提高日标代码效率的编译程序 ③交叉编译程序(Cross Compiler) 能够产生不同于其宿主机机器代码的编译程序 ④可变目标编译程序(Retargetable complier) 无须重写与机器无关部分就能改变目标机的 编译程序 CompilerPrinciples
CompilerPrinciples 21 ❖ 编译程序又可根据用途和侧重点的不同, 进一步分类为: ①诊断编译程序(Diagnostic Compiler) 专门用于帮助程序开发和调试的编译程序 ②优化编译程序(Optimizing Compiler) 着重于提高目标代码效率的编译程序 ③交叉编译程序(Cross Compiler) 能够产生不同于其宿主机机器代码的编译程序 ④可变目标编译程序(Retargetable complier) 无须重写与机器无关部分就能改变目标机的 编译程序
与编译程序相关的程序 本讲义只介绍编译程序(器)构造的基本原 理、方法与技术,但在一个完整的语言开发 (或称程序设计)环境中,除了编译器这一 主要工具外,还需要其他一些工具,如编辑 器、连接器、装入程序等。现代计算机系统 常将这些相互独立的程序设计工具集成起来 构成一个集成化的程序开发环境,以提高程 序设计效率和程序的质量。如Turbo C、 Visual C++等语言环境都是集成化的程序设 计环境。而Ada语言的集成环境是这方面的 c热型代表 。 21
CompilerPrinciples 22 二、与编译程序相关的程序 本讲义只介绍编译程序(器)构造的基本原 理、方法与技术,但在一个完整的语言开发 (或称程序设计)环境中,除了编译器这一 主要工具外,还需要其他一些工具,如编辑 器、连接器、装入程序等。现代计算机系统 常将这些相互独立的程序设计工具集成起来, 构成一个集成化的程序开发环境,以提高程 序设计效率和程序的质量。如Turbo C、 Visual C++等语言环境都是集成化的程序设 计环境。而Ada语言的集成环境是这方面的 典型代表
如Ada语言的集成环境是一个分层的程序开发环境 APSE MAPSE 编辑程序 编译程序 KAPSE 配置管 理程序 调试 宿主机 程序 0s 其他 工具 工具界面 接程序 命令 解释 用户界面 程序 23 CompilerPrinciples
CompilerPrinciples 23 如Ada语言的集成环境是一个分层的程序开发环境 编译程序 MAPSE 编辑程序 连 接 程 序 宿主机 OS APSE 工具界面 用户界面 KAPSE 调试 程序 配置管 理程序 命令 解释 程序 其他 工具
这儿要强调的是:尽 管本课程只介绍编译 的基本理论、方法和 技术,但这些基本理 论、方法与技术对其 他工具的构造同样起 作用! 24 CompilerPrinciples
CompilerPrinciples 24 这儿要强调的是:尽 管本课程只介绍编译 的基本理论、方法和 技术,但这些基本理 论、方法与技术对其 他工具的构造同样起 作用!
编辑器(Editor) 完成源程序输入、编辑并产生标准文件 (如ASC文件)的程序。 名 近来己与编译器和其他程序捆绑进一个交 互开发环境—DE中 必 尽管这样的编辑器仍生成标准文件,但会 转向正被讨论的程序设计语言的格式或结 构(称为基于结构的),且己包含了编译 器的某些操作;因此在程序编写时而不是 编译时就可得知错误,甚至也可调用编译 器 25 CompilerPrinciples
CompilerPrinciples 25 1. 编辑器(Editor) 完成源程序输入、编辑并产生标准文件 (如ASCII文件)的程序。 ❖ 近来已与编译器和其他程序捆绑进一个交 互开发环境——IDE中 ❖ 尽管这样的编辑器仍生成标准文件,但会 转向正被讨论的程序设计语言的格式或结 构(称为基于结构的),且已包含了编译 器的某些操作;因此在程序编写时而不是 编译时就可得知错误,甚至也可调用编译 器