试消除下列文法中存在的左递归 G[A]: A → BC | CZ | W B → Ab | Bc C → Ax | By | Cp
时间: 2023-10-26 08:07:59 浏览: 61
消除左递归的方法是将直接左递归的产生式改写成不含直接左递归的等价形式。对于间接左递归,需要先消除掉直接左递归。下面是消除左递归后的文法:
G[A]:
A → W A'
A' → BC A' | Z A' | ε
B → c B' | b B'
B' → ε | a B'
C → x C' | y C' | p C'
C' → ε | x C' | y C' | p C'
相关问题
试消除下列文法中存在的左递归 G[A]: A → BC | CZ | W B → Ab | Bc C → Ax | By | Cp
消除左递归的步骤如下:
1. 提取左公因子
G[A]: A → CZ | W A'
A' → BC | ε
B → aB' | cB'
B' → ε | aB' | cB'
C → Ax | By | Cp
2. 消除间接左递归
G[A]: A → CZ | W A'
A' → BC | ε
B → aB' | cB'
B' → ε | aB' | cB'
C → Ax | WY | Cp
Y → xY | ε
最终的文法为:
G[A]: A → CZ | W A'
A' → BC | ε
B → aB' | cB'
B' → ε | aB' | cB'
C → Ax | WY | Cp
Y → xY | ε
消除下列文法中存在的左递归 G[A]: A → BC | CZ | W B → Ab | Bc C → Ax | By | Cp
首先,我们需要检测文法中是否存在左递归。如果一个非终结符可以推导出以它自身开头的产生式序列,那么就存在左递归。
对于文法 G[A]: A → BC | CZ | W B → Ab | Bc C → Ax | By | Cp,我们可以看到 B 和 C 都存在左递归。具体来说,B 可以推导出以 B 开头的产生式序列,C 可以推导出以 C 开头的产生式序列。下面分别进行消除。
1. 消除 B 的左递归
将 B → Ab | Bc 改写为 B → cB',B' → ε | Ab'。这样就将原来的左递归消除了。
2. 消除 C 的左递归
将 C → Ax | By | Cp 改写为 C → pC',C' → ε | Ax' | By'。这样也将原来的左递归消除了。
最终的文法如下:
G[A]: A → BC | CZ | W
B → cB' | ε
B' → Ab' | ε
C → pC'
C' → Ax' | By' | ε
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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_lunwen.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)