随笔分类 - 编译原理
编译原理学习笔记
摘要:《编译原理》画 DAG 图与求优化后的 4 元式代码 例题解析 DAG 图(Directed Acylic Graph)无环路有向图 (一)基本块 基本块是指程序中一顺序执行的语句序列,其中只有一个入口语句(第一个语句)和一个出口语句(最后一个语句) 对于一个基本块来说,执行时只能从其入口语句进入,
阅读全文
摘要:《编译原理》控制流语句 if 和 while 语句的翻译 例题解析 将 if 和 while 语句翻译成四元式 注:不同教材会有小差异,使用 _ 或者 — ,如果是 —,请注意区分 — 和 减号 (一)四元式 四元式是普遍采用的一种中间代码形式,由于它便于优化处理,所以目前在很多编译程序中得到广泛应
阅读全文
摘要:《编译原理》LR 分析法与构造 LR(1) 分析表的步骤 例题解析 笔记 直接做题是有一些特定步骤,有技巧。但也必须先了解一些基本概念,本篇会通过例题形式解释概念,会容易理解和记忆,以及解决类似问题。 如果只想做题可以直接下拉至习题部分。 (一)关于状态 对于产生式 A→aBcD,就可以分解为下面几
阅读全文
摘要:《编译原理》求短语,直接短语,句柄,素短语,最左素短语 例题解析 笔记 (一)明确概念: | 名称 | 概念 | | | | | 短语 | 定义: 若 S 为文法 G 的开始符号,αβδ 是该文法的一个句型,即 S ⇒ αβδ,且有 A ⇒+ β,则称 β 是句型 αβδ 相对于非终结符 A 的短语
阅读全文
摘要:《编译原理》求 FIRSTVT 集和 LASTVT 集的步骤 例题解析 算符优先关系表的构造中涉及到求 FIRSTVT 集和 LASTVT 集。 表示及含义: | FIRSTVT(T) | 非终结符T的最左终结符集合 | | | | | LASTVT(T) | 非终结符T的最右终结符集合 | 定义:
阅读全文
摘要:《编译原理》构造 LL(1) 分析表的步骤 例题解析 易错点及扩展: 1、求每个产生式的 SELECT 集 2、注意区分是对谁 FIRST 集 FOLLOW 集 3、开始符号的 FOLLOW 集包含 4、 各集合对对应的对象以及含义 | 集 | 对象 | 含义 | | | | | | FIRST 集
阅读全文
摘要:《编译原理》构造与正规式 (0|1) 01 等价的 DFA 例题解析 解题步骤: NFA 状态转换图 子集法 DFA 的状态转换矩阵 DFA 的状态转图 解: 已给正规式:(0|1)\ 01 画出 NFA 状态转换图如下: 子集法的表格: | I状态\字符 | I0 | I1 | | | | | |
阅读全文
摘要:Java 实现《编译原理》中间代码生成 逆波兰式生成与计算 程序解析 编译原理学习笔记 (一)逆波兰式是什么? 逆波兰式 (Reverse Polish notation,RPN,或逆波兰记法),也叫 后缀表达式 (将运算符写在操作数之后) 一般的表达式又称 中缀表达式 ,这种表达式的二元运算符放在
阅读全文
摘要:Java 实现《编译原理》简单 语法分析功能 LL(1)文法 程序解析 编译原理学习,语法分析程序设计 (一)要求及功能 已知 LL(1) 文法为: 为了方便处理,用:M 代替 E',N 代表 T';并展开相同同一非终结符的产生式;不影响含义,可自行再优化 即有: 根据文法建立 LL(1) 分析表,
阅读全文
摘要:Java 实现《编译原理》简单词法分析功能 程序解析 简易词法分析功能 要求及功能 (1)读取一个 txt 程序文件 (最后的 作为结束标志,不可省去) (2)词法识别分析表 单词类别|单词自身值|内部编码 | | 关键字| int、for、while、do、return、break、continu
阅读全文
摘要:《编译原理》 用例题理解 自底向上的语法分析,FIRSTVT,LASTVT集 上一篇: "编译原理 用例题理解 自顶向下语法分析及 FIRST,FOLLOW,SELECT集,LL(1)文法" 本笔记是对教材《编译原理》 张晶老师版 做学习笔记。 本篇就是第 5 章的笔记。 (一)自底向上的语法分析概
阅读全文
摘要:《编译原理》 用例题理解 自顶向下语法分析及 FIRST,FOLLOW,SELECT集,LL(1)文法 此编译原理确定某高级程序设计语言编译原理,理论基础,学习笔记 本笔记是对教材《编译原理》 张晶老师版 做学习笔记。 最近在学《编译原理》,前三章感觉还可以理解,到了第四章就感觉这难度就上来了。就是
阅读全文