第一章
1.术语定义
编译程序:将高级语言编译为汇编语言的程序
源程序:源语言编写的程序
目标程序:目标语言书写的程序
编译程序的前端:主要依赖于源语言,包括是词法分析,语法分析,语义分析,中间代码生成
后端:依赖目标机而不是源语言,包括目标代码生成
遍:对源程序或者中间语言从头到尾扫描并完成任务
2.编译程序的组成
词法分析,语法分析,语义分析,中间代码生成,中间代码优化,目标代码生成,表格管理和错误处理
3.翻译程序,编译程序,解释程序
翻译程序是将一种语言编写的程序转换为另一种语言编写的程序
编译程序将高级语言编写的程序转换为低级语言编写的程序
解释程序解释执行高级语言的程序
4.哪里出错
(1)语法 (2)语义 (3)语法 (4)词法
5.编译程序的技术
自编译,交叉编译,自展,移植
第二章
PL/0语言允许嵌套定义和递归调用,编译程序如何解决储存问题
栈式动态储存管理
第三章
1.写元素
L(G[S])={abc}
2.G[N]语言是什么
允许以0开头的非负整数
3.构造文法
G[S]: S->S+D|S-D|D D->0|1|2|3|4|5|6|7|8|9
4.写元素
5.写文法
6.写推导和语法树
7.证明文法二义性
8.判断文法二义性
9.生成语法树
10.找短语,句柄
11.最左推导,最右推导
12.写文法
13.写文法
18.概念
字母表:非空有穷结合
串:符号的有穷序列
字:字母表中的元素
语言:句子的集合
语法:构成语言句子的各个记号的组合
语义:各种表示方法表示各个记号
第四章
1.构造DFA
(1)
(2)
(3)
(4)
2.构造DFA
2.最小DFA
3.最小DFA
4.写正规式
第五章
1.最左推导,消除回溯,LL(1)
2.构造LL(1)
3.消除左递归
第六章
1.算符归约
2.算符归约和规范归约
区别:算符优先文法在归约过程中只考虑终结符之间的优先关系从而确定可归约串,而与 非终结符无关,只需知道把当前可归约串归约为某一个非终结符,不必知道该非终结符的名 字是什么,因此去掉了单非终结符的归约。 规范归约的可归约串是句柄,并且必须准确写出可归约串归约为哪个非终结符。