《编译系统概述》PPT课件.ppt
《《编译系统概述》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《编译系统概述》PPT课件.ppt(40页珍藏版)》请在三一办公上搜索。
1、2023/7/29,为什么学习编译,编译程序构造的原理和技术一直属于计算机科学必备的专业基础知识。是计算机科学中一个非常成功的分支,也是最早获得成功的分支之一。它所建立的理论、技术和方法值得深入研究和学习。编译构造正确地建立了研究的问题领域和研究方式。,2023/7/29,为什么学习编译,针对编译程序构造的某些部分已经开发了标准的形式化技术,包括有限自动机理论、上下文无关文法、正规表达式、属性文法、机器代码描述、数据流分析方程式等。编译程序包含许多普遍使用的数据结构和算法,例如散列法(哈希算法)、栈机制、堆机制、垃圾收集、集合算法、表驱动算法。编译程序的许多构造技术已经得到了广泛的应用。学习编
2、译原理和技术还有助于我们理解程序设计语言,编写优秀的软件。,2023/7/29,什么叫编译程序,概念翻译程序或翻译器是把一种语言(源语言)转换成等价的另外一种语言(目标语言)的程序。如果源语言是高级编程语言,目标语言是机器代码和汇编语言这样的低级语言,这类翻译程序就叫做编译程序或编译器。,2023/7/29,第1章 编译系统概述,1.1程序设计语言的发展 1.2基本术语解释1.3编译过程概述1.4出错处理1.5编译程序的前端和后端1.6编译程序的实现方式,2023/7/29,1.1 从面向机器的语言到面向人类的语言,计算机的硬件只能识别由0、1字符串组成的机器指令序列,即机器指令程序。在计算机
3、刚刚问世的年代,人们只能向计算机输入机器指令程序来指挥它进行简单的数学计算。机器指令程序是最基本的计算机语言。由于机器指令程序不易理解,用它编写程序既困难又容易出错,于是人们就用容易记忆的符号来代替0、1字符串。用符号表示的指令被称为汇编指令,汇编指令的集合被称为汇编语言,由汇编语言编写的指令序列被称为汇编语言程序。虽然汇编指令比机器指令在阅读和理解上有了长足进步,但是二者之间并无本质区别,它们均要求程序设计人员根据指令工作的方式思考、解决问题。因此,人们称这类语言为面向机器的语言或低级语言。,2023/7/29,随着计算机应用需求的不断增长,人们希望能有功能更强、抽象级别更高的语言来支持程序
4、设计,于是就产生了面向各类应用的程序设计语言。这些语言的共同特征是便于人类的理解与使用,因此被称为面向人类的语言或高级语言。表1.1列出了几种面向机器和面向人类的语言及其表现形式。,2023/7/29,表1.1 面向机器和面向人类语言举例,2023/7/29,1通用程序设计语言 通用程序设计语言是继汇编语言之后发展起来的应用最广的一类语言,如人们常用的FORTRAN、Pascal、C/C+、Ada83/Ada95、Java等语言。这类语言的特征是:语言结构符合人类的思维特征,如直接使用表达式进行数学运算;具有很高抽象程度,如引入过程与类等机制;程序设计中强调逻辑过程,即程序员要考虑事情的前因后
5、果,不但要设计做什么,还要考虑怎么做,如条件或循环的判断等。,2023/7/29,2数据查询语言 与通用程序设计语言相比,数据查询语言的抽象程度更高,它只要求程序员具有清晰的逻辑思维能力,设计好做什么,而忽略怎么做这样的实现细节,从而使得对大量复杂数据的处理变得轻松简单。,2023/7/29,3形式化描述语言 形式化描述语言的代表之一是编译器构造中常用的工具YACC的语言。这类语言的核心部分是基于数学基础的产生式,设计人员只需利用产生式描述语言结构的文法,就可以构造出识别该语言结构的识别器。,2023/7/29,4其他面向特定应用领域的语言 随着计算机应用领域的不断拓展,先后出现了多种面向特定
6、应用领域的高级语言,如面向互联网应用的HTML、XML,面向计算机辅助设计的MATLAB,面向集成电路设计的VHDL、Verilog,面向虚拟现实的VRML等等。这些形形色色、多不胜数的计算机语言推动了计算机应用的飞速发展,使得计算机成为人类生活中不可缺少的重要部分。,2023/7/29,1.1 程序设计语言的发展,汇编语言(Assemble Language),机器语言(Machine Language),程序设计语言(Programming Language),2023/7/29,例计算表达式3*16+2的值,实现该计算的机器语言程序、汇编语言程序和程序设计语言(C语言)程序如下所示。目标
7、计算机的系统结构和汇编语言的使用方法详见本书第7章。,22038210260261011000f000,Load R0,3Mul R0,10Load R1,2Add R0,R1Write R0Halt,void main(void)cout3*16+2;,注:10表示16,2023/7/29,机器语言 机器指令集合称为机器语言。机器指令即二进制数,通常由若干字节构成。优点计算机可直接识别执行可充分利用硬件特性,缺点可读性差指令系统随机种而异由于机器指令直接或间接含有绝对地址,增加或减少一条指令,可能会引起多条指令的修改。编程者需协调内存的使用 所以,机器语言形式的程序编制和维护困难,限制了计算
8、机的推广和应用。,2023/7/29,汇编语言 用记忆符取代二进制位,存储地址和汇编语句的序号可用符号名表示。优点用符号取代二进制数,提高了程序的可理解性。性能较好的汇编语言,可用符号名来表示存储地址和汇编语句序号,这样避免了在汇编语句中绝对地址的出现。可充分利用硬件特性 所以,汇编语言在一定程度上降低了程序编制和维护的难度。,缺点汇编语句和机器指令基本上是一对一的,所以汇编语言的编程效率并没有质的提高。和机器语言一样,汇编语言依附于目标计算机。需汇编程序,将汇编语言译成机器语言。,2023/7/29,程序设计语言 程序设计语言又称高级语言。程序设计语言接近于英语,相当于工程语言。目前计算机系
9、统一般含有多个程序设计语言的翻译程序(例VC、VB等),甚至对同一个程序设计语言配备了多个不同性能的翻译程序,供用户选择使用。优点独立于具体计算机,面向过程(函数)或对象。程序设计语言接近于英语,可理解性好。数据类型丰富,各种功能的语句齐备,一条语句至少相当于几十条汇编语句。所以,程序设计语言极大地提高了编程效率,大幅度地降低了编程难度。缺点需翻译程序,将高级语言译成机器语言或汇编语言。对硬件操作困难,高级语言通常提供汇编语言接口。,2023/7/29,1.2 基本术语解释,源语言和源程序(Source Language and Source Program)用程序设计语言书写的程序,称为源程
10、序,该程序设计语言称为源语言。源程序通常用编缉程序输入,用字符(ASCII码)表示,以文本文件形式存储。文本文件(Text File)文本文件的内容由94个图形字符!-(33-126)和4个控制字符换行(10)、回车(13)、空格(32)、TAB(9)构成,文本文件又称为ASCII码文件,扩展名通常为TXT,文件尾用控制字符EOF(26)指示。当换行和回车二个控制字符从文本文件读入内存,在C语言中是用一个字符(换行)表示。,2023/7/29,目标语言和目标程序(Target Language and Target Program)目标语言可以是机器语言(二进制数),也可以是汇编语言(字符),
11、或者是其它中间语言(字符),但最终结果必定是机器语言。机器语言程序用二进制文件存储,汇编语言或中间语言程序用文本文件存储。目标程序是经翻译程序加工后用目标语言表示的程序。二进制文件(Binary File)二进制文件由机器指令即二进制数构成,因二进制数可能是26,故文件尾用文件长度(文件的字节数)指示,扩展名通常为EXE。,2023/7/29,翻译程序(Translator)将源程序译成逻辑上等价的目标程序的程序。翻译程序有二种工作方式:编译和解释。,解释程序 Interpreter,源程序,结果,输入数据,解释、执行,解释方式主要特点是:用户程序是消极的。用户程序运行时,控制点在解释程序,即
12、用户程序的执行离不开解释程序。,解释方式(Interpret)以源程序作为输入,输入一句解释执行一句,不产生完整的目标程序,相应的翻译程序称为解释程序(Interpreter)。,工作方式如下图所示:,2023/7/29,编译方式(Compile)将源程序全部译为目标程序,该目标程序可在操作系统环境下直接执行,相应的翻译程序称为编译程序(Compiler),工作方式如下图所示:,编译程序Compile,连接程序Link,装入运行Run,编辑程序Edit,ASCII码,二进制(整体未定位),二进制(整体定位),源程序,结果,输入数据,2023/7/29,编辑程序的工作结果是ASCII码形式的源程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译系统概述 编译 系统 概述 PPT 课件
链接地址:https://www.31ppt.com/p-5569028.html