发布日期:2023-05-22浏览次数:353 来源:福州网站建设
在消除左递归的过程中,我们需要将一个左递归的非终结符A的产生式改写为一系列不含A的产生式。这个过程中,我们需要将形如A -> Aα的产生式改写为A -> β1A | β2A | ... | βkA | γ1 | γ2 | ... | γm,其中β1, β2, ..., βk均为不以A开头的产生式,而γ1, γ2, ..., γm均为不含A的产生式。
对于每个βi,我们需要将其改写为不含A的形式。这时候,我们会引入一个新的非终结符B,然后将βi改写为Bα'的形式,其中α'是βi中A后面的部分。这样,我们就得到了一个新的产生式A -> Bα' A',其中A'表示A的其他产生式。接下来,我们将B的产生式中所有以A开头的产生式用A -> Bα' A'代替,这样就消除了A的左递归。
在这个过程中,β是不断缩小的,因为每次我们都是将βi改写为Bα'的形式,并将B的产生式代入到原来的产生式中,直到βi不再以A开头为止。因此,β最终会缩小到一个不以A开头的产生式,也就是1。因此,在消除左递归的推导过程中,β始终是1。
以上是由福州网站建设的小编为你分享了"编译原理中消去左递归的推导中β应该是幂越来越大,为什么始终是1呢"文章,如果你在这方面有什么问题,随时联系我们