概述
自我体会
编译原理好难,学起来很费劲,刚学了First集和Follow集,发现自己上课听不明白,自己看的时候也看不明白,好多概念和规范看着很费力,不过结合着具体的题目可以更快理解。
First集和Follow集
首先看两种集合的求法:
First集求法
First集合最终是对产生式右部的字符串而言的,由于终结符的First集合就是它自己,所以关键是求出非终结符的First集合,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合。
- 直接收取:对形如U–>a…的产生式(其中a是终结符),把a收入到First(U)中。
- 反复传送:对形如U–>P…的产生式(其中P是非终结符),应把First§中的全部内容传送到First(U)中。
也可以看下面的ppt(反正我是看不太懂ppt)
直接上例子
看完这个例子大家应该都懂了吧!不懂的话就多看几遍(doge)。
Follow集求法
Follow集合是针对非终结符而言的,Follow(U)所表达的是句型中非终结符U所有可能的后随终结符号的集合,特别地,“#”是识别符号的后随符。
- 直接收取:产生式右部的每一个形如“…Ua…”的组合,把a直接收入到Follow(U)中。
- 直接收取:产生式右部形如“…UP…”(P是非终结符)的组合,把First§除了ε以外的字符直接收入到Follow(U)中。
- 反复传送:形如P–>…U的产生式(其中U是非终结符),应把Follow§中的全部内容传送到Follow(U)中。(或 P–>…UB且First(B)包含ε,则把First(B)除了ε以外的字符直接存入到Follow(U)中,并把Follow§中的全部内容传送到Follow(U)中)
Follow集更加难理解一些,可以多看几遍,多找几个例子大概、也许、可能就能够理解了。
引用:https://www.cnblogs.com/henuliulei/p/10666498.html
最后
以上就是多情钢笔为你收集整理的编译原理-First集和Follow集的全部内容,希望文章能够帮你解决编译原理-First集和Follow集所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复