我是靠谱客的博主 多情钢笔,最近开发中收集的这篇文章主要介绍编译原理-First集和Follow集,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

自我体会

编译原理好难,学起来很费劲,刚学了First集和Follow集,发现自己上课听不明白,自己看的时候也看不明白,好多概念和规范看着很费力,不过结合着具体的题目可以更快理解。

First集和Follow集

首先看两种集合的求法:

First集求法

First集合最终是对产生式右部的字符串而言的,由于终结符的First集合就是它自己,所以关键是求出非终结符的First集合,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合。

  1. 直接收取:对形如U–>a…的产生式(其中a是终结符),把a收入到First(U)中。
  2. 反复传送:对形如U–>P…的产生式(其中P是非终结符),应把First§中的全部内容传送到First(U)中。
    也可以看下面的ppt(反正我是看不太懂ppt)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    直接上例子
    在这里插入图片描述
    看完这个例子大家应该都懂了吧!不懂的话就多看几遍(doge)。

Follow集求法

Follow集合是针对非终结符而言的,Follow(U)所表达的是句型中非终结符U所有可能的后随终结符号的集合,特别地,“#”是识别符号的后随符。

  1. 直接收取:产生式右部的每一个形如“…Ua…”的组合,把a直接收入到Follow(U)中。
  2. 直接收取:产生式右部形如“…UP…”(P是非终结符)的组合,把First§除了ε以外的字符直接收入到Follow(U)中。
  3. 反复传送:形如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集所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部