编译原理笔记

写在前面,本文由本人在学习完B站视频:原视频链接后进行整理
本文配合基础笔记食用更佳

第二章

文法

在这里插入图片描述

最左右推导、最左右规约、语法树

在这里插入图片描述
在这里插入图片描述

二义性

在这里插入图片描述

短语、直接短语、句柄

在这里插入图片描述

化简文法

在这里插入图片描述

第三章 词法分析及词法分析程序

状态转换图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

NFA确定化和最小化步骤

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

构造正规语言的DFA

在这里插入图片描述
在这里插入图片描述

第四章 语法分析和语法分析程序

消除左递归性

在这里插入图片描述
对开始符号A开始推导,如果用若干次A→Aα替换句型中的A,最终开始符号可以推导出一个句型Aααα…,如果想推导出一个句子,就一定会使用A→β这个产生式,所以,最终推导出的句子为β或βα…[1,∞)多个阿尔法

既然知道了语言,既可以重写它的文法:

经过分析,文法推导出的句子必然以β开头,后面跟0到多个α。

使用产生式A→βA’产生以β开头的句子,使用A’→αA’|ε产生[0,∞)个α。

所以文法被改写为
A→βA’ A’→αA’|ε

消除回溯,提左公因子

在这里插入图片描述
在这里插入图片描述

求FIRST集和FOLLOW集

在这里插入图片描述
在这里插入图片描述

判断LL(1)文法

在这里插入图片描述
在这里插入图片描述

构造分析表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

预测分析程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第五章 自下而上分析

规约

短语:以非终结符为根子树中所有从左到右的叶子;
直接短语:只有父子关系的树中所有从左到右排列的叶子(树高为2);
句柄:直接短语中最左边父子关系树中所有从左到右排列的叶子(句柄是唯一的)。
链接

算符优先分析

链接
在这里插入图片描述

(1)Firstvt集合

找Firstvt的三条规则:如果要找A的Firstvt,A的候选式中出现:

A->a…,即以终结符开头,该终结符入Firstvt
A->B…,即以非终结符开头,该非终结符的Firstvt入A的Firstvt
A->Ba…,即先以非终结符开头,紧跟终结符,则终结符入Firstvt
(2)Lastvt集合

找Lastvt的三条规则:如果要找A的Lastvt,A的候选式中出现:

A->…a,即以终结符结尾,该终结符入Lastvt
A->…B,即以非终结符结尾,该非终结符的Lastvt入A的Lastvt
A->…aB,即先以非终结符结尾,前面是终结符,则终结符入Lastvt

步骤二:逐条扫描文法规则

(1)因存在 E → (E)的规则,则有=
(2)寻找终结符在左边,非终结符在右边的符号对

+T 则 +< FIRSTVT(T)
*F 则 *< FIRSTVT(F)
(E 则 (< FIRSTVT(E)
(3)寻找非终结符在左边,终结符在右边的符号对

E+ 则 LASTVT(E)>+
T* 则 LASTVT(T)>*
E) 则 LASTVT(E)>)
步骤三:寻找$与开始符号E的关系

(1) = = =

(2) < F I R S T V T ( E ) 且 L A S T V T ( E ) > <FIRSTVT(E)且LASTVT(E)> <FIRSTVT(E)LASTVT(E)>

素短语:至少含有一个终结符,并且,除它之外不含有任何更小的素短语
在这里插入图片描述

算符优先方法的分析过程

在这里插入图片描述
在这里插入图片描述

LR分析法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拓广文法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分析表ACTION和GOTO子表的构造方法

在这里插入图片描述

在这里插入图片描述

SLR分析表的构造 (考试重点内容)

移进——规约冲突怎么处理

如何判断是否为SLR(1)文法?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

例题1

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
与LR分析表进行对比
在这里插入图片描述

例题2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第五章习题课

第一题
在这里插入图片描述
第二题
在这里插入图片描述
第三题


在这里插入图片描述
第四题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第五题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第六章 属性文法和语法制导翻译

笔记链接

综合属性、继承属性

S-属性文法的自下而上计算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

L属性文法和自顶向下翻译

在这里插入图片描述
在这里插入图片描述

翻译模式

在这里插入图片描述

逆波兰表示方式翻译模式
在这里插入图片描述

建立翻译模式

在这里插入图片描述
改写例题:
在这里插入图片描述

盒子文法

在这里插入图片描述
在这里插入图片描述

自顶向下翻译

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一般方法

在这里插入图片描述
S
在这里插入图片描述
在这里插入图片描述

要求掌握程度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第七章

逆波兰表达式

在这里插入图片描述
在这里插入图片描述

重点布尔表达式的翻译

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第九章

在这里插入图片描述

第十一章

在这里插入图片描述
在这里插入图片描述

### 回答1: 编译原理是针对计算机编程语言的研究,目的是将高级语言转化为机器语言并执行。编译原理笔记PDF是一份系统性的学习笔记,包含了编译原理的各个方面。这份学习笔记可以帮助学习者深入了解编译原理,掌握相关的技能。 编译原理笔记PDF通常包含以下几个方面的内容:编译原理的基本概念,编译器的结构与原理,语法分析器的设计与实现,语义分析器的设计与实现,中间代码生成和机器码生成,以及优化技术等。这些内容都是非常重要的编译原理知识点,可以帮助学习者理解编译原理的各个方面,并掌握相关的技术细节。 编译原理笔记PDF还可以提供一些编译原理实战案例,帮助学习者将所学知识应用到实际情况中。实际中有很多编译器与解析器需要我们开发,而这份学习笔记可以准确清晰地指导我们如何设计和开发这些编译器。 总之,编译原理笔记PDF是一份非常有价值的学习资料,可以帮助我们深入了解编译原理,掌握相关的技能,并将这些知识应用到实际情况中。 ### 回答2: 编译原理笔记PDF是一份非常全面的编译原理学习资料,其中详细介绍了编译原理的各个方面,包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。这些内容不仅涵盖了编译原理的基本理论概念和算法,还提供了许多实际的实现案例和实际开发中的工具。 对于想要学习编译原理的同学来说,编译原理笔记PDF是一个非常好的选择,它可以帮助同学们快速地掌握编译原理的相关知识和技能。通过对这份资料的学习,同学们能够从实际问题和实际应用的角度深入理解编译原理的相关概念和算法,同时掌握一些实用的工具和技术,从而更好地应对工作和学习中的编译问题。 总之,编译原理笔记PDF是一份非常有价值的学习资料,它能够帮助同学们更好地学习和理解编译原理的相关概念和算法,同时提供一些实际的工具和技术供同学们参考和应用。建议有相关需求的同学一定要好好利用这份资料,从中学到更多有用的知识和技能。 ### 回答3: 编译原理笔记 pdf是一本关于编译原理的学习资料,其中涵盖了编译原理的基础知识、重要概念、算法和分析等内容。编译原理是计算机科学中非常重要的一门学科,其研究的是如何将一种高级语言转化为低级语言,并使之在计算机中运行。编译原理涵盖的内容很广,包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等等。 编译原理笔记 pdf可以帮助学习者更好地理解和掌握编译原理的知识,尤其是对于那些正在学习编译原理或者准备学习编译原理的人来说,是一本非常有价值的资料。它可以帮助学习者更深入地了解编译原理的基础概念,例如编译器、编译过程、语言处理器等等,同时也可以帮助学习者更准确地理解编译原理中的各种概念和算法,例如文法、自动机、LL(1)分析器、LR分析器等等。 总之,编译原理笔记 pdf是一本非常实用、有价值的学习资料,它对于那些正在学习或者准备学习编译原理的人来说,是一本非常有趣和有用的书籍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值