文章目录
- LL(1)文法的条件
- LL(1)分析法
- 构造FIRST(α)
- 构造FOLLOW(A)
- 习题强化
LL(1)文法的条件
-
文法不含左递归
-
对于文法中每一个非终结符A的各个产生式的候选首符集两两不相交。即若

-
对于文法中的每个非终结符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)]](https://img-blog.csdnimg.cn/70120ca02b014c7aa34a7887678c6848.png)
先求所有非终结符的FIRST集:

第一遍扫描结束,其结果为
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-637yAcrp-1686749128264)(C:\Users\oneself\Pictures\编译原理\微信图片_20230614211316.jpg)]](https://img-blog.csdnimg.cn/89e7a8bafc7d4f7bb754dc7503c282e4.png)
有FIRST集发生变化,继续重新开始扫描

第二遍扫描结束,其结果为
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Swd4fvky-1686749128266)(C:\Users\oneself\Pictures\编译原理\微信图片_20230614211441.jpg)]](https://img-blog.csdnimg.cn/d57e4f14e5a345fe813b6abc11031bff.png)
有FIRST集发生变化,继续重新开始扫描

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

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

求所有非终结符的FOLLOW集:


最终结果:

一直在崩溃的边缘要不要把FOLLOW集写完,写完了但是比较草率,如果没看懂或者有不懂的可以在评论区或者私我,希望大家顺利通过期末考试,编译原理真的为难我们呜呜呜~~~~



















