编译程序基本概念_第1页
编译程序基本概念_第2页
编译程序基本概念_第3页
编译程序基本概念_第4页
编译程序基本概念_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、(优选)编译程序基本概念第一页,共十五页。第1章 关于编译程序的基本概念内容提要: 1.1 什么是编译程序? 1.2 编译程序逻辑结构 1.3 编译程序实现机制 1.4 编程过程实例分析第二页,共十五页。. . 计算机中语言的层次体系:解释程序 图 1.1 计算机中语言的层次体系高级语言1编译程序2反汇编程序汇编程序 汇编语言机器语言 计算机反编译程序转换程序 高级语言2编译程序1第三页,共十五页。 1.1 什么是 编译程序? 编译程序(compiler)是一种翻译程序,它特指把某种高级程序设计语言翻译成具体计算机上的低级程序设计语言。 高级语言的执行过程 - 源语言编译程序目标语言数据 结果

2、运行程序编译阶段运行阶段图 1.2 高级语言的执行过程两个阶段:第四页,共十五页。 什么是 解释程序? 解释程序(interpreter)也是一种翻译程序,将某高级语翻译成具体计算机上的低级程序设计语言;解释程序的执行过成如图1.3 所示。 编译程序与解释程序的主要区别: 数据 结果解释程序 图 1.3 解释程序的执行过程 一条源语句 前者有目标程序而后者无目标程序; 前者运行效率高而后者便于人机对话。第五页,共十五页。1.2 编译程序结构词法分析语法分析语义分析代码生成源语言目标语言 错 误 处 理 符 号 表 管 理 图 1.4 编 译 程 序 总 体 结 构 框 图优化处理 编译程序总体

3、结构如图1.4所示。编译程序的五个阶段:单词串TOKEN词法分析源语言语法分析语义分析优化处理代码生成目标语言优化语义树 错 误 处 理 符 号 表 管 理语法树语义树第六页,共十五页。【例1.1】我们用树叶和颜料能够制作美丽的图画。 【机器翻译】是指利用计算机把一种自然语言翻译成另一种自然语言。翻译过程. 词法分析:r( ) p( ) n( ) c( ) n( ) u( ) v( ) a( ) n( ). 句法分析:汉英辞典与知识库We can make beautiful pictures with leaves and paint.SpSbjPrdruvObjPpVpNpa npNpn

4、c n. 语义分析:制作(make)我们(we)图画(pictures)美丽(beautiful)树叶(leaves)颜料(paint)用(with). 优化处理:. 目标生成: 编译程序与机器翻译的类比 :语义网语法树第七页,共十五页。1.3 编译程序的实现机制 根据语言和环境的不同,编译程序实现时是把 图1.2 中的各阶段划分成若干遍; 遍:编译程序对源程序或等价程序从头至尾扫描的次数。 两遍 的编译程序: 第一遍 :词法分析 、语法分析和语义分析; 第二遍 :目标代码生成和目标代码优化。 每遍中的各阶段的工作是穿插进行的,例如: 使语法分析器处于核心位置,而把词法分析器作为子程序;当语法

5、分析需要下一个单词时,就调用词法分析器,识别一个单词。第八页,共十五页。1.4 编译过程实例 例:Pascal程序片段 : 词法分析:识别单词并分类var a,b:integer; . . . b:=a+2*5; 编译过程如下: 关键字 (k) - var,integer ; 标识符 (i) - a,b ; 常 数 (c) - 2,5 ; 界 符 (p) - , ; : := + 单词类码第九页,共十五页。图 1.5 赋值语句 b:=a+2*5 的语法树 例: b := a + 2 * 5 的分析过程如下所示: ( 生成的结果是一棵 语法树 ) := b + * a252. 语法分析: 组词成

6、句及语法错误检查算术表达式的层次结构第十页,共十五页。3语义分析:分析各种语法成分的语义特征;var a,b:integer; . . . b:=a+2*5;构建标识符的语义辞典-符号表:构造语句的语义树-中间语言; b 的值 a 的值 数据区 v i b v i a 地址种类 类型 名字符号表 :=b+a*25如: b := a+2*5 ( * 2 5 t1 ) ( + a t1 t2 ) ( := t2 _ b )或第十一页,共十五页。4优化 :提高目标程序质量的工作 ; :=b+a*25 ( * 2 5 t1 ) ( + a t1 t2 ) ( := t2 _ b )经 常数合并,可分别

7、获得优化后的中间代码如下图所示: ( + a 10 t2 ) ( := t2 _ b )例: b := a+2*5 :=b+a10第十二页,共十五页。5目标代码生成 : 产生计算机可识别的语言 ; 通常,是把中间语言转换成目标代码, ( + a 10 t2 ) ( := t2 _ b ) LD R, a ADD R, 10 ST R, bR 为寄存器三条指令分别为:取、加 和 存 。如:目标代码:第十三页,共十五页。 编译程序的理论基础 编译程序的构造,是一种语言处理工程,其理论基础和技术基础主要有以下两个方面: 1. 形式语言【第2章】 计算机处理语言,首先应考虑语言的形式化、规范化,使其具有可计算性和可操作性;形式语言诞生于1956年,由chomsky创立。 2. 自动机【第3章】 自动机是一种语言模型,是语言的一种识别工具,它与形式语

温馨提示

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

评论

0/150

提交评论