编译程序 构造原理和臭现技术 授课教师:吕江花
编译程序 构造原理和实现技术 授课教师:吕江花
第一章编译程序概述 主要内容: 几个基本概念 编译器的工作过程概述 编译器各个阶段的功能描述 编译程序的实现途径
第一章 编译程序概述 主要内容: ⚫ 几个基本概念 ⚫ 编译器的工作过程概述 ⚫ 编译器各个阶段的功能描述 ⚫ 编译程序的实现途径
基本概念 机器语言:能够被计算机的硬件系统直 l接执行的指令程序 ●汇编语言:将硬件指令用一些助记符表 示。如AD表示加法操作, SUB表示减法操作等等 ●高级语言:使用便于理解的自然语言
基本概念 ⚫ 机器语言:能够被计算机的硬件系统直 接执行的指令程序。 ⚫ 汇编语言:将硬件指令用一些助记符表 示。如ADD表示加法操作, SUB表示减法操作等等 ⚫ 高级语言:使用便于理解的自然语言
语言处理程序 ◎解释程序(器):接受所输入的用程序 语言(源语言)编写的程序(源程 序),然后直接解释执行源程序。 相当于源程序的抽象执行机,是语 言的实现系统 高级语言源程序→解释程序→>计算结果 数据 →(器)
语言处理程序 ⚫ 解释程序(器):接受所输入的用程序 语言(源语言)编写的程序(源程 序),然后直接解释执行源程序。 相当于源程序的抽象执行机,是语 言的实现系统。 高级语言源程序 → → 计算结果 数据 → 解释程序 (器)
语言处理程序 翻译程序(器):接受某种语言的源语 言程序后,将它改造成另一种逻辑 上等价的目标语言程序
语言处理程序 ⚫ 翻译程序(器):接受某种语言的源语 言程序后,将它改造成另一种逻辑 上等价的目标语言程序
翻译程序 ●汇编程序:源语言为汇编语言,目标语言 为机器语言的翻译程序。 ●编译程序(器):源语言为高级语言,目 标语言是低级语言(汇编或机器语言)的 翻译程序 高级语言程序 编译程序 低级语言程序 (源程序 (器) (目标程序)
翻译程序 ⚫ 汇编程序:源语言为汇编语言,目标语言 为机器语言的翻译程序。 ⚫ 编译程序(器):源语言为高级语言,目 标语言是低级语言(汇编或机器语言)的 翻译程序。 高级语言程序 (源程序) 低级语言程序 (目标程序) 编译程序 (器)
需预处理的源程序 预处理器 高级语言程序到可执行代码的转换过程 源程序 编译程序 目标汇编程序 汇编程序 可重定位的目标代码 连接/装配程序 绝对目标代码
需预处理的源程序 预处理器 源程序 编译程序 目标汇编程序 汇编程序 可重定位的目标代码 连接 /装配程序 绝对目标代码 高级语言程序到可执行代码的转换过程
解释器和编译器特点 概念上的不同 基于解释执行的程序可以动态修改自身, 而基于编译执行的程序则需要动态编译技 术,难度较大。 ●基于解释方式有利于人机交互。 执行速度。解释器执行速度要慢。 ●空间开销。解释器需要保存的信息较多, 空间开销大 利用解释器可自动生成编译器 二者实现技术相似
解释器和编译器特点 ⚫ 概念上的不同 ⚫ 基于解释执行的程序可以动态修改自身, 而基于编译执行的程序则需要动态编译技 术,难度较大。 ⚫ 基于解释方式有利于人机交互。 ⚫ 执行速度。解释器执行速度要慢。 ⚫ 空间开销。解释器需要保存的信息较多, 空间开销大 ⚫ 利用解释器可自动生成编译器 二者实现技术相似
编译器的功能结构图 表处理 词 源法 语法 语 义 中间 序分分国分 程分 代一标 析 析 代码生成 中间代码优化 ↑目标代码生成 程 序 错误处理
编译器的功能结构图 表 处 理 错 误 处 理 目 标 代 码 生 成 中 间 代 码 优 化 中 间 代 码 生 成 语 义 分 析 语 法 分 析 词 法 分 析 目 标 程 序 源 程 序
●词法分析( Lexical analysis) 依循语言的词法规则,扫描源程序的字 符串,识别每一个单词,并将其表示成 所谓的机内表示 TOKEN形式。 ●语法分析( Syntax Analysis) 依据语言的语法规则,将单词的 Token序 列分解成各类语法短语,确定整个输入 串是否构成一个语法上正确的程序。 语义分析( Semantic Analysis) 审查源程序有无语义错误,为代码生成 阶段收集类型信息
⚫ 词法分析(Lexical Analysis) 依循语言的词法规则,扫描源程序的字 符串,识别每一个单词,并将其表示成 所谓的机内表示TOKEN形式。 ⚫ 语法分析(Syntax Analysis) 依据语言的语法规则,将单词的Token序 列分解成各类语法短语,确定整个输入 串是否构成一个语法上正确的程序。 ⚫ 语义分析(Semantic Analysis) 审查源程序有无语义错误,为代码生成 阶段收集类型信息