
编译原理
文章平均质量分 77
將晨
这个作者很懒,什么都没留下…
展开
-
第四章 语法分析(上)——LL(1)文法
文章目录概述LL(1)文法LL(1)文法的判定消除左递归提取左公因子First集合Follow集合预测分析表的构造表驱动推导实例概述语法分析器是编译器的核心,语法分析器从词法分析器获得一个由词法单元组成的串,并验证这个串可以由源语言的文法生成。语法分析器大体上可以分为三种类型:通用的、自顶向下的和自底向上的。语法分析器的输入总是按照从左向右的方式被扫描,每次扫描一个符号。自顶向下文法典...原创 2018-11-13 11:15:27 · 3415 阅读 · 0 评论 -
第三章 词法分析
文章目录Token和正则表达式有穷自动机状态转换图有穷自动机DFANFA转换RE->NFA分解法Thumpson算法NFA->DFADFA->DFA°Token和正则表达式Token(词法单元)的内容:单词、单词类别(catalog)、内部码/内码(Inner_code)一个单词中有多个不同的实例,才需要内部码来区分单词的构造规则:通过正规文法(见第二章)正则表达...原创 2018-11-14 14:54:56 · 828 阅读 · 0 评论 -
第四章 LR二义文法的处理 [补]
二义性(ambiguous)就是构造文法分析表中出现的移入/归约冲突或归约/归约冲突二义文法的解决通常是通过增加附加条件的方法。用优先级和结合性解决冲突比如以下文法:E -> E + E | E * E | ( E ) | id这个文法存在二义性,因为没有指定*和+的优先级和结合性。比如对于算式id + id * id,当输入乘号时,解析器不知道应该先将栈里的E+E归约,还是先将...原创 2018-11-15 18:35:31 · 2131 阅读 · 0 评论 -
第六章 中间代码生成
文章目录三地址码表达式的翻译表达式中的运算数组元素寻址条件表达式中的短路回填三地址码格式:x = y op z三地址码的右边只能有一个操作符每个三地址码语句包含三个地址:两个是操作数,一个是结果三地址码的类型:最后三行是函数注意:只有if、goto语句,不存在while/for等循环语句。汇编里实现循环通过goto跳转。变址访问:y表示开始地址,i表示偏移量注意:在三地...原创 2018-11-15 16:51:49 · 2370 阅读 · 0 评论 -
第五章 语法制导
文章目录概述语法制导定义概述本章继续2.3节的主题,使用上下文无关文法来引导对语言的翻译。本章讨论的翻译技术在第六章用于类型检查和中间代码生成。我们把一些属性附加到代码语言构造的文法符号上。语法制导定义通过与文法产生式相关的语义规则来描述属性的值。语法制导定义用于将语义规则和产生式关联的两种方法:分布式,语义规则嵌在产生式之中。这种方法被称为Translation schemes例...原创 2018-11-15 15:02:52 · 1760 阅读 · 0 评论 -
第二章 语言和文法——由语言构造文法
概论由语言构造文法的常用方法有4个:对称法逐步求精法(分解法)等价法电路状态转换法还有第五种是混合法,是将上面四种方法综合使用的方法。下面将配合例题依次讲解四种方法。对称法...原创 2018-11-13 21:10:09 · 16736 阅读 · 5 评论 -
第二章 语言和文法
文章目录Alphabet & String乘积Product和闭包Closure:文法推导归约文法范式0-type范式1-type范式2-type范式3-type范式Alphabet & StringAlphabet : 字母表,非空的符号集合Symbol : 符号,字母表中的元素,语言中的最小成分String : 字母表中字符的有限序列,是语言中的基本成分。空字符串(N...原创 2018-11-13 20:57:06 · 1060 阅读 · 0 评论 -
第一章 引论
什么是编译器?[广义]编译器就是一个程序,它可以阅读以某种语言编写的程序,并把它翻译成一个等价的、用另一种语言编写的程序。编译器的重要任务之一就是报告它在翻译过程中发现的源程序中的错误。[狭义]把人类更容易理解和使用的高级语言转化为计算机能“理解”和运行的机器语言(或者较为接近的汇编语言)。编译器的结构(1.2)编译器由两个部分组成:分析(analysis)和综合(synthesis)...原创 2018-11-13 19:24:51 · 532 阅读 · 0 评论 -
第四章 语法分析(下)——LR文法
在LR(k)文法中,L指对输入进行从左到右的扫描,R表示反向构造一个最右推导序列。k表示在做出语法分析决定时向前看k个输入符号。常用的LR(k)文法包括:- SLR:简单LR- LR(1):规范LR- LALR:向前看LR(Look ahead)原创 2018-11-13 11:30:30 · 10397 阅读 · 1 评论 -
编译原理笔记 导言和目录
本学期编译原理的学习也差不多快结束了,在学习过程中也做了不少笔记。为了准备即将来到的考试,我想把学习笔记再整理一遍。借此机会创建了这个专栏——为了满足创建专栏之前必须发布15篇以上的原创文章,我还特地去翻了LeetCode把陈年老题拿出来拾掇成博客(对我这种懒病来说真是太惨了)编译原理学习教材为龙书第二版,学习重点包括:语言构造文法词法分析(NFA/DFA/DFA°/Regular Ex...原创 2018-11-12 18:49:39 · 1182 阅读 · 1 评论