编译原理.ppt
《编译原理.ppt》由会员分享,可在线阅读,更多相关《编译原理.ppt(48页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、编译原理,第一章 编译程序概论,一.编译程序,从功能上看,一个编译程序就是一个语言翻译程序。它把一种语言(称作源语言)书写的程序翻译成另一种语言(称作目标语言)的等价的程序。源语言通常是一个高级语言,如FORTRAN,C 或Pascal。目标语言通常是一个低级语言,如汇编或机器语言。,编译程序,将一种语言书写的程序翻译成另一种语言的等价的程序。编译程序的输入对象称为源程序。编译程序的输出对象称为目标程序。,高级语言程序的处理过程,常用的翻译工具有3种,根据被翻译语言与执行方式的不同1.汇编程序用于特定计算机上的汇编语言的翻译程序。2.编译程序3.解释程序对源程序进行翻译的程序,编译程序与解释程
2、序的区别,“解释程序”是这样的程序:它以该语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身。“编译”的内涵是实现从源语言表示的算法向目标语言表示的算法的等价变换。,编译程序与解释程序的区别,解释方式,编译方式,编译阶段和运行阶段存储结构,编译时 运行时,名字表,目标代码缓冲区,编译用源程序中间表示各种表格,目标代码区,数据区,源程序缓冲区,解释系统存储结构,解释执行, 不生成目标代码 能支持交互环境(同增量式编译系统)优点:交互方便,节省空间。缺点:效率低。因对源程序的循环语句部分要反复解释执行。共同点:都需进行词法、语法、语义分析。,二.编译程序概述,英译与编译的比较,1
3、.识别出句子中的一个个单字2.分析句子的语法结构3.初步翻译句子的含意4.译文修饰5.写出最后译文,1.词法分析2.语法分析3.语义分析中间代码生成4.优化5.目标代码生成,1.词法分析,任务:扫描源程序,根据语言的词法规则,分解和识别出每个单词,并把单词翻译成相应的机内表示。单词是语言中最小的语义单位在词法分析阶段工作所依循的是语言的词法规则。描述词法规则的有效工具是正规式和有限自动机。,Pascal源程序片断,position := initial + rate * 60词法分析后可能返回:单词类型 单词值标识符 position算符(赋值) :=标识符 initial算符(加) +标识符
4、 rate算符(乘) *整数 60界符(分号) ;,C源程序片断int a;a = a + 2;词法分析后可能返回:单词类型 单词值保留字 int标识符 a界符 ;标识符 a 算符(赋值) =标识符 a算符(加) +整数 2界符 ;,2.语法分析,任务:根据语言的语法规则,把单词符号串分解成各语法单位。如“短语”、“句子”、 “子句”、“程序段”等。通过语法分析,可以确定整个输入符号串是否构成一个语法正确的程序;对含有语法错误的程序,要进行相应的出错处理。语法规则通常用“上下文无关文法描述”。,id1=id2+id3*10,依据的定义规则,:=“:=”:=“+”:=“* ”:=“(”“)”:=
5、id:=n,3.语义分析,任务:审查源程序有无语义错误.如使用了没有声明的变量;或者给一个过程名赋值;或者调用函数时参数类型不合适或者参加运算的两个变量类型不匹配等目的:保证标识符和常数的正确使用通常使用“属性文法”描述语义规则,如下边的程序片段:int arr2,c;c = arr1 * 10 ;其中的赋值语句是符合语法规则的,但是因为没有声明变量arr1,而存在语义错。,4.中间代码生成,“中间代码”是一种结构简单、含义明确的记号系统,这种记号系统可以设计为多种多样的形式,重要的设计原则为两点:一是容易生成;二是容易将它翻译成目标代码。目的:为了最终能得到高效率的目标代码任务:在语法分析和
6、语义分析的基础上,根据语法成分的语义对其进行翻译。常用的中间代码形式:(1)三元式(2)四元式(3)逆波兰式,sum = first+count*10,id1=id2+id3*10四元式(运算符,运算对象1,运算对象2,结果),5.中间代码优化,任务:通过调整和改变中间代码中某些操作的次序,最终产生更加高效率的目标代码优化所依循的原则是程序的等价变换规则其方法有:公共子表达式的提取、循环优化、删除无用代码等。,t1 = b* c t1 = b* c t2 = t1+ 0 t2 = t1 + t1t3 = b* c a = t2t4 = t2 + t3a = t4,6.目标代码生成,任务:将中间
7、代码优化之后的中间代码转换为等价的目标代码目标代码依赖于具体计算机的硬件系统结构和指令系统,三.编译程序的结构,表格与表格管理,编译过程中源程序的各种信息被保留在种种不同的表格里,编译各阶段的工作都涉及到构造、查找或更新有关的表格,因此需要有表格管理的工作最重要的是“符号表”它用来登记源程序中出现的每一个名字以及名字的各种属性。如一个名字是常量名、变量名,还是过程名等;如果是变量名它的类型又是什么、所占内存是多大、地址是什么等。,类型、作用域、分配存储信息,Const1常量值:35Var1变量类型:实层次:2,出错处理,一个编译程序不仅能对书写正确的程序进行编译,而且应能对出现在源程序中的错误
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理
限制150内