编译原理考后复盘

tech2022-10-31  99

各章讲授范围及重要知识点

第一章 引论   全讲   翻译程序、编译程序、宿主机、目标机、编译过程的5 个阶段(每个阶段的任务、所依循的规则、使用的工具)、图1.1、编译前端和后端、T 形图 第二章 高级语言及其语法描述   全讲   字母表、符号串、连接积、上下文无关文法(终结符号、非终结符号、开始符号、产生式)、推导、句型、最左推导、最右推导、语法分析树、二义文法、4 种文法 第三章 词法分析   3.1、3.2、3.3.1-3.3.3   单词符号的分类、输入预处理、超前搜索、状态转换图、正规式与正规集、确定有限自动机、非确定有限自动机、子集法 第四章 语法分析—自上而下分析   4.1-4.5   左递归、消除左递归算法、LL(1)文法、FIRST 集合、FOLLOW 集合、预测分析表构造 第五章 语法分析—自下而上分析   5.1、5.2.1-5.2.2、5.3.1-5.3.3   归约、短语、直接短语、句柄、规范归约概念、算符优先文法、FIRSTVT 和LASTVT 集合及构造算法、最左素短语、算符优先分析算法、图5.4、LR 分析表结构、LR(0)项目集族和LR(0)分析表构造、SLR 分析表构造 第六章 属性文法和语法制导翻译   6.1-6.2、6.4.1   属性文法、综合属性和继承属性、依赖图、抽象语法树、翻译模式 第七章 语义分析和中间代码产生   7.1、7.3.1、7.4、7.5.1、7.6   中间语言形式、布尔表达式翻译、回填技术、控制流语句翻译 第八章 符号表   8.1、8.2、8.3.2   符号表包含内容、符号表的3 种构造法和处理法(特别是杂凑技术) 第九章 运行时存储空间组织   9.1、9.2、9.4、9.5.1   活动的概念、参数传递方式、活动记录定义及包含内容、静态链、动态链、非局部名字访问的2种方式 第十章 优化   10.1、10.2.1、10.3   优化的目的及原则、基本方法、基本块及流图、循环优化 第十一章 目标代码生成   11.1   目标代码的3 种形式、代码生成着重要考虑的两个问题、设计代码生成器时的一般问题

试卷分值组成

填空20 判断10 简答25 综合45 最终成绩=平时成绩(30%)+考试成绩(70%)

错题

实现LL(1)分析的另一种有效方式是使用______和______进行联合控制。 我的答案: 总控程序 预测分析表 正确答案: 分析栈 分析表

反思总结:   脑子里当时就只记住上图蓝色方框里的总控程序和预测分析表就填上去了,要看仔细,理解清楚!

判断: 一棵语法树表示了一个句型的所有可能的推导。 我的答案: √ 正确答案: ×

反思总结:当时想的是一棵语法树表示一个句型种种可能的不同推导过程 , 包括最左(最右) 推导。但是没注意到 “所有” 这个绝对描述的字眼,正确表述为:一棵语法树表示了一个句型所有可能的推导 (二义性文法除外)。

知识点总结:

从一个句型到另一个句型的推导过程往往不是唯一的。一颗语法树表示了一个句型 种种可能的(但未必是所有的) 不同推导过程,包括最左(最右)推导。这样的一颗语法树是这些不同推导过程的共性抽象,是它们的代表。一个句型不一定只对应唯一的一棵语法树(二义文法),也就是不一定只有唯一的一个最左(最右)推导。某文法如果存在某个句子对应两棵不同的语法树(证明一个文法是二义的),则说这个文法是二义性文法。或者说,若一个文法中存在某个句子,有两个不同的最左推导或最右推导,则该文法是二义的。文法的二义性和语言的二义性是两个不同的概念。二义性问题是不可判定的,即不存在一个算法,它能在有限步骤内,确切的判定一个文法是否为二义的。

请画出编译程序的总框图。

注意: 千万不要忘记两边的符号表管理和出错处理以及双向箭头!

简述词法分析阶段预处理程序的作用。

完整答案 (记牢):

剔除无用的空白、跳格、回车和换行等编辑性字符;区分标号区、连接续行和给出句末符等。

考虑文法G(E): E → T | E+T T → F | T*F F → (E) | i 和句子i1+i2*i3+i4: (1)画出它所对应的语法树; (2)写出它的短语、直接短语和句柄。

(1)语法树如下: (2)短语:i1,i2,i3,i4,i2*i3,i1+i2*i3,i1+i2*i3+i4    直接短语:i1,i2,i3,i4    句柄(最左直接短语):i1

注意: 题目越简单越要小心仔细检查,做到不重不漏,理清概念,不要混淆概念、思维错乱!

反思总结

凡事趁早做,趁早完成,留足时间充分认真复习,不要以为自己觉得都掌握了就大意轻敌,盲目自信;简答题多背、背全、记牢,这方面容易扣很多分;考试时不可避免会犯很多低级错误,如看走眼、算错等,检查时一定要认真仔细,就当给头脑清零后重新做过一遍题,怀着定势思维检查题目往往检查不出任何错误,只会觉得越看越对。
最新回复(0)