编译原理——构造FIRST集和FOLLOW集的方法

1、构造 FIRST 集的算法

定义
编译原理——构造FIRST集和FOLLOW集的方法

例子加深理解理解****

编译原理——构造FIRST集和FOLLOW集的方法

①首先将各个候选式中的终结符填入FIRST集中
1.先看E的候选式首个是T,不是终结符,且现在我们还不知道FIRST(T),所以先看下一个
2.先看E‘的候选式首个是+,是终结符,所以将+填入FIRST(E’)
3.先看T的候选式首个是F,不是终结符,且现在我们还不知道FIRST(F),所以先看下一个
4.先看T’的候选式首个是*,是终结符,所以将*填入FIRST(T’)
5.先看F的候选式首个是(和id,是终结符,所以将(和id填入FIRST(F)

编译原理——构造FIRST集和FOLLOW集的方法

②将各个候选式中有ε的填入FIRST集中
编译原理——构造FIRST集和FOLLOW集的方法
③现在我们看T—>FT’, 可以知道FIRST(F),所以将FIRST(F)-{ε }填入FIRST(T),因为FIRST(F)中没有ε,所以不用看T’的FIRST集。
编译原理——构造FIRST集和FOLLOW集的方法


现在我们看E—>TE’, 可以知道FIRST(T),所以将FIRST(T)-{ε }填入FIRST(E),因为FIRST(F)中没有ε,所以不用看E’的FIRST集。
编译原理——构造FIRST集和FOLLOW集的方法

⑤最后我们就得到了完整的FIRST集

2、构造 FOLLOW 集的算法

定义

编译原理——构造FIRST集和FOLLOW集的方法