词法分析
词法分析器的自动构造过程:
正规式,正规文法->NFA->DFA->最小DFA
将NFA转换为等价的DFA所用的算法为子集法
在有穷自动机中,两个状态s和t等价的条件是以下两个:
1.一致性条件——同时为可接收状态或为不可接受状态
2.蔓延性条件——对于所有的输入符号,两个状态必须转换到等价的状态里
确定化
以矩阵形式获得,由开始符S开始输入
最小化(DFA->DFA(min))
分为两个集合,一个终态,一个非终态
循环分解集合
语法分析
自顶向下语法分析方法
first集
没有空值的直接就是,有空值的一直走走到不是空值的地方
follow集
select集
预测分析表的构造算法是: ⑴对每个终结符a∈SELECT(A→α),把 A→α填入M[A,a]中; ⑵把所有无定义的M[A,a]均填上“出错标志”。
利用可选集判断文法是否为LL(1)时,展开文法,算出
可开始式的可选集,若交集不为空,则不是。
或者通过预测分析表无多重入口判断。
自底向上语法分析方法
自底向上语法分析方法:
1.优先分析法
2.LR分析法
在自底向上语法分析的过程中,最关键的问题就是如何识别句柄。
规范推导:即最右推导。
规范归约