第1章编译程序基本概念.ppt

上传人:本田雅阁 文档编号:2251760 上传时间:2019-03-11 格式:PPT 页数:20 大小:534.01KB
返回 下载 相关 举报
第1章编译程序基本概念.ppt_第1页
第1页 / 共20页
第1章编译程序基本概念.ppt_第2页
第2页 / 共20页
第1章编译程序基本概念.ppt_第3页
第3页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第1章编译程序基本概念.ppt》由会员分享,可在线阅读,更多相关《第1章编译程序基本概念.ppt(20页珍藏版)》请在三一文库上搜索。

1、,编译程序的设计原理与实现,如何让计算机 认识、理解和执行 高级程序设计语言?,自我介绍,课件: compiler_ password:2008happy 网易网盘-我的文档 Email: 刘洪娟: 办公室: 综合楼303 办公电话: 83680831,教材与参考书,教材: 胡伦骏等:编译原理(第2版),电子工业出版社 。 参考书: 美 Alfred V.Aho, Ravi Sethi Jeffrey, D. Ullman著. 李建中,姜守旭译:编译原理,机械工业出版社,2003-1。 美 Kenneth C.Louden著,冯博琴等译:编译原理及实践,机械工业出版社,2002-2。 陈火旺等

2、:程序设计语言编译原理(第3版), 国防工业出版社,2003-2。,课程的学时分配(40学时),计算机系统,硬件,软件,组成原理,电子技术,体系结构,数字逻辑电路,电路原理,大学物理,计算机网络,接口与通讯技术,通讯概论,安全与保密,程序设计语言,汇编语言,高级语言,编译原理,计算理论,C、C、JAVA、PB、VB,系统软件,操作系统,DOS、Windows 、UNIX,数据库,Access、Sybase 、Oracle,数据结构,人工智能,应用软件开发,软件工程,算法设计与分析,本课程在计算机系统中的地位,课程的名称、地位和特点,课程名称:编译理论、编译原理、编译结构、编译技术和编译方法等。

3、 课程地位:编译程序(系统)和操作系统一起构成了计算机中两大系统软件;一个是计算机资源的操纵者;而另一个是计算机软件资源的开拓者。 课程特点: 知识性 形式语言和自动机作为本课程的两大理论基础并具有典型的应用技术; 系统性 从词法、语法、语义直到目标生成,构成了语言翻译的完整体系; 趣味性 关于语言处理的一些经典算法和实现技术,可以享受获取软件设计方法的乐趣。 应用性 编译技术可广泛应用于文本编辑、排版系统、模式识别以及机器翻译等各个领域。,第1章 编译程序基本概念,内容提要,1.1 什么是编译程序? 1.2 编译程序逻辑结构 1.3 编译程序实现机制 1.4 编译程序的生成方法 1.5 编译

4、过程实例分析,.,.,.,计算机中语言的翻译程序体系,解释程序,图1.1 计算机语言的层次体系,高级语言1,编译程序2,反汇编程序,汇编程序,汇编语言,机器语言,反编译程序,转换程序,高级语言2,编译程序1,1.1 什么是编译程序?,编译程序(compiler)是一种翻译程序,它特指把某种高级程序设计语言翻译成与之等价的具体计算机上的低级程序设计语言。,编译程序的执行过程两个阶段:,源语言,编译程序,目标语言,数据,结果,运行程序,编译阶段,运行阶段,图1.2 编译程序的执行过程, 什么是解释程序?,解释程序(interpreter)也是一种翻译程序,它将源语言书写的源程序作为输入,解释一句后

5、就提交计算机执行一句,并不形成目标程序。,编译程序与解释程序的主要区别:,数据,结果,解释程序,图1.3 解释程序的执行过程,源语句,(1) 前者有目标程序而后者无目标程序;,(2) 前者运行效率高而后者便于人机对话。,1.2 编译程序逻辑结构,词法 分析,语法 分析,语义 分析,目标代码 生成,源 语言,目标语言,错 误 处 理 程 序,符 号 表 管 理 程 序,图1.4 编译程序总体结构,优化 处理,编译程序的五个阶段:, 编译程序执行过程,词法 分析,语法 分析,语义 分析,目标代码 生成,源 语言,目标语言,错 误 处 理 程 序,符 号 表 管 理 程 序,图1.5 编译程序执行过

6、程图解,优化 处理,单词串TOKEN,前 端,后 端, 编译程序与外文翻译的类比:,词法分析 - 识别单词,确认词类; 语法分析 - 识别短语和句型的 语法属性; 语义分析 - 确认单词、短语和句型的 语义特征; 代码优化 - 修辞、文本编辑; 代码生成 - 生成译文。,I wish you success!,1.3 编译程序的实现机制,遍:编译程序对源程序或等价程序从头至尾 扫描的次数。,根据语言和环境的不同,编译程序实现时是把图 1.4 中的各阶段划分成若干遍;典型的情况是两遍的编译程序: 第一遍: 词法分析、语法分析和语义分析; 第二遍: 中间代码优化和目标代码生成。 每遍中的各阶段的工

7、作是穿插进行的,例如: 使语法分析器处于核心位置。当语法分析需要下一个单词时,就调用词法分析器,识别一个单词;一旦识别出一个语法单位,就调用语义分析器,完成语义分析并产生中间代码。,1.4 编译程序的生成方法,编译程序的生成方法: 利用已有的编译器 自编译方式 移植方式:重写编译器代码的后端,自动生成编译程序: 词法分析程序生成器LEX 语法分析程序生成器YACC 编译程序生成器,输入:词法规则、语法规则和语义解释,三个语言:源语言、目标语言和实现语言。,1.5 编译过程实例分析,例:C程序片段 :,1. 词法分析:识别单词并分类,int a,b; . . . b = a + 2 * 5;,编

8、译过程如下:, 关键字 (k) - int 标识符 (i) - a,b 常 数 (c) - 2,5 界 符 (p) - , ; = + *,单词类码,图 1.6 赋值语句 b=a+2*5 的语法树,例: b = a + 2 * 5 的分析过程如下所示: ( 生成的结果是一棵语法树 ), = ,b, + , * ,a,2,5,2. 语法分析:组词成句及语法错误检查,算术表达式的 层次结构,3. 语义分析:分析各种语法成分的语义特征,构建标识符的语义辞典-符号表:,构造语句的语义树-中间语言;,数据区,符号表,(1) ( * 2 5 t1 ) (2) ( + a t1 t2 ) (3) ( = t2 _ b ),或,4. 优化:提高目标程序的质量,(1) ( * 2 5 t1 ) (2) ( + a t1 t2 ) (3) ( = t2 _ b ),经常数合并,可分别获得优化后的中间代码如下图所示:,(1) ( + a 10 t2 ) (2) ( = t2 _ b ),5. 目标代码生成,上例可生成目标代码:,(1) ( + a 10 t2 ) (2) ( = t2 _ b ),R 为寄存器 三条指令分别为:取、加 和 存 。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1