编译原理LL(1)文法的辨别

本文介绍了LL(1)文法的辨别标准,包括S文法和Q文法的要求,以及如何判断文法是否为LL(1)。通过示例详细讲解了非终结符的follow集和select集的计算方法,并提供了具体的例子进行验证。
摘要由CSDN通过智能技术生成

首先是蒋宗礼老师的教材上LL(1)文法没有的知识点的补充:

   (1)S文法:产生式无左递归,无回溯,要求较高

                ①文法中每一个产生式的右部均以终结符开始(一定不会出现左递归)

                ②具有相同左部的产生式右部首符互不相同(一定不会出现回溯现象)

 

  (2)Q文法:允许在S文法中出现空产生式

 LL(1)文法:具有相同左部的产生式的可选集必须是互不相交的。

求非终结符的follow集时只需关注产生式右部出现的该非终结符即可

对于产生式A-α的可选集的求法:

         1.若α≠ε且α不可空

             select(A-α)  = first(α)

         2.若α不等于ε但又可空

             select(A-α) = first(α)∪follow(A)

         3.若α=ε

             select(A-α)  = follow(A)

例:1.S->AB             6.B->aD

       2.S->bC             7.C->AD

       3.A->ε                8.C->b

       4.A->b                9.D->aS

       5.B->ε               

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值