compiler1_编译程序概述_第1页
compiler1_编译程序概述_第2页
compiler1_编译程序概述_第3页
compiler1_编译程序概述_第4页
compiler1_编译程序概述_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编译原理 课程简介 先行课程:高等数学、 (PASCAL)、离散数学、 汇编语言、数据结构 课课 程程 简简 介介 学习的意义学习的意义 对编程语言的设计和实现有深刻的理解,对对编程语言的设计和实现有深刻的理解,对 和编程语言有关的理论有所了解,对宏观上和编程语言有关的理论有所了解,对宏观上 把握编程语言来说,起一个奠基的作用。把握编程语言来说,起一个奠基的作用。 从软件工程看,编译器是一个很好的实例,从软件工程看,编译器是一个很好的实例, 所介绍的概念和技术能应用到一般的软件设所介绍的概念和技术能应用到一般的软件设 计之中。计之中。 大多数程序员同时是简单语言的设计者,有大多数程序员同时是简

2、单语言的设计者,有 助于提高对这些语言的设计水平。助于提高对这些语言的设计水平。 在软件逆向工程、程序理解和软件安全等方在软件逆向工程、程序理解和软件安全等方 面有着广泛的应用。面有着广泛的应用。 Return http:/ 考试成绩 编译原理主要介绍知识点编译原理主要介绍知识点 第一第一 编译程序概述编译程序概述 第二第二 文法和语言文法和语言 第三第三 词法分析词法分析 第四第四 自顶向下语法分析方法自顶向下语法分析方法 第五第五 自底向上优先分析方法自底向上优先分析方法 第六第六 LRLR分析方法分析方法 第七第七 语法制导翻译和中间代码生成语法制导翻译和中间代码生成 第八第八 代码优化

3、代码优化 第九第九 代码生成代码生成 第一章第一章 编译程序概述编译程序概述 1.1 1.1 什么是编译程序什么是编译程序 1.2 1.2 编译程序的结构编译程序的结构 1.3 1.3 编译程序的编译程序的设计实现设计实现 1.4 1.4 经典的编译程序经典的编译程序 第一章第一章 编译程序概述编译程序概述 1.1 1.1 什么是编译程序什么是编译程序 . . 程序设计语言程序设计语言 . . 翻译和解释程序翻译和解释程序 (1)(1)翻译和编译程序翻译和编译程序 编译编译:如果一个翻译程序的是某种高级语言,其 是相对于某一计算机的汇编语言或机器语言,则称这种翻译程 序为编译程序(或称为编译器

4、)。 翻译翻译:是指在计算机中放置一个能由计算机直接执行的翻译程 序,它以某一种程序设计语言(源语言)所编写的程序() 作为翻译或加工的对象,当计算机执行翻译程序时,就将它翻译 为与之等价的另一种语言(目标语言)的程序()。 输入输入 输出输出 功能功能工作结果工作结果实现技术上实现技术上 解释解释 程序程序 源程序的一 个执行执行系统 源程序的 执行结果执行结果 执行中间代码 编译编译 程序程序 源程序的一 个转换转换系统 源程序的 目标代码目标代码 把中间代码转 换成目标程序 解释程序和编译程序的: 是否生成目标代码 翻译外文资料编译源程序 分析 阅读原文 识别单词 分析句子 输入并扫描源

5、程序 词法分析 语法分析 综合 修辞加工 写出译文 代码优化 目标代码生成 1.1. 编译程序的结构编译程序的结构 翻译外文资料与编译源程序进行类比 编译程序的功能和组织结构 表表 处处 理理 词 法 分 析 源源 程程 序序 目目 标标 程程 序序 错错 误误 处处 理理 语 法 分 析 语 义 分 析 目 标 代 码 生 成 前 端 后 端 中 间 代 码 优 化 中 间 代 码 生 成 词法分析词法分析 符符 号号 表表 position initial rate . . . . . . . . . 1 2 3 词法分析器词法分析器 id1 := id2 + id3 * * 60 pos

6、ition := initial + rate * * 60 语法分析 任何一个标识符任何一个标识符 都是表达式;都是表达式; 任何一个数都是任何一个数都是 表达式;表达式; 如果如果e1和和e2都是表都是表 达式,那么达式,那么 e1 + e2 e1 * * e2 (e1) 也都是表达式也都是表达式 表达表达 式式 表达式表达式表达式表达式 标识符标识符 表达式表达式表达式表达式 (initial) 标识符标识符 (rate) 数数 (60) * + 语法分析语法分析 符符 号号 表表 position initial rate . . . . . . . . . 1 2 3 语法分析器语法

7、分析器 id1 := id2 + id3 * * 60 := + * * 60 id1 id2 id3 语义分析语义分析 符符 号号 表表 position initial rate . . . . . . . . . 1 2 3 语义分析器语义分析器 := + * * 60 id1 id2 id3 := + * * 60 id1 id2 id3 inttoreal 源程序的分析源程序的分析 词法分析器词法分析器 语法分析器语法分析器 语义分析器语义分析器 源程序源程序 中间代码生成器中间代码生成器 代码优化器代码优化器 代码生成器代码生成器 目标程序目标程序 出错管理器出错管理器符号表管理器

8、符号表管理器 前三个阶段前三个阶段 完成对源程完成对源程 序的分析序的分析 中间代码生成中间代码生成 符符 号号 表表 position initial rate . . . . . . . . . 1 2 3中间代码生成器中间代码生成器 temp1 := inttoreal(60) temp2 := id3 * temp1 temp3 := id2 + temp2 id1 := temp3 := + * * 60 id1 id2 id3 inttoreal 代码优化代码优化 符符 号号 表表 position initial rate . . . . . . . . . 1 2 3 代码优化

9、器代码优化器 temp1 := inttoreal(60) temp2 := id3 * temp1 temp3 := id2 + temp2 id1 := temp3 temp1 := id3 * * 60.0 id1 := id2 + + temp1 目标代码生成目标代码生成 符符 号号 表表 position initial rate . . . . . . . . . 1 2 3 temp1 := id3 * * 60.0 id1 := id2 + + temp1 代码生成器代码生成器 MOVF id3, R2 MULF #60.0, R2 MOVF id2, R1 ADDF R2,

10、R1 MOVF R1, id1 对源程序的翻译对源程序的翻译 词法分析器词法分析器 语法分析器语法分析器 语义分析器语义分析器 源程序源程序 中间代码生成器中间代码生成器 代码优化器代码优化器 代码生成器代码生成器 目标程序目标程序 出错管理器出错管理器符号表管理器符号表管理器 后三个阶后三个阶 段对源程段对源程 序进行综序进行综 合合 符号与出错管理符号与出错管理 词法分析器词法分析器 语法分析器语法分析器 语义分析器语义分析器 源程序源程序 中间代码生成器中间代码生成器 代码优化器代码优化器 代码生成器代码生成器 目标程序目标程序 出错管理器出错管理器符号表管理器符号表管理器 第一章第一章

11、 引引 论论 词法分析器词法分析器 语法分析器语法分析器 语义分析器语义分析器 源程序源程序 中间代码生成器中间代码生成器 代码优化器代码优化器 代码生成器代码生成器 目标程序目标程序 出错管理器出错管理器符号表管理器符号表管理器 解释器解释器 的流程的流程 编译程序的: 与源语言有关,而与目标机无关的编译程序 编译程序的: 与目标机有关,而与源语言无关的编译程序 :是对源程序或源程序的中间结果从头 到尾扫描一遍,并作有关加工处理,生成新的中间 结果或目标程序。 :运行编译程序的计算机称为宿主机。 :运行编译程序所产生的目标代码的计算机 成为目标机。 相关概念相关概念 设计和实现一个编译设计和实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论