
编译原理第三版
-
2023年3月20日发(作者:郑州天伦医院)重点难点
第一章引论
考核目的:
考核学生对编译原理的基本概念、定义、编译原理的应用发展和现
状的了解和掌握情况。
考核的知识点:
正确理解什么是编译程序;熟悉编译程序总流程框图;了解编译程
序工作的基本过程及其各阶段的基本任务;了解编译程序的生成过程和构
造工具。
考核要求:
掌握:什么是编译程序、编译过程、编译程序构造。
理解:什么是编译的关键技术、编译程序与程序设计环境解决了哪些
实际问题;编译程序的生成。
了解:编译技术的发展。
第二章高级语言及其语法描述
考核目的:
考核学生对程序语言的定义、高级语言的一般特征及程序语言的语
法描述理的理解和掌握。
考核的知识点与考核要求:
•理解:词法、语法和语义的概念,语言生成过程
上下文无关文法基本概念,包括:文法的定义、编写、句型、句子、
语言、语法树、二义性等;
•掌握:能对表达式进行推导并构造语法树
会判断文法的二义性
能找出句型的短语、直接短语、句柄
高级语言一般结构和主要共同特征
第三章词法分析
考核目的:
考核学生对词法分析器的任务、词法分析器的设计、正规表达式与
有限自动机、词法分析器的自动产生等内容的理解和掌握。
考核的知识点:
词法分析器的任务,词法分析器设计,正规表达式与有限自动机,词
法分析器自动生成。
考核要求:
1.词法分析器的作用和接口,用高级语言编写词法分析器等内容,它们
与词法分析器的实现有关。应重点掌握词法分析器的任务与设计,状态转
换图等内容。
2.掌握下面涉及的一些概念,它们之间转换的技巧、方法或算法。
•非形式描述的语言正规式
•正规式NFA(非确定的有限自动机)
•NFADFA(确定的有限自动机)
•DFA最简DFA
第四章语法分析—自上而下分析
考核目的:
考核学生对语法分析器的功能、自上而下分析所面临的问题、LL
(1)分析法、递归下降分析的构造过程、预测分析程序等内容的理解和掌
握。
考核的知识点:
语法分析器的功能,自上而下分析方法,LL(1)文法,递归下降分析程
序构造,预测分析表的构造及预测分析过程。
考核要求:
1.语法分析器的功能,自上而下的基本概念
2.LL(1)文法的条件及其判别,计算first集和follow集
3.递归下降分析方法、预测分析表的构造及其预测过程。
4.自顶向下语法分析面临的问题有哪些,如何解决这些问题
第五章语法分析—自下而上分析
考核目的:
考核学生对自下而上分析的基本问题、算符优先分析、LR分析法
及语法分析器的自动产生工具YACC等内容的理解和掌握。
考核的知识点:
自下而上语法分析(算符优先分析法),算符优先分析,LR分析器,
LR(0)项目集族和LR(0)分析表的构造,SLR分析表的构造,规范LR分析
表的构造,出错处理概述,词法分析阶段的错误诊察,语法分析(自下而
上)阶段的错误诊察,语法分析器自动产生工具YACC。其中要重点掌握
归约,算符优先表构造,LR分析法。
考核要求:
1.自下而上语法分析的基本概念:归约、最左素短语、句柄
2.算符优先分析方法:firstVT,lastVT集的计算,算符优先表的构造,
工作原理
3.LR分析器:LR(0)项目集族,SLR和LR(0)分析表的构造,LR分析的
基本原理
4.LR方法如何用于二义文法
第六章属性文法和语法制导翻译
考核目的:
考核学生对属性方法、基于属性文法的处理方法、S-属性文法和自
下而上计算、L-属性文法和自顶向下翻译、自下而上计算继承属性等内容
的理解和掌握。
考核的知识点:
属性文法,基于属性文法的处理方法,S-属性文法的自下而上计算,
L-属性文法的自顶向下翻译,自下而上计算继承属性。要重点掌握:
考核要求:
1.语法制导翻译基本思想,概述,自下而上分析制导翻译概述。
2.语义规则的两种描述方法:语法制导的定义和翻译方案。语法制导
的定义没有指明语义规则的计算次序,而翻译方案显式给出语义规则(或
叫语义动作)的计算次序和位置。
3.基于属性文法的处理方法,综合属性定义(S属性定义)和L属性定
义。
4.设计简单问题的语法制导定义和翻译方案,这是本章的重点和难点。
这种设计可看成是一种程序设计,是一种事件驱动形式的程序设计,因此
它比一般的编程要难得多。这里的事件是句子中各种语法结构的识别。
5.语义规则的三种计算方法:分析树方法、基于规则的方法和忽略规则
的方法。
6.S属性的自下而上计算(边语法分析边属性计算,忽略规则的方法)。
7.L属性的自上而下计算(边语法分析边属性计算,忽略规则的方法)。
8.递归计算(先语法分析后属性计算,基于规则的方法)。
第七章语义分析和中间代码产生
考核目的:
考核学生对中间语言,说明语句,赋值语句的翻译,布尔表达式的翻
译,控制语句的翻译,过程调用的处理,各种常见中间语言形式,各种语
句到四元式的翻译,过程调用的处理、类型检查等内容的理解和掌握。
考核的知识点:
中间语言,说明语句,赋值语句的翻译,布尔表达式的翻译,控制语
句的翻译,各种常见中间语言形式,各种语句到四元式的翻译,类型检查,
过程调用的处理。
考核要求:
1.中间代码的几种形式,它们之间的相互转换:四元式、三元式、逆波
兰表示
2.算术表达式、布尔表达式的翻译及其中间代码格式。
3.赋值语句和各种控制流语句的翻译及其中间代码格式
4.过程调用的中间代码格式
5.类型检查所涉及的内容
第八章符号表
考核目的:
考核学生对符号表的组织与作用,整理与查找,名字的作用范围,符
号表的内容等的理解和掌握。
考核的知识点与考核要求:
符号表的组织与作用,作用域信息的保存,整理与查找,名字的作用
范围,符号表的内容。其中要重点掌握符号表的作用与内容。
第九章运行时存储空间组织
考核目的:
考核学生对目标程序运行时的活动,运行时存储器的划分,静态存储
管理,简单的栈式存储分配的实现,嵌套过程语言的栈式实现,堆式动态
存储分配等内容的理解和掌握。
考核的知识点:
目标程序运行时的活动,运行时存储器的划分,静态存储管理,简单
的栈式存储分配的实现,嵌套过程语言的栈式实现,堆式动态存储分配。
考核要求:
1.哪些语言特性会影响存储器的分配策略
2.各种存储分配策略,主要是静态分配和动态栈式分配的基本思想。
3.活动记录中各种数据域的作用和安排。
4.非局部数据访问的实现方法。
5.各种参数传递方式及其实现。
第十章优化
考核目的:
考核学生对优化概述,局部优化,基本块的DAG表示及其应用,控
制流分析和循环查找算法,到达定值与引用定值链,循环优化等内容的理
解和掌握。
考核的知识点:
优化概述,局部优化,基本块的DAG表示及其应用,控制流分析和
循环查找算法,到达定值与引用定值链,循环优化。
考核要求:
1.对各类优化的理解,包括常量合并、公共子表达式删除、复写传播、
死代码删除、循环优化(代码外提、归纳变量删除、强度削弱)等。
2.控制流分析:掌握建立程序流图的算法和流图中自然循环的识别算
法。
3.数据流分析:对各种数据流分析(到达-定值分析、可用表达式分
析、活跃变量分析等)方程的认识和区分,和对这些方程迭代求解方法的
理解。
第十一章目标代码生成
考核目的:
考核学生对目标机器模型,一个简单代码生成器,寄存器分配,DAG
目标代码,窥孔优化等内容的理解和掌握。
考核的知识点:
目标机器模型,一个简单代码生成器,寄存器分配,DAG目标代码,
窥孔优化。
考核要求:
1.代码生成器设计中的主要问题:存储管理、计算次序的选择、寄存器
的分配、指令的选择等。
2.目标机器几种常用的地址模式和一些常用的指令。
3.基本块和程序流图。
4.一些简单的代码生成算法。
4.了解如何利用控制流分析的信息和各种数据流分析的信息进行各类代
码改进变换。
第十二章并行编译基础
考核目的:
考核学生对并行计算机及其编译系统,向量与向量的次序,循环模型
与索引空间,输入与输出集合,语句的执行顺序,依赖关系,依赖关系问
题,依赖关系测试,循环的向量化与并行化,循环变换技术等内容的理解
和掌握。考核的知识点与考核要求:
了解并行计算机及其编译系统,向量与向量的次序,循环模型与索引空间,输入
与输出集合,语句的执行顺序,依赖关系,依赖关系问题,依赖关系测试,循环的向
量化与并行化,循环变换技术。并行计算机及其编译系统。