编译原理重点

1. LL(1)文法含义

①第一个L表示从左到右扫描输入串。

②第二个L表示分析过程用最左推导。

③ 1 表明只需要向前看一个符号便可以决定选哪个产生式进行推导。类似地,LL(K)文法需要向前看K个符号才可以确定选用哪个产生式。

在这里插入图片描述

LL(1)文法,具体: https://blog.csdn.net/weixin_44575911/article/details/107118838

2.消除左公因子

在这里插入图片描述

3.消除左递归

在这里插入图片描述
(下面这个例题可以拿来复消除左递归和求select集,挺好的)
在这里插入图片描述

4. select集例子(括号里是整个产生式)

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

5.follow集例子(括号里是产生式左部)

在这里插入图片描述

6.first集例子(括号里是产生式右部)

在这里插入图片描述

7.正规式、正规文法、语言对应

一个正规式可以对应多个正规文法
一个正规文法可以对应多个正规式
一个语言可以对应多个正规文法或正规式
但一个正规式或一个正规文法只能对应一个语言

8.不确定有穷自动机和确定有穷自动机区别

①DFA的开始状态是唯一的,而NFA的开始状态是一个开始状态集
②确定的有穷自动机就是说当一个状态面对一个输入符号的时候,它所转换到的是一个唯一确定的状态;而不确定的有穷自动机是说当一个状态面对一个输入符号的时候,它所转换到的可能不只一个状态,可以是一个状态集合

9.NFA转成DFA

①求空串闭包(把所有初态集合在一起)

②求经过Ia、Ib、Ic…的集合
在这里插入图片描述
(包含了初态的就是初态集合)
(包含了终态的就是终态集合)
在这里插入图片描述

10.正则式、正则文法、状态图转换

①正则式与状态图之间转换

在这里插入图片描述

②正则文法转正则式

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

③正则式转正规文法

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

11.规范推导、规范规约例子

规范推导(最右推导,从右向左推导)、
规范规约(规范推导的逆过程,所以是从左向右规约)
在这里插入图片描述

12. 总结0、1、2、3型文法

在这里插入图片描述

①0型文法:产生式左部至少有一个非终结符

②1型文法(上下文有关):产生式左边字符数量一定小于等于右边字符数量,不能越推越少(右比左长)

③2型文法(上下文无关):左部唯一一个非终结符

④3型文法(正规文法):右部的最开始的那一个一定是终结符

⑤其中,这四种文法之间是包含关系

在这里插入图片描述

4种类型文法,具体: https://blog.csdn.net/weixin_44575911/article/details/107097067

13.二义性

同一个文法推同一个句子的时候,构造出来的语法树都相同就是没有二义性文法,会产生两棵不同的语法树就是二义性文法

14.多余规则(不可终止、不可达)

①不可到达:不在任何产生式的右部出现的非终结符
②不可终止:不可推导出终结符号串的非终结符


例子:(重要)
在这里插入图片描述
其中(2)也是不可终止

15.算符优先顺序

’ * ’ > ’ . ’ > ’ | ’


’ . ’ 和 ’ | ’ 都是左结合

(’ * ‘是星闭包,’ . ‘是连接,’ | '是或)

猜你喜欢

转载自blog.csdn.net/weixin_44575911/article/details/107167363