编译原理第一章:引论_第1页
编译原理第一章:引论_第2页
编译原理第一章:引论_第3页
编译原理第一章:引论_第4页
编译原理第一章:引论_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

第一章引论1.1什么叫编译程序1.2编译过程概述1.3编译程序的结构1.4编译程序与程序设计环境1.5编译程序的生成

复习题1.1什么叫编译程序一、编译程序及相关术语1.翻译程序

能够把某一种语言程序(源语言程序)转换成逻辑上等价的另一种语言程序(目标语言程序)的程序,称为翻译程序。三种形式:

2.编译程序

把诸如FORTRAN、Pascal、C、Ada、Smalltalk、C++或Java等这样的“高级语言”翻译成诸如汇编语言或机器语言之类的“低级语言”的翻译程序,称为编译程序。

3.解释程序一个源语言的解释程序是以该语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。二、编译程序分类1.第一个编译程序

20世纪50年代中期研制FORTRAN语言编译程序2.分类

根据不同用途和侧重诊断编译程序用于帮助程序开发和调试优化编译程序着重于提高目标代码效率交叉编译程序产生不同于其宿主机的机器代码可变目标编译程序不需重写编译程序中与机器无关的部分能改变目标机

1.2编译过程概述一、引例把一段英文翻译成中文,需经过的步骤:(1)识别出句子中的一个个单词(2)分析句子的语法结构(3)根据句子的含义进行初步翻译(4)对译文进行修饰(5)写出最后的译文二、编译过程从输入源程序开始到输出目标程序为止的整个过程。三、编译过程的五个阶段词法分析语法分析语义分析与中间代码产生优化目标代码生成1.词法分析(线性分析)任务:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词(单词符号、符号)如基本字、标识符、常数、算符、界符。依循规则:语言的词法规则(构词规则)描述工具:正规式和有限自动机理论2.语法分析(层次结构分析)任务:在词法分析的基础上,根据语言的语法规则,把单词符号串分解成各类语法单位(语法范畴)如“短语”、“子句”、“句子”(语句)、“程序段”和“程序”等。依循规则:语言的语法规则(文法)描述工具:上下文无关文法3.语义分析与中间代码产生任务:对语法分析所识别出的各类语法范畴,分析其含义并进行初步翻译(产生中间代码)。依循规则:语言的语义规则描述工具:属性文法4.优化任务:对前阶段产生的中间代码进行加工变换,以期在最后阶段能产生出更为高效的目标代码。依循规则:程序的等价变换规则5.目标代码生成任务:把中间代码(或经优化处理之后的中间代码)变换成特定机器上的低级语言代码。工作依赖:硬件系统结构和机器指令含义。1.3编译程序的结构一、编译程序总框

二、表格与表格管理编译程序在工作过程中需要保持一系列的表格,以登记源程序各类信息和编译各阶段的进展状况。编译各阶段都涉及到构造、更新或查找有关的表格。三、出错处理语法错误源程序中不符合语法(词法)规则的错误。语义错误源程序中不符合语义规则的错误。

如:说明错误、作用域错误、类型不一致等。四、遍Pass遍:对源程序或源程序的中间结果从头到尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序,称为遍。分遍优点:使整个编译程序逻辑结构清晰一些,减少对主存容量的要求;分遍缺点:增加一些重复性工作。五、编译前端与编译后端编译前端:由与源语言有关但与目标机无关的那些部分组成;通常包括词法分析、语法分析、语义分析与中间代码产生,部分代码优化。编译后端:与目标机有关的那部分编译程序;通常包括与目标机有关的代码优化和目标代码生成。1.4编译程序与程序设计环境

编译程序与编辑程序、连接程序、调试工具等一起构成程序设计环境。如:TurboPascal、TurboC、BorlandC++、VisualC++等等。1.5编译程序的生成一、编译程序的生成方法用机器语言/汇编语言作工具用高级语言作工具自编译方式建立专门的编制编译程序的有效工具二、构造编译程序应掌握的内容

1.源语言深刻理解其结构和含义

2.目标语言若是机器语言,必须清楚硬件的系统结构和操作系统的功能

3.编译方法第一章复习题1.名词解释翻译程序、编译程序、解释程序、遍、语法错误、语义

温馨提示

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

评论

0/150

提交评论