编译原理复习总结.ppt
《编译原理复习总结.ppt》由会员分享,可在线阅读,更多相关《编译原理复习总结.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章引论编译程序是现代计算机系统的基本组成部分之一,许多计算机系统中,都会含有不止一个高级语言的编译程序,对有些高级语言甚至配置了几个不同性能的编译程序。一、什么是编译程序一、什么是编译程序掌握编译程序的概念。它是一种把由高级程序设计语言写出的源程序翻译成由机器语言组成的目标文件的程序或软件。可以将编译程序看作一个“黑盒子”,负责将由高级语言编写的源程序翻译成低级语言表示的目标程序。理解高级语言程序的处理过程。一个典型的程序时间程序的典型处理过程如下图所示。二、编译过程概述二、编译过程概述一个编译程序的整个过程是划分成阶段进行的,可划分为:源程序词法分析语法分析语义分析中间代码生成代码优化目
2、标代码生成目标程序。其中表格处理和出错处理贯穿整个过程。如图所示。词法分析阶段:编译过程的第一阶段。任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也称单词符号或符号)。单词间的空格被滤掉。语法分析:第二阶段。在词法分析的基础上将单词序列分解成语法短语,如“程序”,“语句”,“表达式”等。语法短语也叫语法单位,可表示成语法树。语法分析所依据的是语言的语法规则,通过语法分析确定整个输入串是否构成一个语法上正确的程序。语义分析阶段:审查源程序有无语意错误,为代码生成阶段收集类型信息。比如它的一个工作是进行类型审查,审查每个算符是否具有语言规范允
3、许的运算对象,当不符合语言规范时,编译程序就报错。例如,不能用实数作数组下标而用了就报错。中间代码生成:在语法分析和语意分析阶段的工作以后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫中间语言或中间代码。“中间代码”是一种结构简单,含义明确的记号系统,可设计为多种多样的形式,重要的色痕迹原则有两点:一是容易生成,二是容易将它翻译成目标代码。多数编译程序使用了一种近似“三地址四指令”的“四元式”中间代码,这种四元式的形式为:(运算符,运算对象1,运算对象2,结果)。代码优化:对前阶段生成的中间代码进行变换或改造。目的:使生成的目标代码高效,即省时间、省空间。目标代码生成:把中间代
4、码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作与硬件系统结构和指令含义有关,涉及到硬件系统功能部件的运用、机器指令的选择,各种数据类型变量的存储空间分配以及寄存器和后缓寄存器的调度等。三、编译阶段的组合三、编译阶段的组合编译过程中的阶段划分是编译程序的逻辑组织。有是把编译过程分为前端(frontend)和后端(backend)。前端:这些阶段的工作依赖于源语言而与目标机无关,通常这些阶段包括词法分析,语法分析,语意分析和中间代码生成,某些优化工作也可以放在前端,还包括与前端每个阶段相关的出错处理工作和对符号表管理工作。后端:指那些依赖于目标机而
5、一般不依赖于源语言,只与中间代码有关的那些阶段,即目标代码生成,以及相关的出错处理工作和对符号表管理工作。第二章高级语言一、文法和语言的形式定义一、文法和语言的形式定义掌握文法的形式定义。文法文法G定义为四元组(Vn,VT,P,S)。其中Vn为非终非终结符号结符号(或语法实体,或变量)集;VT为终结符号终结符号集;P为产生式产生式(也称规则规则)的集合;Vn,VT和P是非空有穷集。称作识别符号识别符号或开始符号开始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。Vn和VT不含公共的元素,即VnVT=通常用V表示VnVT,V称为文法G的字母表或字汇表。其中规则,也称重写规则、产生式或生
6、成式,是形如或=的(,)有序对,其中是字母表V的正闭包V+中的一个符号,是V*中的一个符号。称为规则的左部,称为规则的右部。二、文法的类型二、文法的类型文法分成四种类型,即0型、1型、2型和3型。这几类文法的差别在于对产生式施加不同的限制。设G=(VN,VT,P,S),如果它的每个产生式是这样一种结构:(VNVT)*且至少含有一个非终结符,而(VNVT)*,则G是一个0型文法。设G=(VN,VT,P,S)为一文法,若P中的每一个产生式均满足|,仅仅S除外,则文法G是1型或上下文有关的型或上下文有关的。设G=(VN,VT,P,S),若P中的每一个产生式满足:是一非终结符,(VNVT)*则此文法称
7、为2型的或上下文无关的型的或上下文无关的。有时将2型文法的产生式表示为形如:A其中AVN,也就是说用取代非终结符A时,与A所在的上下文无关,因此取名为上下文无关文法。设G=(VN,VT,P,S),若P中的每一个产生式的形式都是AaB或Aa,其中A和B都是非终结符,a是终结符,则G是3型文法或正规文型文法或正规文法法。三、上下文无关文法及其语法树三、上下文无关文法及其语法树掌握上下文无关文法有足够的能力描述现今程序设计语言的语法结构,比如描述算术表达式,描述各种语句等等。给定文法G=(VN,VT,P,S),对于G的任何句型都能构造与之关联的语法树(推导树)。这棵树满足下列4个条件:每个结点都有一
8、个标记,此标记是V的一个符号。根的标记是S。若一结点n至少有一个它自己除外的子孙,并且有标记A,则A肯定在Vn中。如果结点n的直接子孙,从左到右的次序是结点n1,n2,nk,其标记分别为A1,A2,Ak,那么AA1A2,Ak一定是P中的一个产生式。四、句型的分析四、句型的分析句型分析句型分析是识别一个输入符号串是否为语法上正确的程序的过程。在语言的编译实现中,把完成句型分析的程序称为分析分析程序程序或识别程序识别程序,分析算法又称识别算法。掌握自上而下的识别算法和自下而上的识别算法。第三章词法分析词法分析是编译的第一个阶段,它的主要任务是从左至右逐个字符地对源程序进行扫描,产生一个个单词序列,
9、用以语法分析。执行词法分析的程序称为词法分析程序或扫描程序。本章我们将讨论词法分析程序的设计原则,单词的描述技术,识别机制及词法分析程序的自动构造原理。一、掌握词法分析程序的设计的主要思想一、掌握词法分析程序的设计的主要思想了解词法分析程序与语法分析程序的接口方式:可以将词法分析作为独立的一遍进行处理,但更常用的方法是将词法分析程序设计为一个子程序,当语法分析需要单词时,就调用该子程序。了解词法分析程序的输出:词法分析程序的功能是读入源程序,输出单词符号。单词符号一般可分成5种:保留字,标识符,常数,运算符和界符。将词法分析工作从语法分析中分离出来的原因:使整个编译程序的结构更简洁、清晰和条理
10、化;编译程序的效率会改进;增强编译程序的可移植性。二、单词的描述工具二、单词的描述工具掌握正规式的定义以及正规式服从的代数规律。熟练掌握正规文法和正规式的等价性以及转换规则。三、单词的识别工具三、单词的识别工具掌握有穷自动机的定义和分类。掌握确定有穷自动机(DFA)的定义,并熟悉其状态图的表示和矩阵表示;掌握不确定有穷自动机(NFA)的定义,并熟悉NFA的状态图表示和矩阵表示。掌握将NFA转化为DFA的算法子集法。确定有穷自动机的化简与有穷自动机的等价转换。第四章自顶向下语法分析方法语法分析是编译程序的核心部分。语法分析的作用是识别由词法分析给出的单词符号序列是否是给定文法的正确句子(程序),
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 复习 总结
限制150内