编译原理第一章编译原理引论汇总

上传人:今*** 文档编号:105922862 上传时间:2019-10-14 格式:PPT 页数:41 大小:290.50KB
返回 下载 相关 举报
编译原理第一章编译原理引论汇总_第1页
第1页 / 共41页
编译原理第一章编译原理引论汇总_第2页
第2页 / 共41页
编译原理第一章编译原理引论汇总_第3页
第3页 / 共41页
编译原理第一章编译原理引论汇总_第4页
第4页 / 共41页
编译原理第一章编译原理引论汇总_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《编译原理第一章编译原理引论汇总》由会员分享,可在线阅读,更多相关《编译原理第一章编译原理引论汇总(41页珍藏版)》请在金锄头文库上搜索。

1、编译原理课程概述,授课:付永钢 Email:yonggangfu,课程简介,课程内容 介绍编译器构造的一般原理和基本实现方法 理论知识:形式语言和自动机理论、语法制导的定义和属性文法、类型论等 强调形式化描述技术 强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不偏向于某种源语言或目标机器,课程简介,课程意义 对编程语言的设计和实现有深刻的理解,对宏观把握编程语言来说,起一个奠基的作用。 从软件工程看,编译器是一个很好的实例,所介绍的概念和技术能应用到一般的软件设计之中。 大多数程序员同时是简单语言的设计者,有助于提高对这些语言的设计水平。 在软件逆向工程、程序理解和软件安全等方面有

2、着广泛的应用。,课程简介,教材: 教材名称:编译原理 主编:陈意云 张昱 出版社:高等教育出版社 主要参考资料 程序设计语言编译原理(第3版),国防工业出版社,陈火旺等编著 编译原理,清华大学出版社,吕映芝、张素琴、蒋维杜编著 A.Aho,R.Sethi,and J.D.Ullman,Compilers:Principles,Techniques, and Tools, 2nd edition, Addison-Wesley, 1986 陈意云、张昱,编译原理习题精选,中国科大出版社,2002 教学资源网页:,课程简介,课程要求 目标:师生共同努力,掌握编译器的基本原理和技术 讲课进展较快,平

3、时要及时复习加深理解,否则后面将听不懂 作业要求独立完成 上机实验,不要轻视 考试闭卷,学期总评= 考试成绩占70%,作业占15%,上机实验15%,课程教学内容及时间安排,编译原理概论-2课时 词法分析-6课时 文法及其描述-2课时 自顶向下语法分析方法-4课时 自底向上语法分析法-8课时 语法制导翻译-6课时 类型检查-2课时 运行时空间组织- 2课时 中间代码生成-4课时 代码生成-4课时 代码优化-4课时,第一章 编译原理引论,内容提要,编译器构造法的研究目的 编译器的结构 编译的基本原则 编译器应有的性质 编译器技术的应用 关于学习编译原理,编译器构造法的研究目的,什么是编译程序,编译

4、 程序,高级程序设计语言书写的程序,低级语言程序,术语 源语言(程序) 目标语言(程序) 实现语言,翻译程序 把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)的程序,编译器构造法的研究目的,什么是编译程序?,什么是编译程序?,编译程序(compiler) 把某一种高级语言程序等价地转换成另一种低级语言程序(如汇编语言或机器语言程序)的程序 诊断编译程序 优化编译程序 交叉编译程序 可变目标编译程序,什么是编译程序?,解释程序 把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身,编译程序 vs. 解释程序,编译,解释,什么叫编译程序?,编译程

5、序:是指这样的程序,它能够把某种语言的程序转换成另一种语言的程序,而后者与前者在逻辑上是等价的。如果源语言是诸如FORTRAN、Pascal、C、Ada、Smalltalk或Java这样的“高级语言”,而目标语言如汇编语言之类的“低级语言”这样的翻译程序则称之为编译程序。,内容提要,编译器构造法的研究目的 编译器的结构 编译的基本原则 编译器应有的性质 编译器技术的应用 关于学习编译原理,编译过程,把英文翻译为中文 识别出句子中的一个个单词; 分析句子的语法结构; 根据句子的含义进行初步翻译; 对译文进行修饰; 写出最后的译文。,编译过程,1. 词法分析,词法分析也叫线性分析和扫描。 从左到右

6、读构成源程序的字符流,分组为多个记号。,词法分析器,position = initial + rate * 60,id1 = id2 + id3 * 60,2. 语法分析,任务:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。 依循的原则:语法规则 描述工具:上下文无关文法,语法分析(续),语法分析器,id1 = id2 + id3 * 60,在本例中,算符优先级可以通过如下方法定义: 1.定义程序语言的语法规则体现算符的优先级 2.通过某些规则库,例如算符优先级表格等来定义算符的优先级,3. 语义分析,语义分析 这一阶段通常包括两方面的工作,首先对各种语法范畴进行静态语

7、义检查,如果正确则进行另一方面的工作,即进行中间代码的翻译。 通常使用属性文法描述语义规则。,语义分析(续),语义分析器,在本例中,几个标识符都是实数类型,而且源程序语言允许整数向实数类型的强制转换,编译过程,4. 中间代码生成,5.代码优化,任务:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。 依循的原则:程序的等价变换规则,6. 目标代码产生,任务: 把中间代码变换成特定机器上的目标代码。 依赖于硬件系统结构和机器指令的含义 目标代码三种形式: 绝对指令代码: 可直接运行 可重新定位指令代码: 连接装配, 汇编指令代码: 需要进行汇编,temp1 = id3 *

8、 60.0 id1 = id2 + temp1,编译过程,编译过程,编译前端与后端,前端(front end)主要由与源语言有关,但与目标机无关的那些部分组成。通常包括词法分析、语法分析、语义分析与中间代码产生,有的代码优化工作,也可以包括在前端。 后端(back end)包括编译程序中与目标代码有关的部分,如与目标机有关的有关的优化,和目标代码的生成等。,前端,后端,编译器的应用模型,出 错 处 理,语法分析程序,语义分析程序,目标代码生成程序,词法分析程序,中间代码生成程序,代码优化程序,表 格 管 理,编译的前端 (Front End),编译的后端 (Back End),编译器的构造工具

9、,编译程序自动产生 编译程序-编译程序,编译程序书写系统,LEX 词法分析程序产生器 YACC 语法分析程序产生器,编译程序 自动产生器,内容提要,编译器构造法的研究目的 编译器的结构 编译器的基本原则 编译器应有的性质 编译器技术的应用 关于学习编译原理,编译器技术的应用,高级语言的实现 高级编程语言易于编程,但程序运行较慢 低级语言编程时可实施更有效的控制方式,得到更有效的代码,但难编写、易出错、难维护 流行编程语言的大多数演变都是朝着提高抽象级别的方向 每一轮编程语言新特征的出现都刺激编译器优化的新研究,编译器技术的应用,高级语言的实现 每一轮编程语言新特征的出现都刺激编译器优 化的新研

10、究 支持用户定义的聚合数据类型和高级控制流,如数组和记录、循环和过程调用:C、Fortran 面向对象的主要概念是数据抽象和性质继承,使得程序更加模块化并易于维护:Smalltalk、C+、C#、Java 类型安全的语言:Java没有指针,也不允许指针算术。它用无用单元收集机制来自动地释放那些不再使用的变量占据的内存 Java设计来支持代码移植和代码移动,编译器技术的应用,针对计算机体系结构的优化 计算机体系结构的迅速演化引起对新的编译器技术一种不知足的需要 并行化 编译器重新整理指令,使得指令级并行更有效 编译器从传统的串行程序自动生成并行代码,使之运行于多处理器上 内存分层 编译器优化历来

11、集中在优化处理器的执行上,但是现在更强调要使内存分层更有效,编译器技术的应用,新计算机体系结构的设计 现在计算机系统的性能不仅仅取决于它的原始速度,还取决于编译器是否能生成充分利用其特征的代码 在现代计算机体系结构的研究中,在处理器的设计阶段就开发编译器,并将编译生成的代码在模拟器上运行,以评价拟采用体系结构的特征 编译器技术影响计算机体系结构设计的一个著名例子是精简指令集计算机(RISC)的发明,编译器技术的应用,程序翻译 二进制翻译 编译器技术可用于把一种机器的二进制代码翻译成另一种机器的代码,以运行原先为别的指令集编译的代码 数据库查询解释器 数据库查询由一些谓词组成,这些谓词由包含关系

12、运算的布尔表达式组成,可以被解释执行,也可以被编译成搜索数据库的命令,编译器技术的应用,提高软件开发效率的工具 源于编译器中代码优化技术的程序分析一直在 改进软件开发效率 类型检查 类型检查是一种捕捉程序中前后不一致的成熟并且有效的技术 边界检查 数据流分析技术可用来定位缓冲区溢出 内存管理 自动的内存管理删除内存泄漏等内存管理错误,内容提要,编译器构造法的研究目的 编译器的结构 编译的基本原则 编译器应有的性质 编译器技术的应用 关于学习编译原理,关于学习编译原理,学好编译原理的前提: 掌握形式化描述方法,上课注意听讲,课后按时完成作业,做好预习和复习。 阅读PL0编译程序,独立完成实验,从实际中理解原理。 自己动手编写一个完整的编译程序,提高动手能力。,Thanks for your time! Questions & Answers,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号