文章目录
- 1. LL(1)文法含义
- ①第一个L表示从左到右扫描输入串。
- ②第二个L表示分析过程用最左推导。
- ③ 1 表明只需要向前看一个符号便可以决定选哪个产生式进行推导。类似地,LL(K)文法需要向前看K个符号才可以确定选用哪个产生式。
- 2.消除左公因子
- 3.消除左递归
- 4. select集例子(括号里是整个产生式)
- 5.follow集例子(括号里是产生式左部)
- 6.first集例子(括号里是产生式右部)
- 7.正规式、正规文法、语言对应
- 8.不确定有穷自动机和确定有穷自动机区别
- 9.NFA转成DFA
- 10.正则式、正则文法、状态图转换
- ①正则式与状态图之间转换
- ②正则文法转正则式
- ③正则式转正规文法
- 11.规范推导、规范规约例子
- 12. 总结0、1、2、3型文法
- ①0型文法:产生式左部至少有一个非终结符
- ②1型文法(上下文有关):产生式左边字符数量一定小于等于右边字符数量,不能越推越少(右比左长)
- ③2型文法(上下文无关):左部唯一一个非终结符
- ④3型文法(正规文法):右部的最开始的那一个一定是终结符
- ⑤其中,这四种文法之间是包含关系
- 13.二义性
- 14.多余规则(不可终止、不可达)
- 15.算符优先顺序
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.算符优先顺序
’ * ’ > ’ . ’ > ’ | ’
’ . ’ 和 ’ | ’ 都是左结合
(’ * ‘是星闭包,’ . ‘是连接,’ | '是或)