编译原理 文法First集Follow集求解算法动态演示
时间: 2023-06-18 07:05:46 浏览: 58
对于文法的求解,可以通过以下步骤来进行:
1. 构建文法的产生式集合。
2. 计算每个非终结符的First集合。
3. 计算每个非终结符的Follow集合。
4. 如果Follow集合发生变化,则重复步骤3,直到没有变化。
下面来介绍一下求解First集和Follow集的算法:
**求解First集的算法**
1. 对于终结符,它的First集合就是它本身。
2. 对于一个非终结符A,如果它可以推出一个终结符a,则a属于A的First集合。
3. 对于一个非终结符A,如果它可以推出空串,则空串属于A的First集合。
4. 对于一个非终结符A,如果它可以推出另一个非终结符B,且B的First集合中不包括空串,则B的First集合中的所有元素都属于A的First集合。
5. 对于一个非终结符A,如果它可以推出另一个非终结符B,且B的First集合中包括空串,则B的First集合中除空串以外的所有元素都属于A的First集合。
**求解Follow集的算法**
1. 对于开始符号S,将$表示文法串的结束符号加入S的Follow集合中。
2. 对于一个非终结符A,如果存在一个产生式B->aA$\beta$,则将B的Follow集合中的所有元素(除空串以外)加入A的Follow集合中。
3. 对于一个非终结符A,如果存在一个产生式B->aA$\beta$,且B的Follow集合中包括空串,则将B的Follow集合中除空串以外的所有元素加入A的Follow集合中。
4. 对于一个非终结符A,如果存在一个产生式A->$\alpha$B$\beta$,且B的产生式中不存在空串,则将B的First集合中除空串以外的所有元素加入A的Follow集合中。
5. 对于一个非终结符A,如果存在一个产生式A->$\alpha$B$\beta$,且B的产生式中存在空串,则将B的First集合中除空串以外的所有元素和A的Follow集合中的所有元素(除空串以外)加入A的Follow集合中。
以上就是求解文法的First集和Follow集的算法,可以通过程序动态演示来更好地理解这些算法的过程。
相关推荐
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)