编译原理总结
编译原理总结
基本概念 ◆编译器、解释器 ◆编译过程、各过程的功能 ◆编译器在程序执行过程中的作用 ◆编译器的实现途径
基本概念 编译器 、解释器 编译过程 、各过程的功能 编译器在程序执行过程中的作用 编译器的实现途径
词法分析 ◆正则表达式 有限自动机: DEA NFA ◆正则表达式、DFA、NFA之间的关系 DFA的化简 ◆DFA的实现
词法分析 正则表达式 有限自动机:DFA NFA 正则表达式、DFA、NFA之间的关系、 DFA的化简 DFA的实现
语法分析 基本概念: ◆文法、文法分类 ◆上下文无关文法 ◆语法分析树、二义性、推导、归约、短语 简单短语、句柄。 ◆文法分析: First、 Follow、 Predict 语法分析方法: ◆自顶向下 ◆自底向上
语法分析 基本概念: 文法、文法分类 上下文无关文法 语法分析树、二义性、推导、归约、短语 简单短语、句柄。 文法分析:First、Follow、Predict 语法分析方法: 自顶向下 自底向上
自顶向下分析方法 思想 关键问题 ◆两种分析方法:[条件、分析过程 递归下降方法 LL(1)分析方法 等价变换:消除左递归、左公共前缀
自顶向下分析方法 思想 关键问题 两种分析方法:[条件、分析过程] 递归下降方法 LL(1)分析方法 等价变换:消除左递归、左公共前缀
自底向上分析方法 思想 关键问题 分析方法: LR(0)、SLR(1)、LR(1)、LALR(1)、 简单优先分析方法 比较: 状态数、展望符、分析能力、应用
自底向上分析方法 思想 关键问题 分析方法: LR(0)、 SLR(1)、 LR(1)、LALR(1)、 简单优先分析方法 比较: 状态数、展望符、分析能力、应用
语义分析 ◆符号表: 标识符、类型、值的表示: 局部化处理方法: ◆类型分析: ◆程序的语义分析 声明部分 表达式 语句部分
语义分析 符号表: 标识符、类型、值的表示: 局部化处理方法: 类型分析: 程序的语义分析: 声明部分 表达式 语句部分
中间代码的生成 动作文法 ◆动作文法的实现 中间代码生成 表达式的中间代码 复杂变量的中间代码 语句的中间代码 过函声明的中间代码
中间代码的生成 动作文法 动作文法的实现 中间代码生成: 表达式的中间代码 复杂变量的中间代码 语句的中间代码 过函声明的中间代码
中间代码优化 优化的目标、要求、对象 ◆基本块、程序流程图、基本块的划分 ◆优化方法:全局、局部 ◆常表达式优化:(合并常数项) 局部优化、基于常量定值的全局优化 ◆公共表达式(局部)优化:(消除重复操作) 基于相似性的优化、基于值编码的优化 ◆循环不变表达式外提
中间代码优化 优化的目标、要求、对象 基本块、程序流程图、基本块的划分 优化方法:全局、局部 常表达式优化:(合并常数项) 局部优化、基于常量定值的全局优化 公共表达式(局部)优化:(消除重复操作) 基于相似性的优化、基于值编码的优化 循环不变表达式外提
运行时的存储空间管理 ◆存储结构、各区的存储分配的特点、分配对 象和方法 ◆AR的结构、内容 ◆调用链、动态链、声明链、变量访问环境的 含义及相互间的关系。 ◆变量访问环境的实现方法: 静态链、局部/全局 Di sp lay表、寄存器方法
运行时的存储空间管理 存储结构、各区的存储分配的特点、分配对 象和方法 AR的结构、内容 调用链、动态链、声明链、变量访问环境的 含义及相互间的关系。 变量访问环境的实现方法: 静态链、局部/全局Display表、寄存器方法