注:本题纲白话的总结了所有较难的算法,简单易懂的就省略了
1. NFA转DFA
l 第一步,将正规式转为NFA,例如
即*为自循环
l NFA确定化
l 标号得图
2. 消除直接左递归
若 A->Aa1 | Aa2| b1 | b2
则改写为 A ->b1A` | b2A`
A`->a1A` | a2A`| 空
3. 间接消除左递归
转化为直接再写
例如:
4. Follow集求法
若T->FA 若F后可接空,则将followT加入到followF中
若A→αBβ是一个产生式,则把FIRST(β)的非空元素加入followB
5. Select集
A→α,若α不能推导出ε,则SELECT(A→α)=FIRST(α)
如果α能推导出ε则:SELECT(A→α)=(FIRST(α) –{ε})∪FOLLOW(A)