武汉大学《编译原理》各章知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
各章知识点
第一章引论
学习目标:
了解和掌握:
·高级程序设计语言与编译程序的关系
·编译程序的功能
·编译程序的体系结构
·编译程序的工作过程
·编译程序的组织方式
·编译程序的构造方法
第二章形式语言概论
学习目标:
⑴学习形式语言理论中的一些基本概念和基础知识
⑵掌握程序设计语言的语法描述方法
⑶需要着重掌握的内容:
·字母表
·产生式、上下文无关文法
·推导、句型、句子、语言
·语法树
·二义性
·Chomsky文法分类
课前准备:
关系的定义、关系的传递闭包和自反传递闭包的定义与求解方法
第三章有穷自动机
学习目标:
⑴有穷自动机是描述符号串处理的强有力的工具,是研究词法分析器的重要基础。本章主要介绍有穷自动机的理论及借助有穷自动机实现词法分析程序的方法。
⑵着重需要掌握以下内容:
·确定的有穷自动机DFA
·非确定的有穷自动机NFA
·NFA到DFA的转换
·DFA的最小化
·正规表达式到DFA的转换
第四章词法分析
学习目标:
⑴词法分析是编译过程的第一步,其主要任务是对源程序进行扫描,从中识别出单词,是编译过程中不可缺少的部分。
⑵着重需要掌握以下内容:
·单词的形式
·词法分析程序的设计方法
第五章自上而下语法分析
学习目标:
⑴语法分析检查源程序语法上是否正确,并生成相应的内部中间形式供下一阶段使用。按照识别句子时语法树的建立方式,语法分析有自上而下与自下而上两大类分析技术。
⑵本章主要学习自上而下的语法分析方法,主要有递归子程序法和LL(1)分析法。
⑶着重需要掌握以下内容:
·自上而下语法分析的基本思想
·自上而下语法分析面临的问题及解决方法
·自上而下语法分析时为避免回溯对文法的要求
·消除左递归的方法
·FIRST(x)的求法
·FOLLOW(U)的求法
·递归子程序的构造方法
·LL(1)文法
·LL(1)分析表的构造方法
第六章自下而上分析合优先分析方法
学习目标:
⑴本章主要学习自下而上的语法分析方法,主要有递归子程序法和LL(1)分析法。
⑵着重需要掌握以下内容:
·自下而上语法分析的基本思想
·自下而上语法分析面临的问题及解决方法
·简单优先分析法(简单优先文法、简单优先关系及其构造)
·算符优先分析法(算符优先文法、算符优先关系及其构造)
·优先函数的构造
第七章自下而上的LR(k)分析方法
学习目标:
⑴本章主要学习自下而上的语法分析方法,主要有递归子程序法和LL(1)分析法。
⑵着重需要掌握以下内容:
·LR分析器
·活前缀
·LR(0)项目、以LR(0)项目集为状态的识别活前缀的DFA
·LR(1)项目、以LR(1)项目集为状态的识别活前缀的DFA
·LR(0)分析表的构造方法
·SLR(1)分析表的构造方法
·LR(1)分析表的构造方法
·LALR(1)分析表的构造方法
·LR(0)文法、SLR(1)文法、LR(1)文法、LALR(1)文法
·二义性文法的应用
第八章语法制导翻译
学习目标:
⑴语义分析程序将依据语言的语义规则对语法分析得到的语法结构进行静态语义检查(确定类型、类型和运算合法性检查、识别含义与相应的语义处理及其它一些静态语义检查),并用另一种内部形式表示出来,或者直接用目标语言表示出来。
⑵本章主要介绍语义分析方法中比较常见的语法制导翻译方法。
⑶着重需要掌握以下内容:
·语法制导翻译方法的基本思想
·常见的中间语言形式:逆波兰表示、四元式表示、三元式表示
·常见语法成分的逆波兰表示、四元式表示、三元式表示、三地址代码表示
·程序设计语言中各种常见语法成分的目标代码结构
·常见语法成分的属性文法或翻译方案
第九章运行时的存储组织与管理
学习目标:
⑴编译程序秘须分配目标程序运行时的数据空间。运行阶段的存储组织与分配有两种方式:静态存储分配与动态存储分配。依据不同语言的特点可分别采用两种分配方式或将两者结合起来使用。
⑵着重需要掌握以下内容:
·运行阶段的存储组织与分配的基本思想
·静态存储分配的基本思想
·动态存储分配的基本思想
·活动记录
·以过程为单位的栈式动态存储组织与分配的基本思想
·嵌套结构语言非局部量访问的实现
·不同形实参数结合方式
第十章符号表
学习目标:
⑴符号表在整个编译期间的作用主要有两条:一是辅助语义的(即上下文有关的)正确性检查;二是辅助代码生成。
⑵着重需要掌握以下内容:
·符号表的作用
·符号表中的内容
·嵌套结构语言的栈式符号表
第十一章代码优化
学习目标:
⑴为获得更优化的目标程序,编译程序可在中间代码级上进行各种等价变换,以改进生成代码的效率。
⑵本章节主要是讨论在中间代码级别上进行的优化工作。主要介绍局部优化和循环优化。
⑶本章着重需要掌握以下内容:
·代码优化的基本思想
·什么是基本块
·如何划分基本块
·如何构造程序的流图
·如何确定结点的必经结点集
·什么是回边
·如何确定循环
·怎样利用基本块的DAG图进行基本块的优化
·如何进行循环的优化