关于编译原理first follow 和select

2022-06-23 00:16

2个回答
首先要明白这三个集的作用和用途,知道了他们是用来做什么的之后,理解起来就简单一些
First(A)集的作用是标示在替换非终结符A的时候,替换后的文法的首字母集合,语法分析程序根据这个来判断给定的语言是否是合法的,是符合规则的。
Follow(A)的作用是标示那些可以出现在A之后的字符,语法分析程序根据这个,在A可以被替换为e(空)的时候来进行判断,看当前的文法是否是合法的。
这里简单说明下,比如A->b,A->e(空) 当给定的语言是 bXXXXX的时候,根据第一句文法就可以判定句子合法,但是如果给的语言是cXXXXX的时候,因为A->可以替换为空,这时候就需要一句A的follow集来进行判断,若A的follow集里面含有c 则语言是合法的
Select集的作用是将first集和follow集进行合并,如果两个文法的左端都是A,若他们的select集交集为空,表明他们是两个无关的,不会产生不确定性的文法,反之,则表明文法不是LL(1)文法
计算的公式很繁杂,理解了意思之后,看就能看出来。。。。
题目没给错么?
相关问答
编译原理first,follow集怎么求
1个回答2023-05-01 07:45
三,FIRST集求法 First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到...
全文
编译原理中follow 集 select 集
1个回答2022-11-26 08:34
不能, A->aBc 将first c 加入follow(B)中,若c为空,把follow(A)加入follow(B)中
编译原理文法FIRST和FOLLOW
1个回答2022-09-10 17:54
FLLOW(X)就是直接出现在非终结符X后面的终结符集合例如FOLLOW(T)={int,real,$}
怎样求First集和Follow集?
1个回答2022-07-04 22:16
First集:是首字母所构成的集合。 Follow集:是这个字母后紧接着的字母集合,如果这个字母包含空,则Follow集包含First集的全部。
怎么求编译原理中的first集,follow集和selec集
1个回答2022-11-29 07:18
由于终结符的first集合就是它自己,所以求出非终结符的first集合后,就可很直观地得到每个字符串的first集合三,first集求法 first集合最终是对产生式右部的字符串而言的,但其关键是求出...
全文
怎么求编译原理中的first集,follow集和selec集
1个回答2023-05-08 13:23
如果题目是单纯求first、follow集合,不需要消除左递归。但是,如果求first、follow集合是为了判断文法是否为LL(1)文法的话,可以直接得出否定的结论(因为含有左递归的文法绝对不是LL...
全文
求四则运算文法的FIRST集、FOLLOW集!
1个回答2022-06-27 19:56
first(E)={ ( i } first(T)={+-*/ε} follow(E)={)} v follow(T)={ ) # } 分析表:
编译原理的follow集怎么求
2个回答2022-12-09 01:05
希望你最好能给几个例子了,看所有右部产生式有与你要求的非终结符的式子,与你要求的非终结符后面的那个如果是终结符的话那么它就应该属于你要求的FLLOW集了,如果是非终结符的话,求那个非终结符的FIRST...
全文
select键是哪个啊?
1个回答2022-09-20 21:45
select键是一个口袋怪兽中金手指最常用的键,曾经有许多口袋玩家在键盘上找不到select键,其实select键就是Ctrl键,假如你玩口袋按Ctrl键没反应,你可以在模拟器里设置.
select是哪个键
1个回答2022-09-13 08:27
打开游戏→最上面一行左数第三个是“Opinions”→第一个“Emulation Setup”→弹出的框中最上面点击“Controls”→右边的一列“Keyboard”向下有“Select”,对应着的...
全文
热门问答