编译原理总复习2016_第1页
编译原理总复习2016_第2页
编译原理总复习2016_第3页
编译原理总复习2016_第4页
编译原理总复习2016_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 教 学 1 1 题型及分值题型及分值 2 2 教材各章知识点概览教材各章知识点概览 3 3 计算题题型计算题题型 1 题 型 一、判断题 (15=5) 二、填空题 (110=10) 三、选择题 (25=10) 四、简答题 (本题共35分):其中包括两个名词解释。 五、计算题 (10+15+15=40) 返回 2 教 材 各 编译程序概论编译程序概论 1 文法和语言文法和语言 2 词法分析与有限自动机词法分析与有限自动机 3 自上而下语法分析方法自上而下语法分析方法 4 自下而上语法分析方法自下而上语法分析方法 5 语法制导翻译和语义分析语法制导翻译和语义分析 6 符号表符号表 7 代码优化代

2、码优化 8 1、 编 译 (1)基本概念 , (2)编译过程的五个阶段,各阶段的任务及其依循的规则、 描述工具分别是什么?除了这个5个阶段之外,还应该有哪 两个重要内容? 五个逻辑阶段:词法分析、语法分析、语义分析和中间代码产生、 代码优化和目标代码生成。除了这五个阶段之外,编译程序的每个阶段 都涉及到表格管理和错误处理这两个重要内容。 1、 编 译 (3)编译错误的种类 从编译程序的角度来看,源程序中的错误主要分为:语法错误 和 语义错误两类错误。 (4)高级程序设计语言翻译的两种方式以及它们的区别 高级程序设计语言的翻译主要有两种方式:编译方式 和 解释方式。 区别:是否生成目标代码。 2

3、、 文 法 (1)基本概念 、 (2)对文法G,能够给出给定句型或句子的最左推导及最右推 导序列,并画出其对应的语法分析树。 (3)能够计算某文法的语言。 (4)理解文法的二义性,能够说明一个文法是二义的。 2、 文 法 (5)形式语言分类(chomsky,1956) u0型 普通(短语)文法 u1型 上下文有关文法 u2型 上下文无关文法 u3型 线性(正规、正则)文法 3型2型1型0型 3、 词 法 分 析 (1)基本概念 、 (2)词法分析器的任务及其输出形式 任务:自左至右逐个字符地对源程序进行扫描,按语言的构词规则识别 出一个个单词,把作为字符串的源程序改造为单词符号串的中间程序。

4、输出形式:二元式 ( 单词种别, 单词符号的属性值) (3)单词符号的种类 关键字、标识符、常数、运算符、界符 3、 词 法 分 析 (4)正规文法、正规式、有限自动机之间的相互等价性定理 (5)正规式 NFA DFA 最小化DFA 4、 自 上 而 下 (1)语法分析的方法 根据语法分析树建立方向的不同,将语法分析分成两类:自上而下 语法分析方法和自下而上语法分析方法。 (2)自上而下分析的基本思想 穷举试探法 (3)自上而下分析面临的两个最主要的问题 左递归、回溯 (4)自上而下分析的基本方法 LL(1)分析法、递归下降分析器 4、 自 上 而 下 (5)左递归(直接、间接)和回溯的消除

5、u 直接左递归的消除 u 间接左递归的消除 排序 代入及消除左递归 化简 12m12n PP|P|P| 12n 12m PP |P |P PP |P |P | 4、 自 上 而 下 (5)左递归(直接、间接)和回溯的消除 u 回溯的消除:提左公因子 12n12m A | | | | | 12m 12n AA | | | A | | 4、 自 上 而 下 (6)LL(1)的含义 LL(1)中的第一个L表示从左至右扫描输入串,第二个L表示最左推 导,1表示分析时每一步只需向前查看一个符号。 (7)LL(1)分析器的组成部分 输入缓冲区、分析栈、分析表、总控程序 (8)LL(1)分析的四种动作 成功

6、、匹配、推导、报错 4、 自 上 而 下 (9)LL(1)文法的判定条件 文法不含左递归。 文法中每一个非终结符A的各个产生式的候选首符集两两不相交。即, 若 则 对文法中的每个非终结符A,若它存在某个候选首符集包含,则 如果一个文法G满足以上条件,则称该文法G为。 n21 |A j)(i)FIRST()FIRST( ji FOLLOW(A)FIRST(A) 4、 自 上 而 下 (10)LL(1)分析方法 假设要用非终结符A进行匹配,面临的输入符号为a,关于A的所有 产生式为 则LL(1)分析算法如下: 若 ,则指派 去执行匹配任务。 若a不属于任何一个候选首符集,则 v若属于某个 且 ,则

7、让A与自动匹配; v否则,a的出现是一种语法错误。 根据LL(1)文法的条件,每一步这样的工作都是确信无疑的。 n21 |A )FIRST(a i i )FIRST( i FOLLOW(A)a 4、 自 上 而 下 (11)FIRST集和FOLLOW集的构造 (12)预测分析表的构造 5、 自 下 而 上 (1)基本概念 、 (2)自下而上分析的基本思想及其核心 基本思想:移进-归约 核心问题:可归约串的界定 (3)自下而上分析的基本方法 u算符优先分析法:以最左素短语作为可归约串,非规范归约 uLR分析法:以句柄作为可归约串,规范归约 5、 自 下 而 上 (4)给定一个文法的句型,找出其短

8、语、直接短语、句柄、 素短语和最左素短语 方法:首先画出句型的语法分析树,然后根据语法树寻找。 u每棵子树的叶子结点自左至右排列构成一个相对于子树根的短语。 u每棵简单子树(只有父子两代)的叶子结点自左至右排列构成一个直 接短语。 u最左简单子树的叶子结点自左至右排列构成一个句柄。 u将所有短语中至少含一个终结符的短语,按长度从小到大排列,长度 最短的认定为素短语,然后考察其余长度较大的,若不包含更小的素 短语,则也为素短语。位于句型中最左边的素短语即为最左素短语。 5、 自 下 而 上 (5)算符文法与算符优先文法 算符文法:任意产生式右部不含两个连续的非终结符,(.QR.) 算符优先文法:

9、算符文法中任意两个终结符之间至多只含“”、 “”、“=”三种关系之一。 。 算符优先关系是有序的,但不满足对称性和传递性,即对于文法G 的终结符a、b和c: 如果aa; 如果存在a=b和b=c,不一定有b=a或a=c; 如果存在ab和bc,也不能得出ac。 5、 自 下 而 上 (6)FIRSTVT集与LASTVT集的计算 FIRSTVT :若有产生式Pa或 PQa,则aFIRSTVT(P); :若aFIRSTVT(Q)且有产生式 PQ,则aFIRSTVT(P) ; :反复使用以上两条规则,直到FIRSTVT(P)不再增大为止。 LASTVT :若有产生式Pa或 PaQ,则aLASTVT(P)

10、; :若aLASTVT(Q)且有产生式 PQ,则aLASTVT(P) ; :反复使用以上两条规则,直到LASTVT(P)不再增大为止。 ()|, TN F IR ST V TPaPaPQ aaVQV 或 ()|, TN LASTVTPaPaPaQ aVQV或 5、 自 下 而 上 (7)算符优先关系表的构造 :对形如Pab或PaQb的产生式,有a=b; :对形如PaR的产生式,若有bFIRSTVT(R),则ab; :对于语句括号#,有#=#,且若aFIRSTVT(S)和bLASTVT(S), 则有#。 5、 自 下 而 上 (8)算符优先分析算法 最左素短语的寻找依据: 5、 自 下 而 上

11、(9)算符优先分析算法 算符优先分析的特点: u算符优先分析一般并不等价于规范归约 u无法使用单非产生式(如:TF)进行归约。 u算符优先分析比规范归约过程要快,跳过了所有的单非产生式。 u可能将本来不是句子的输入串误认为是句子。 (10)LR分析器的基本思想及其组成部分 基本思想:记住历史、展望未来、定夺现在 组成部分:输入缓冲区、分析栈(状态、符号)、分析表(动作、 转换)、总控程序 5、 自 下 而 上 (11)四类LR分析表 LR分析表是LR分析器的核心,主要有以下几种分析表:LR(0)表、 SLR(1)表(即简单LR表)、LR(1)表(即规范LR表)、LALR表(即向 前LR表)。其

12、中,L代表自左至右扫描输入串,R代表构建最右推导的逆 过程,1代表分析时每一步至多向前查看一个符号,S代表简单的。 (12)LR分析器的四种动作 移进、归约、接受、报错 (13)LR分析器的两种冲突 移进归约 冲突 和 归约归约 冲突 5、 自 下 而 上 (14)四类不同的项目 5、 自 下 而 上 (15)四类LR分析表的构造 拓广文法 构造LR(0)(LR(0)和SLR分析表)或LR(1)(LR(1)和LALR分析表)项 目集规范簇 构造相应分析表 (16)LR文法的特点 uLR文法肯定是无二义的,一个二义文法决不会是LR文法。 uLR分析法比预测分析法更加一般化。 uLR(0)文法一定

13、是SLR文法,SLR文法和LALR文法一定是LR(1)文法。 6、 语 法 制 导 翻 (1)基本概念 、 (2)属性分类 综合属性:用于“自下而上”地传递信息。 继承属性:用于“自上而下”地传递信息。 终结符号只有综合属性,由词法分析器提供。 非终结符既可有综合属性也可有继承属性,文法开始符号的所有继承 属性作为属性计算前的初始值。 (3)语义规则的表示 6、 语 法 制 导 翻 (4)常见的中间代码的几种形式 后缀式(逆波兰表示式) 图表示法 u抽象语法树 uDAG图 三地址代码 u四元式 u三元式 u间接三元式 6、 语 法 制 导 翻 (5)后缀式(逆波兰式)的表示 把运算量(操作数)

14、写在前面,把运算符写在后面(后缀)的一种 表达式表示方法。其归纳定义如下: 如果E是一个变量或常数,则E的后缀式是E自身。 如果E是E1 op E2 形式的表达式,op是二元操作符,则E的后缀式 为E1E2op,其中E1,E2分别是E1和E2的后缀式。 若E是(E1)形式的表达式,则E的后缀式就是E1的后缀式。 6、 语 法 制 导 翻 (6)将以下语句翻译为四元式序列 表达式(算术及布尔) 赋值语句 IF语句 WHILE语句 (7)参数传递的几种方式 传地址、 传值、传名、得结果 7、 符 (1)符号表的基本组成、基本操作 组成:一张符号表的每一项入口包含:名字栏和信息栏 操作:查表、填表、访表、更新、删除 (2)内情向量的基本表项 在编译过程中,碰到数组的说明时,通常将数组的有关 信息记录在一个内情向量表中,这些信息包括:维数、首地 址、各维界差、各维上界、各维下界、数组元素类型、地址 不变量。 8、 代 (1)基本概念 (2)代码优化遵循的原则 等价原则、有效原则、合算原则 (3)优化分类 根据优化对象所涉及的程序范围划分为:局部优化、循环优化和全局 优化。 (4)常见的优化的几种方法 删除公共子表达式、复写传播、删除无用代码、合并已知量、代码外 提、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论