编译原理期末速成-LL(1)文法、FIRST集、FOLLOW集

文章详细介绍了LL(1)文法的条件,包括不含左递归和首符集的特性,并阐述了LL(1)分析法的步骤。在实践中,通过示例展示了如何构造非终结符的FIRST集和FOLLOW集,强调了多次扫描文法以确定最终集合的过程。最后,作者提到对FOLLOW集的计算,并鼓励读者提问和学习。
摘要由CSDN通过智能技术生成

LL(1)文法的条件

  1. 文法不含左递归

  2. 对于文法中每一个非终结符A的各个产生式的候选首符集两两不相交。即若在这里插入图片描述

  3. 对于文法中的每个非终结符A,若它存在某个候选首符集包含ε,则在这里插入图片描述

    这里,LL(1)的第一个L表示从左到右扫描输入串,第二个L表示最左推导,1表示分析时每一步只需要向前查看一个符号。

LL(1)分析法

对于一个LL(1)文法,可以对其输入串进行有效的无回溯的自上而下分析,假定要用非终结符A进行匹配,面临的输入符号为a,A的所有产生式为在这里插入图片描述

步骤:
在这里插入图片描述

构造FIRST(α)

在这里插入图片描述

构造FOLLOW(A)

在这里插入图片描述

看完这些理论,有没有怀疑人生?我是谁?我在哪?这些是什么啊?小朋友真的有好多问号???

三分钟抚平一下内心的懵逼与无奈,下面这道题,写的比较啰里啰唆,但是看完应该能抚平你刚刚哪些内心无限的问号,看题吧~~~

习题强化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6s3suoQm-1686749128263)(C:\Users\oneself\Pictures\编译原理\微信图片_20230614210312.jpg)]

先求所有非终结符的FIRST集:

在这里插入图片描述

第一遍扫描结束,其结果为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-637yAcrp-1686749128264)(C:\Users\oneself\Pictures\编译原理\微信图片_20230614211316.jpg)]

有FIRST集发生变化,继续重新开始扫描

在这里插入图片描述

第二遍扫描结束,其结果为

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Swd4fvky-1686749128266)(C:\Users\oneself\Pictures\编译原理\微信图片_20230614211441.jpg)]

有FIRST集发生变化,继续重新开始扫描

在这里插入图片描述

第三遍扫描结束,其结果为

在这里插入图片描述

有FIRST集发生变化,继续重新开始扫描,同上面的步骤和方法,扫描整个文法,发现没有FIRST发生改变,所以结束,最终结果为

在这里插入图片描述

求所有非终结符的FOLLOW集:
在这里插入图片描述
在这里插入图片描述
最终结果:
在这里插入图片描述
一直在崩溃的边缘要不要把FOLLOW集写完,写完了但是比较草率,如果没看懂或者有不懂的可以在评论区或者私我,希望大家顺利通过期末考试,编译原理真的为难我们呜呜呜~~~~

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢靠窗坐.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值