离散数学——FIRST集,FOLLOW集和SELECT集的通俗求法

FIRST集合
  • 添加终结符以及空字

若X∈ε,则ε∈FIRST(X)
若X=a…,若a∈VT,则a∈FIRST(X);

  • 添加非终结符——后加前,first集
    若有表达式α->X1X2…Xn,Xi为非终结符

<1>将FIRST(X1)中的一切非ε的终结符加进FIRST(α);
<2>若ε∈FIRST(X1),则将FIRST(X2)中的一切非ε的终结符加进FIRST(α);
<3>若ε∈FIRST(X1)且ε∈FIRST(X2),则将FIRST(X3)中的一切非ε的终结符加进FIRST(α);
<4>依此类推,若对于一切1≤i≤n,ε∈FIRST(Xi),则将ε加进FIRST(α)。

FOLLOW集合——FOLLOW集没有空字
  • 文法的开始符号,添加“$”符进入FOLLOW(S)中
  • 若B→aAb(b≠ε),则把FIRST(b)-{ε}加入FOLLOW(A)中;
  • 若B→aA 或B→aAb,且b=>*ε 则把FOLLOW(B)加入FOLLOW(A) 中,前加后,FOLLOW,前为子集。b为空字
SELECT集合
  • 对于产生式A—>α。集合select(A—>α)定义如下:
  • 若α不能推出ε,则select(A—>α) = first(α)。不包含空字,就是右部首字母的FIRST集。
  • 若α能推出ε,则select(A—>α)= {first(α)-{ε}}∪ follow(A)。包含空字,就是A的FOLLOW和右部首终结符的FIEST集(去除空字)
LL1文法判别

所有具有相同左部的SELECT集交集是空集,才是LL1文法

离散数学——FIRST集,FOLLOW集和SELECT集的通俗求法相关推荐

  1. FIRST集、FOLLOW集和SELECT集

    *一:什么是终结符和非终结符.* 终结符:通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行推导. 非终结符:不是终结符的都是非终结符. 如:S-->B,则S是非终结符. (一 ...

  2. 怎样求FIRST集、FOLLOW集和SELECT集

    一.终结符和非终结符 终结符:通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行推导. 非终结符:不是终结符的都是非终结符.(非男即女,呵呵) 如:A-->B,则A是非终结符. ...

  3. 编译原理求FIRST集、FOLLOW集和SELECT集

    所有大写字母代表非终结符,小写字母代表终结符,省略号代表未知数目(可能为0)的不确定类型的文法符号. First集合: First集合顾名思义就是求一个文法符号串所可能推导出的符号串的第一个终结符的集 ...

  4. 【小白学PyTorch】 2.浅谈训练集验证集和测试集

    文章目录: 经验误差与过拟合 评估方法 经验误差与过拟合 关键词:错误率(error rate),精度(accuracy). 错误率好理解,就是m个样本中,a个样本分类错误,则错误率E = a/m . ...

  5. 编译原理中的first集,follow集和selec集的小解

    在看编译原理,对这些集合求法不是很明白,看了某个大神的博客,感觉懂了不少,现把自己的理解贴出来大家共享. 所有大写字母代表非终结符,小写字母代表终结符,省略号代表未知数目(可能为0)的不确定类型的文法 ...

  6. 怎么求编译原理中的first集,follow集和selec集

    所有大写字母代表非终结符,小写字母代表终结符,省略号代表未知数目(可能为0)的不确定类型的文法符号. First集合: First集合顾名思义就是求一个文法符号串所可能推导出的符号串的第一个终结符的集 ...

  7. 编译原理之--FIRST集、FOLLOW集 和 SELECT集

    FIRST集.FOLLOW集 和 SELECT集 一.FIRST集 FIRST(A)为A的开始符或者首符号集. 1.定义: 设G=(VT,VN,S,P)是上下文无关文法 ,FIRST(α)={a|α能 ...

  8. FIRST集、FOLLOW集 和 SELECT集

    FIRST集.FOLLOW集 和 SELECT集 一.FIRST集 FIRST(A)为A的开始符或者首符号集. 1.定义: 设G=(V T ,V N ,S,P)是上下文无关文法 ,FIRST(α)={ ...

  9. 编译原理 First集 Follow集 select集 通俗易懂的讲解 + 实例

    #First集Follow集通俗易懂的讲解加实例 ##First 如A->aB | CD 这里面包含了组成First(A)的两种情况: 以终结符开头,当然要把这个终结符(a)放到A的First里 ...

最新文章

  1. mysql查询cpu使用率100%_数据库CPU使用率100% 排查记
  2. IP头中的校验和计算方法介绍
  3. Elasticsearch 的前世今生 【转】
  4. Oracle-Listener log解读
  5. 详解静态路由(入门类)
  6. windows下使用git管理github项目
  7. webpack-dev-server 不是内部或外部命令,也不是可运行的程序 解决方案
  8. 使用JUnit5对DynamoDB应用程序进行单元测试
  9. Ashmem、MemoryFile、Binder的共享内存(jni可用)
  10. 图像去雾算法(一)相关研究及链接
  11. 2016/7/7 设置wamp2.5 mysql密码 重点是mysql版本
  12. PCIE设备与HOST之间的地址转换
  13. 多路复用之epoll模型
  14. 一个完整的软件开发过程到底需要哪些步骤?
  15. linux设置默认mbr,将默认 EC2 CentOS MBR 转换为 GPT 以绕过 2TiB 限制
  16. openGauss数据库开发调试工具指导
  17. arch模型的思路_ARCH模型的应用
  18. ffmpeg+dxva2 +D3D9显示 学习笔记
  19. 倒计时!「一起学」大会线下分享与社群内部直播!
  20. 在线圆型针织内衣机织物CAD系统设计

热门文章

  1. 黄金矿工问题【动态规化】
  2. 星球日报 | A股逾20只区块链概念股涨停
  3. Autodesk 2013 DevCamp China 2013年6月19-21日在京胜利举行
  4. 练习篇:聊天表情框体实现
  5. 仿照新浪微博长微博分页功能
  6. 哪个品牌台灯护眼效果好?护眼台灯性价比高的几款
  7. android 活体检测方案,一种基于人脸识别认证的Android红外双目活体检测的制作方法...
  8. 软件与程序的定义和关系
  9. c语言浮点型自变量能自加自减,C语言中自加++自减--运算的数据类型可以是Float和Double么?...
  10. ERP实施顾问面试技巧(转载)