




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编译原理课程简介先行课程:高等数学、 (PASCAL)、离散数学、 汇编语言、数据结构课课 程程 简简 介介学习的意义学习的意义 对编程语言的设计和实现有深刻的理解,对对编程语言的设计和实现有深刻的理解,对和编程语言有关的理论有所了解,对宏观上和编程语言有关的理论有所了解,对宏观上把握编程语言来说,起一个奠基的作用。把握编程语言来说,起一个奠基的作用。 从软件工程看,编译器是一个很好的实例,从软件工程看,编译器是一个很好的实例,所介绍的概念和技术能应用到一般的软件设所介绍的概念和技术能应用到一般的软件设计之中。计之中。 大多数程序员同时是简单语言的设计者,有大多数程序员同时是简单语言的设计者,
2、有助于提高对这些语言的设计水平。助于提高对这些语言的设计水平。 在软件逆向工程、程序理解和软件安全等方在软件逆向工程、程序理解和软件安全等方面有着广泛的应用。面有着广泛的应用。Returnhttp:/ 编译程序概述编译程序概述第二第二 文法和语言文法和语言第三第三 词法分析词法分析第四第四 自顶向下语法分析方法自顶向下语法分析方法第五第五 自底向上优先分析方法自底向上优先分析方法第六第六 LRLR分析方法分析方法第七第七 语法制导翻译和中间代码生成语法制导翻译和中间代码生成第八第八 代码优化代码优化第九第九 代码生成代码生成第一章第一章 编译程序概述编译程序概述1.1 1.1 什么是编译程序什
3、么是编译程序1.2 1.2 编译程序的结构编译程序的结构1.3 1.3 编译程序的编译程序的设计实现设计实现1.4 1.4 经典的编译程序经典的编译程序第一章第一章 编译程序概述编译程序概述1.1 1.1 什么是编译程序什么是编译程序. . 程序设计语言程序设计语言. . 翻译和解释程序翻译和解释程序(1)(1)翻译和编译程序翻译和编译程序编译编译:如果一个翻译程序的是某种高级语言,其是相对于某一计算机的汇编语言或机器语言,则称这种翻译程序为编译程序(或称为编译器)。翻译翻译:是指在计算机中放置一个能由计算机直接执行的翻译程序,它以某一种程序设计语言(源语言)所编写的程序()作为翻译或加工的对
4、象,当计算机执行翻译程序时,就将它翻译为与之等价的另一种语言(目标语言)的程序()。输入输入输出输出功能功能工作结果工作结果实现技术上实现技术上解释解释程序程序源程序的一个执行执行系统源程序的执行结果执行结果执行中间代码编译编译程序程序源程序的一个转换转换系统源程序的目标代码目标代码把中间代码转换成目标程序解释程序和编译程序的:是否生成目标代码翻译外文资料编译源程序分析阅读原文识别单词分析句子输入并扫描源程序词法分析语法分析综合修辞加工写出译文代码优化目标代码生成1.1. 编译程序的结构编译程序的结构翻译外文资料与编译源程序进行类比编译程序的功能和组织结构表表 处处 理理词法分析源源程程序序目
5、目标标程程序序错错 误误 处处 理理语法分析语义分析目标代码生成前 端后 端中间代码优化中间代码生成词法分析词法分析 符符 号号 表表 positioninitialrate. . . . . . .123词法分析器词法分析器id1 := id2 + id3 * * 60 position := initial + rate * * 60语法分析 任何一个标识符任何一个标识符都是表达式;都是表达式; 任何一个数都是任何一个数都是表达式;表达式; 如果如果e1和和e2都是表都是表达式,那么达式,那么 e1 + e2 e1 * * e2 (e1)也都是表达式也都是表达式表达表达式式表达式表达式表达
6、式表达式标识符标识符表达式表达式表达式表达式(initial)标识符标识符(rate)数数(60)*+语法分析语法分析 符符 号号 表表 positioninitialrate. . . . . . .123语法分析器语法分析器id1 := id2 + id3 * * 60 :=+* *60id1id2id3语义分析语义分析 符符 号号 表表 positioninitialrate. . . . . . .123语义分析器语义分析器:=+* *60id1id2id3:=+* *60id1id2id3inttoreal源程序的分析源程序的分析 词法分析器词法分析器语法分析器语法分析器语义分析器语
7、义分析器源程序源程序中间代码生成器中间代码生成器代码优化器代码优化器代码生成器代码生成器目标程序目标程序出错管理器出错管理器符号表管理器符号表管理器 前三个阶段前三个阶段完成对源程完成对源程序的分析序的分析中间代码生成中间代码生成 符符 号号 表表 positioninitialrate. . . . . . .123中间代码生成器中间代码生成器temp1 := inttoreal(60)temp2 := id3 * temp1temp3 := id2 + temp2id1 := temp3:=+* *60id1id2id3inttoreal代码优化代码优化 符符 号号 表表 position
8、initialrate. . . . . . .123代码优化器代码优化器temp1 := inttoreal(60)temp2 := id3 * temp1temp3 := id2 + temp2id1 := temp3temp1 := id3 * * 60.0id1 := id2 + + temp1目标代码生成目标代码生成 符符 号号 表表 positioninitialrate. . . . . . .123temp1 := id3 * * 60.0id1 := id2 + + temp1代码生成器代码生成器MOVF id3, R2MULF #60.0, R2MOVF id2, R1AD
9、DF R2, R1MOVF R1, id1对源程序的翻译对源程序的翻译 词法分析器词法分析器语法分析器语法分析器语义分析器语义分析器源程序源程序中间代码生成器中间代码生成器代码优化器代码优化器代码生成器代码生成器目标程序目标程序出错管理器出错管理器符号表管理器符号表管理器 后三个阶后三个阶段对源程段对源程序进行综序进行综合合符号与出错管理符号与出错管理 词法分析器词法分析器语法分析器语法分析器语义分析器语义分析器源程序源程序中间代码生成器中间代码生成器代码优化器代码优化器代码生成器代码生成器目标程序目标程序出错管理器出错管理器符号表管理器符号表管理器 第一章第一章 引引 论论 词法分析器词法分析器语法分析器语法分析器语义分析器语义分析器源程序源程序中间代码生成器中间代码生成器代码优化器代码优化器代码生成器代码生成器目标程序目标程序出错管理器出错管理器符号表管理器符号表管理器 解释器解释器的流程的流程编译程序的: 与源语言有关,而与目标机无关的编译程序编译程序的: 与目标机有关,而与源语言无关的编译程序:是对源程序或源程序的中间结果从头到尾扫描一遍,并作有关加工处理,生成新的中间结果或目标程序。:运行编译程序的计算机称为宿主机。:运行编译程序所产生的目标代码的计算机成为目标机。相关概念相关概念 设计和实现一个编译设计和实现一个编译程序,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年陪诊师考试考前必读的试题及答案
- 业务员销售技巧的培训
- 共享自习室创业计划书
- 如何有效地进行行业安全意识教育
- 班主任励志传道引领未来计划
- 环境监测行业目标设定计划
- 促进多学科合作的工作计划
- 学期教学工作布置计划
- 深入预算员考试要点试题及答案
- 对工作计划进行动态调整的要点
- 《十万个为什么》(米伊林著版)四下快乐读书吧测试卷附答案
- 单独出行同意书
- 第六章听障儿童的听力与言语障碍培训课件
- 监控施工报价单
- 不同用地性质交通吸发率
- 中医医院财务管理制度
- 交流异步电动机变频调速设计毕业设计论文
- 金华职业技术学院提前招生综合测评试卷及答案
- 建筑注浆加固法规范
- JHA工作危险性分析(全)
- 双台110kV主变短路电流计算书
评论
0/150
提交评论