文法G[Z]:Z->Bb A->Ae A->Ab A->e B->a 则FOLLOW(A)为
时间: 2023-08-07 13:47:09 浏览: 54
FOLLOW(A)= {b, $},其中$表示输入串的结束符。
推导过程如下:
首先,根据文法的定义,$是FOLLOW(Z)$。
接下来,考虑每个产生式右侧的符号对FOLLOW集合的贡献:
1. 对于$A \rightarrow Ae$,有$FOLLOW(A) \subseteq FOLLOW(A)$,因此我们不需要考虑这种情况。
2. 对于$A \rightarrow Ab$,有$FIRST(b) = \{b\}$,所以$b \in FOLLOW(A)$。
3. 对于$A \rightarrow e$,有$FOLLOW(A) \subseteq FOLLOW(Z)$,所以我们需要把$FOLLOW(Z)$加入到$FOLLOW(A)$中。
因此,我们得到了$FOLLOW(A) = \{b, $\}。
相关问题
文法G[Z]:Z->Bb A->Ae A->e B->AZ B->a 则FOLLOW(A)为( )
首先,FOLLOW(A)表示的是在文法G中,所有可能跟随在非终结符A后面的终结符集合。
根据文法G的规则,我们可以得到:
1. A只有在B的后面才会出现,所以FOLLOW(A)中应该包含FOLLOW(B)。
2. A只有在自身的一个产生式A->Ae中出现,所以FOLLOW(A)中应该包含FOLLOW(A)。
根据以上两点,我们可以列出FOLLOW(A)的初始集合:{b, e}。
接下来,我们需要考虑对于文法G中每一个产生式的右部,哪些终结符可以跟随在它们的后面。
对于产生式B->AZ,我们可以得到FOLLOW(Z)中的终结符可以跟随在B的后面。因为Z只有在B的后面出现,所以FOLLOW(Z)中的终结符也可以跟随在B的后面。
根据文法G,我们可以得到FOLLOW(Z)={b},所以FOLLOW(B)中应该包含{b}。
综上所述,FOLLOW(A)的最终值应该为{b, e}。
文法: S -> aAB A -> bB | c B -> d 的follow集
首先,求出A的FOLLOW集:
1. A -> bB => FOLLOW(A) = {b}
2. A -> c => FOLLOW(A) = Follow(A) U {follow(c)} = {d}
然后,求出B的FOLLOW集:
1. S -> aAB => FOLLOW(B) = FOLLOW(A) = {b, d}
2. A -> bB => FOLLOW(B) = FOLLOW(A) = {b, d}
3. A -> c => FOLLOW(B) = FOLLOW(A) = {b, d}
4. B -> d => FOLLOW(B) = Follow(B) U {follow(S)} = {b, d}
因此,文法的FOLLOW集为:
FOLLOW(S) = {}
FOLLOW(A) = {b, d}
FOLLOW(B) = {b, d}
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)