1、最左最右推导
每一步推导都是对句型中的最右非终结符用相应的产生式的右部进行替换,这样的推导称为最右推导
每一步推导都是对句型中的最左非终结符用相应的产生式的右部进行替换,这样的推导称为最左推导
2、归约
最右推导称为规范推导,最左归约称为规范归约
3、代码优化
对代码进行等价变换,使得变化后的代码具有更高的时间效率和空间效率。代码优化的目的是提高目标程序的质量。占用的存储空间更少、运行的时间更短!
4、DFA
5、NFA
6、句型、句子 、句柄、
由文法的开始符S出发,经过0步或者有限步推导出来的符号串
由文法的开始符S出发,经过1步或者有限步推导出来的符号串且该符号串全部由终结符组成
7、寄存器
CPU内部的存储单元,用来存放数据和指令
7.1内存
与CPU直接交换信息的存储器,他存放指令、数据及计算结果
7.1指令
CPU基本硬件电路的二进制编码
7.1硬件
组成计算机的逻辑、功能部件
8、二义性
9、堆
10、产生式
11、文法
1、给出文法、句子,写出最左最右
2、给出正规表达式,写出五个单词
3、给出自动机,写出状态矩阵和状态图
4、给表达式,写出逆波兰式
5、给C程序,写出五类单词
1、编译过程
编译系统对源程序一次进行此法分析、语法分析、中间代码生成、代码优化、目标代码生成,最后得到机器码目标代码。
词法分析:将源程序中的字符流转化为记号流,有误则终止编译
语法分析:在词法分析的基础上将一些语句组合起来进行检查如if else for 循环结构的细节,若格式不正确则会终止编译
中间代码生成:是编译程序的结构在逻辑上更简洁,提高编译程序的可移植性
代码优化:对中间代码进行优化,或使程序变得更简介,或使程序体积变得更小
目标代码生成:将优化后的中间代码译为机器码
(语义分析):对程序进行静态语义检查如变量是否定义、变量类型是否正确使用等等。