编译原理 笔记

第一讲 编译过过程概述
主要介绍了:
(1)什么是编译是编译程序?
(2)编译程序的作用;
(3)编译过程;
(4)编译程序的组成及各部分的作用。

第二讲 上下文无关文法和语言
主要介绍了:
(1)语法、语义等概念,
(2)回顾了关于程序语言定义,初等数据类型,数据结构,高级高级语言的一般特性,程序结构,语句与控制结构等内容;
(3)重点介绍了程序设计语言的描述工具-文法,包括文法的定义,文法的种类等内容,
(4)重点介绍用于描述程序设计语言的上下文无关文法,上下文无关文法的推导,上下文无关文法与语言,语法分析树的构造,文法的二义性等;
(5)符号串(语言)的各种运算及其性质;
(6)对于给定的一个文法,对于其某句型的推导、句型的推导过程、句子、所形成的语言等,以及推导所形成的语法树。
(7)最左推导,最右推导、规范推导等有关的概念及其产生过程;
(8)什么是句型分析,什么是短语、直接短语,句柄,如何求解?

第三讲 词法分析器
主要介绍了:
(1)词法分析器的组成、作用及工作原理,
(2)介绍词法分析器的构造原理,
(3)状态转换图
(4)正规集、正规表达式及其求法
(5)介绍确定有限自动机、不确定有限自动机等工具;
(6)NFA到DFA的转化、DFA的化简、从正规式构造自动机等内容。

第四讲 自上而下的语法分析
主要介绍了:
(1)语法分析器的功能,
(2)自上而下语法分析方法以及自上而下分析所面临的问题:
(3)左递归及左递归的消除,回溯及回溯的避免;
(4) LL(1)文法的特点及其如何确定一个文法是否是LL(1)文法;
(5)递归下降分析法和预测分析程序,
(6)预测分析器的工作过程,如何构造预测分析表。

第五讲 自下而上的语法分析方法
主要介绍了:
1、算符优先分析法。
(1)对算符优先分析方法,
(2)介绍算符文法、
(3)算符优先文法的定义
(4)讲述算符优先分析的过程
(5)介绍算符优先分析法的核心——算符优先分析表的构造方法。
2、LR分析法
(1)项目、项目分类、项目集
(2)LR(0)项目构造方法
(3)LR(0)项目集的构造
(4)LR(0)识别活前缀的自动机构造
(5)LR(0)分析表的构造
(6)LR(0)文法,及其语句的分析过程
(7)SLR(1)分析表的构造
(8)SLR(1)文法及其语句的分析过程
第六讲 语义分析与中间代码生成
1、 中间代码的类型与各自的定义
2、 常用语句的翻译与中间代码的生成

典型的知识点:
1) 简述文法的作用
2) 文法有哪几部分组成?各部分的作用是什么?
3) 对给定的文法以及某个句子,如何确定该句子能否有给定的文法构造?
4) 对于给定的语言集合,如何构造产生该语言的文法。
5) 由文法给出该文法所产生的语言;
6) 简述词法规则的描述方法
7) 掌握正规式、正规文法、自动机的构造方法及三种工具之间的转换方法
8) 正规式(正规集)NFADFA最小化DFA
9) 如何消除文法中的直接和间接左递归,如何消除回溯?
10) 给定文法,构造该文法的递归下降分析器
11) 给定文法,如何判断该文法是否是LL(1)文法?
12) 给定文法,构造文法的预测分析表;
13) LL(1)文法的分析过程;
14) LR(0)、SLR(1)分析表的构造与分析
15) 对给定的一个算符优先文法,如何构造该文法的算符优先分析表?
16) 算符优先分析法的分析过程;
17) 属性文法的构造
18) 语句翻译与中间代码

猜你喜欢

转载自blog.csdn.net/lewyu521/article/details/80640897