![](https://img-blog.csdnimg.cn/20200817100236924.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
编译原理
文章平均质量分 90
有关编译原理课程的笔记、课设博客
Gene_INNOCENT
Wait for the sunrise!
展开
-
编译原理完整学习笔记(八):目标代码生成
文章目录目标代码生成一、目标代码生成概述1.1 任务1.2 输入1.3 输出二、抽象计算机模型三、代码生成3.1 代码生成原则3.2 待用信息和活跃信息3.2.1 概念解释3.2.2 符号表示3.3 变量地址、寄存器描述3.3.1 目的3.3.2 概念3.4 代码生成算法3.4.1 算法描述3.4.2 算法举例四、DAG的目标代码目标代码生成一、目标代码生成概述1.1 任务将分析、翻译、优化后的中间代码变换成目标代码1.2 输入源程序的中间表示,以及符号表中的信息类型检查均已完成1.3原创 2020-08-19 10:37:42 · 4938 阅读 · 1 评论 -
编译原理完整学习笔记(七):优化代码
文章目录优化代码一、优化概述1.1 基本概念1.2 优化的种类1.3 数据流方程二、局部优化2.1 基本块2.1.1 概述2.1.2 划分基本块2.1.3 基本块划分举例2.2 流图2.3 基本块的 DAG 表示2.3.1 DAG 扩充2.3.2 四元式的 DAG 表示2.4 基本块的优化算法2.4.1 优化算法概述2.4.2 示例2.4.3 构造基本块的 DAG 算法二、循环优化2.1 循环不变运算2.2 代码外提2.3 强度消弱2.4 删除归纳变量2.4.1 归纳变量2.4.2 具体算法优化代码一、原创 2020-08-19 10:31:04 · 1958 阅读 · 0 评论 -
编译原理完整学习笔记(六):语义分析和中间代码生成
文章目录语义分析和中间代码生成一、中间语言1.1 概述1.2 后缀式1.2.1 定义1.2.2 计算方式1.2.3 表达式 => 后缀式1.3 图表示法1.3.1 有向无环图1.3.2 举例1.4 三地址代码1.4.1 概述1.4.2 四元式1.4.3 三元式1.4.4 间接三元式二、赋值语句的翻译2.1 赋值语句的属性文法2.1.1 概述2.1.2 语义规则2.2 赋值语句的翻译模式三、数组元素引用的翻译3.1 数组元素地址计算3.1.1 计算公式3.1.2 产生式 / 属性定义3.2 带数组元素引原创 2020-08-19 10:18:29 · 1534 阅读 · 1 评论 -
编译原理完整学习笔记(五):属性文法和语法制导翻译
文章目录属性文法和语法制导翻译一、概述1.1 综合属性1.2 继承属性1.3 语义规则二、带注释的语法树2.1 S-属性文法2.2 L-属性文法三、属性计算3.1 概述3.2 语法制导翻译法3.3 依赖图3.3.1 构建算法3.3.2 依赖图举例3.3.3 属性的计算次序3.4 树遍历3.4.1 树遍历算法3.4.2 树遍历举例3.5 一遍扫描3.5.1 抽象语法树3.5.2 建立抽象语法树3.5.3 一遍扫描举例属性文法和语法制导翻译一、概述属性文法,也称为属性翻译文法,以 “上下文无关文法” 为基原创 2020-08-17 11:20:47 · 3203 阅读 · 2 评论 -
编译原理完整学习笔记(四):语法分析
文章目录语法分析一、自上而下分析1.1 左递归 & 回溯1.1.1 面临的问题1.1.2 消除左递归1.1.3 消除回溯1.2 LL(1) 文法1.2.1 LL(1)定义1.2.2 FIRST1.2.3 FOLLOW1.2.4 习题练习1.3 递归下降分析器1.3.1 概述1.3.2 程序示例1.4 扩充的巴克斯范式1.4.1 定义1.4.2 示例1.5 预测分析程序1.5.1 预测分析程序组成1.5.2 构造预测分析表1.5.3 预测分析示例1.5.4 二义性文法二、自下而上分析2.1 基础概念2原创 2020-08-17 11:01:07 · 2104 阅读 · 0 评论 -
编译原理完整学习笔记(三):词法分析
文章目录词法分析一、状态转换图1.1 词法分析器概述1.1.1 功能1.1.2 输出1.1.3 词法分析器结构1.1.4 编译器中地位1.2 状态转换图1.2.1 基础定义1.2.2 设计示例1.2.3 状态图一般化代码二、词法规则的形式化2.1 正规式与正规集2.1.1 定义2.1.2 正规式的等价性2.1.3 正规式的性质2.2 DFA2.2.1 定义2.2.2 举例2.2.3 DFA 程序实现2.3 NFA2.3.1 定义2.3.2 DFA 与 NFA三、有限自动机的等价性3.1 NFA 改造3.2原创 2020-08-17 10:31:19 · 1038 阅读 · 1 评论 -
编译原理完整学习笔记(二):高级程序设计语言
文章目录高级程序设计语言一、语言概述1.1 语法 v.s. 语义1.2 作用域1.3 标识符 v.s. 名字1.4 左值与右值二、语法描述2.1 基本概念2.2 上下文无关文法2.3 推导2.3.1 基本概念2.3.2 语法树2.3.3 二义性2.4 形式语言2.4.1 概述2.4.2 文法对比高级程序设计语言一、语言概述1.1 语法 v.s. 语义程序本质上是一定字符集上的字符串语法:一组规则,用它可以形成和产生一个合式(well-formed)的程序定义了程序的形式结构定义语法单原创 2020-08-17 10:12:29 · 675 阅读 · 0 评论 -
编译原理完整学习笔记(一):引论
文章目录引论一、编译与解释1.1 编译程序1.2 解释程序二、计算思维2.1 概述2.2 编译中的计算思维2.2.1 抽象2.2.2 自动化2.2.3 分解2.2.4 递归2.2.5 权衡三、编译过程3.1 词法分析3.2 语法分析3.3 中间代码生成3.4 优化3.5 目标代码产生三、编译程序结构3.1 总框图3.1.1 出错处理3.1.2 遍(pass)3.2 前端后端四、编译程序生成4.1 概述4.2 编译程序生成与移植引论一、编译与解释1.1 编译程序翻译程序(Translator)把某原创 2020-08-17 09:58:51 · 740 阅读 · 0 评论