《编译原理绪论》PPT课件.ppt

《编译原理绪论》PPT课件.ppt

ID:52101698

大小:289.50 KB

页数:33页

时间:2020-03-31

《编译原理绪论》PPT课件.ppt_第1页
《编译原理绪论》PPT课件.ppt_第2页
《编译原理绪论》PPT课件.ppt_第3页
《编译原理绪论》PPT课件.ppt_第4页
《编译原理绪论》PPT课件.ppt_第5页
资源描述:

《《编译原理绪论》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第1章绪论1.1编译程序概述1.2编译程序的工作过程与结构1.3编译程序的开发1.4构造编译程序所应掌握的内容1.1编译程序概述为了处理和解决实际问题,每一种计算机都具有其特定的功能,而这些功能是通过计算机执行一系列相应的操作来实现的。计算机所能执行的每一种操作称为一条指令,计算机能够执行的全部指令集合就是该计算机的指令系统。由于计算机硬件的器件特性,决定了计算机本身只能直接接受由0和1编码的二进制指令和数据,这种二进制形式的指令集合称为该计算机的机器语言,它是计算机惟一能够直接识别并接受的语言。用机器语言编写程序很不方便且容易出错,编写出来的程序也难以调试、阅读和交流。为

2、此,出现了用助记符代替机器语言二进制编码的另外一种语言,这就是汇编语言。汇编语言是建立在机器语言之上的,因为它是机器语言的符号化形式,所以较机器语言直观;但是计算机并不能直接识别这种符号化语言,用汇编语言编写的程序必须翻译成机器语言之后才能执行,这种“翻译”是通过专门的软件——汇编程序实现的。尽管汇编语言与机器语言相比在阅读和理解上有了长足的进步,但其依赖具体机器的特性是无法改变的,这给程序设计增加了难度。随着计算机应用需求的不断增长,出现了更加接近人类自然语言的功能更强、抽象级别更高的面向各种应用的高级语言。高级语言已经从具体机器中抽象出来,摆脱了依赖具体机器的问题。用高

3、级语言编制的程序几乎能够在不改动的情况下在不同种类的计算机上运行且不易出错,这是汇编语言难以做到的,但高级语言程序翻译(编译)成最终能够直接执行的机器语言程序的难度却大大增加了。由于汇编语言和机器语言一样都是面向机器的,故相对于面向用户的高级语言来说,它们都称之为低级语言,而FORTRAN、PASCAL、C、ADA、Java这类面向应用的语言则称之为高级语言。因此,编译程序就是指这样一种程序,通过它能够将用高级语言编写的源程序转换成与之在逻辑上等价的低级语言形式的目标程序,见图1–1。图1-1编译程序的功能一个高级语言程序的执行通常分为两个阶段,即编译阶段和运行阶段,如图1

4、–2所示。编译阶段将源程序变换成目标程序;运行阶段则由所生成的目标程序连同运行系统(数据空间分配子程序、标准函数程序等)接受程序的初始数据作为输入,运行后输出计算结果。如果编译生成的目标程序是汇编语言形式,那么在编译与运行阶段之间还要添加一个汇编阶段,它将编译生成的汇编语言目标程序再经过汇编程序变换成机器语言目标程序,如图1–3所示。图1-2源程序的编译和运行阶段图1–3源程序的编译、汇编和运行阶段用高级语言编写的程序也可通过解释程序来执行。解释程序也是一种翻译程序,它将源程序作为输入,一条语句一条语句地读入并解释执行,如图1–4所示。解释程序与编译程序的主要区别是:编译程

5、序是将源程序翻译成目标程序后再执行该目标程序,而解释程序则是逐条读出源程序中的语句并解释执行,即在解释程序的执行过程中并不产生目标程序。典型的解释型高级语言是BASIC语言。图1-4解释程序解释执行过程的示意1.2编译程序的工作过程与结构编译程序的工作过程是指从输入源程序开始到输出目标程序为止的整个过程,此过程是非常复杂的。一般来说,整个编译过程可以划分成五个阶段:词法分析阶段、语法分析阶段、语义分析和中间代码生成阶段、优化阶段和目标代码生成阶段。1.词法分析词法分析的任务是输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词符号,如基本字(if、for、beg

6、in等)、标识符、常数、运算符和界符(如“()”、"=”、“;”)等,将所识别出的单词用统一长度的标准形式(也称内部码)来表示,以便于后继语法工作的进行。因此,词法分析工作是将源程序中字符串变换成单词符号流的过程,词法分析阶段工作遵循的是语言的构词规则。2.语法分析语法分析的任务是在词法分析的基础上,根据语言的语法规则(文法规则)把单词符号流分解成各类语法单位(语法范畴),如“短语”、“子句”、“句子(语句)”、“程序段”和“程序”。通过语法分析可以确定整个输入串是否构成一个语法上正确的“程序”。语法分析所遵循的是语言的语法规则,语法规则通常用上下文无关文法描述。3.语义分

7、析和中间代码生成这一阶段的任务是对各类不同语法范畴按语言的语义进行初步翻译,包含两个方面的工作:一是对每种语法范畴进行静态语义检查,如变量是否定义、类型是否正确等;二是在语义检查正确的情况下进行中间代码的翻译。注意,中间代码是介于高级语言的语句和低级语言的指令之间的一种独立于具体硬件的记号系统,它既有一定程度的抽象,又与低级语言的指令十分接近,因此转换为目标代码比较容易。把语法范畴翻译成中间代码所遵循的是语言的语义规则,常见的中间代码有四元式、三元式、间接三元式和逆波兰记号等。4.优化优化的任务是对前阶段产生的中间

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。