- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软考-编译原理复习总结研讨
第一章????引论 编译程序是现代计算机系统的基本组成部分之一,许多计算机系统中,都会含有不止一个高级语言的编译程序,对有些高级语言甚至配置了几个不同性能的编译程序。 一、什么是编译程序 掌握编译程序的概念。它是一种把由高级程序设计语言写出的源程序翻译成由机器语言组成的目标文件的程序或软件。可以将编译程序看作一个“黑盒子”,负责将由高级语言编写的源程序翻译成低级语言表示的目标程序。 理解高级语言程序的处理过程。一个典型的程序时间程序的典型处理过程如下图所示。 二、编译过程概述 ????一个编译程序的整个过程是划分成阶段进行的,可划分为:源程序—词法分析—语法分析—语义分析—中间代码生成—代码优化—目标代码生成—目标程序。其中表格处理和出错处理贯穿整个过程。如图所示。 词法分析阶段:编译过程的第一阶段。任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也称单词符号或符号)。单词间的空格被滤掉。 语法分析:第二阶段。在词法分析的基础上将单词序列分解成语法短语,如“程序”,“语句”,“表达式”等。语法短语也叫语法单位,可表示成语法树。语法分析所依据的是语言的语法规则,通过语法分析确定整个输入串是否构成一个语法上正确的程序。 语义分析阶段:审查源程序有无语意错误,为代码生成阶段收集类型信息。比如它的一个工作是进行类型审查,审查每个算符是否具有语言规范允许的运算对象,当不符合语言规范时,编译程序就报错。例如,不能用实数作数组下标而用了就报错。 中间代码生成:在语法分析和语意分析阶段的工作以后,有的编译程序将源程序变成一种内部表示形式,这种内部表示形式叫中间语言或中间代码。 “中间代码”是一种结构简单,含义明确的记号系统,可设计为多种多样的形式,重要的色痕迹原则有两点:一是容易生成,二是容易将它翻译成目标代码。多数编译程序使用了一种近似“三地址四指令”的“四元式”中间代码,这种四元式的形式为:(运算符,运算对象1,运算对象2,结果)。 代码优化:对前阶段生成的中间代码进行变换或改造。目的:使生成的目标代码高效,即省时间、省空间。 目标代码生成:把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。这是编译的最后阶段,它的工作与硬件系统结构和指令含义有关,涉及到硬件系统功能部件的运用、机器指令的选择,各种数据类型变量的存储空间分配以及寄存器和后缓寄存器的调度等。 三、编译阶段的组合 ????编译过程中的阶段划分是编译程序的逻辑组织。有是把编译过程分为前端(front end)和后端(back end)。 前端:这些阶段的工作依赖于源语言而与目标机无关,通常这些阶段包括词法分析,语法分析,语意分析和中间代码生成,某些优化工作也可以放在前端,还包括与前端每个阶段相关的出错处理工作和对符号表管理工作。 后端:指那些依赖于目标机而一般不依赖于源语言,只与中间代码有关的那些阶段,即目标代码生成,以及相关的出错处理工作和对符号表管理工作。 第二章?高级语言 一、文法和语言的形式定义 ????掌握文法的形式定义。 文法G定义为四元组(Vn,VT,P,S)。其中Vn为非终结符号(或语法实体,或变量)集;VT为终结符号集;P为产生式(也称规则)的集合;Vn,VT和 P是非空有穷集。称作识别符号或开始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。Vn和VT不含公共的元素,即Vn∩VT=φ 通常用V表示Vn∪VT,V称为文法G的字母表或字汇表。其中规则,也称重写规则、产生式或生成式,是形如α→β或α∷=β的(α,β)有序对,其中α是字母表V的正闭包V+中的一个符号,β是V*中的一个符号。α称为规则的左部,β称为规则的右部。 二、文法的类型 ????文法分成四种类型,即0型、1型、2型和3型。这几类文法的差别在于对产生式施加不同的限制。 设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈( VN∪VT )*且至少含有一个非终结符,而β∈( VN∪VT )*,则G是一个0型文法。 设G=(VN,VT,P,S)为一文法,若P中的每一个产生式α→β均满足|β|≥|α| ,仅仅S→ε除外,则文法G是1型或上下文有关的。 设G=(VN,VT,P,S),若P中的每一个产生式α→β满足:α是一非终结符,β∈( VN∪VT )*则此文法称为2型的或上下文无关的。有时将2型文法的产生式表示为形如:A→β其中A∈VN,也就是说用β取代非终结符A时,与A所在的上下文无关,因此取名为上下文无关文法。 设G=(VN,VT,P,S),若P中的每一个产生式的形式都是A→aB或A→a,其中A和B都是非终结符,a是终结符,则G是3型
文档评论(0)