消除左递归:A→bAc丨d 的详细步骤

左递归是指一个产生式左部符号可以递归地引用自身。例如,产生式 A→bAc 就存在左递归,因为 A 在产生式的左部和右部都出现了。

为了消除左递归,可以采用以下步骤:

  1. 将产生式拆分成左递归和非左递归两部分,即将 A→bAc 和 A→d 分开。

  2. 对于左递归部分 A→bAc,可以进行如下转换:

    A→dA' A'→bA'c | ε

    这样就将左递归消除了。

  3. 将原来的产生式和新的产生式合并即可得到完整的文法。

    A→dA' | d A'→bA'c | ε

通过以上步骤,我们成功地将左递归产生式 A→bAc丨d 消除了,并得到了一个等价的非左递归文法。

注意: ε 代表空字符串。

消除左递归:A→bAc丨d 的详细步骤

原文地址: https://www.cveoy.top/t/topic/oYmv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录