导航:首页 > 源码编译 > 编译原理first集合代码

编译原理first集合代码

发布时间:2022-08-24 06:16:57

1. 编译原理first,follow集怎么求

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

2. 关于编译原理first follow 和select

首先要明白这三个集的作用和用途,知道了他们是用来做什么的之后,理解起来就简单一些
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)文法
计算的公式很繁杂,理解了意思之后,看就能看出来。。。。

3. 编译原理 跟随集

先求FIRST集:
first(S)={a,b}
first(A)={b,ε}

再求FOLLOW集:
follow(S)={#}
follow(A)=first(S)Ufollow(A)={a,b}

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

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

5. 编译原理文法FIRST和FOLLOW

FLLOW(X)就是直接出现在非终结符X后面的终结符集合例如FOLLOW(T)={int,real,$}

6. 急求一编译原理算法:要求用C写:设计一个算法,求出任一上下无关文法中所有非终极符的First集合,并输出

这个要写不少啊。我那里有课程设计的代码。不过明天才能给你。分数太少啦

7. 一个编译原理的问题

First(α) 是符号串α的开始符号集合。
也就是说,用推导的方法对α进行推导,一次次地使用产生式,用产生式右部的符号串替换一个非终结符,所有那些可能出现在第一个符号位置的终结符,就构成了开始符号集。
比如,在C语言中,对于符号串“语句”来说,标识符(赋值语句)、if(条件语句)、printf(输出函数)这些单词(终结符)都是它开始符号集合中的元素,而+(加号)、}(右花括号)不可能出现在“语句”的开头,所以不是它的开始符号集合中的元素。

Follow(A)是非终结符A的后跟符号集合。
它是指在所有可能的句型中,一切可能出现在非终结符A后面的一个终结符。
这里要特别注意是在“句型”中。

你可以自己举例,比如分析一下C语言中“表达式”后面可能跟哪些单词,它们就是非终结符“表达式”后跟符号集合中的元素。

你说的这两个集合的交集问题不存在。
因为它们针对的是不同类型的对象(一个是符号串,另一个是某个非终结符)。
实际上,在选择集合问题中,考虑的不是它们的交集,而是一个产生式右部符号串的First集跟这个产生式左端非终结符的Follow集的并集。

考虑交集的,发生在相同左部的不同产生式的选择集合之间。

8. 编译原理

FIRST(begin d ;X end)={begin}
FIRST(d ; X)={d}
FIRST(sY)={s}
FIRST(ε)={ε}

FOLLOW(P)={#}
FOLLOW(X)={end}
FOLLOW(Y)={end}

9. 编译原理:FIRST(A) 集合与FOLLOW(A)集合

1.设计一个演示窗口,包括几本的操作按钮和显示窗口; 2.设计first集合和follow集合生成算法 3.输入文法,按要求显示first集合和follow集合

10. 编译原理关于FIRST,FLLOW的问题。

求FIRST,FLLOW集合的过程是一个递归过程..描述出来很繁琐的,
我打字慢......

编译原理书上有算法的描述的..你自己理解一下,不难的...
不懂的地方最好问身边的同学或老师...当面讲解比较清楚一点.

给你个例子吧:
文法:
E->E+T|T
T->T*F|F
F->(E)|i
按照求文法FIRST,FLLOW的算法,FIRST(E)过程大概是:
1.FIRST(E)=FIRST(E) U FIRST(T) //E,T都是非终结符,所以
继续求First

2.FIRST(T)=FIRST(T) U FIRST(F)//F,T都是非终结符,所以
继续求First

3.FIRST(F)={(,i} //(,i是终结符,得出最后结果.

FIRST(E)={(,i}..

FIRST懂了的话,看FLLOW的算法也就好懂了...

还有什么问题的话...可以发消息给我..

阅读全文

与编译原理first集合代码相关的资料

热点内容
怎么用qq浏览器整体解压文件 浏览:584
肺组织压缩15 浏览:269
安卓手机为什么换电话卡没反应 浏览:795
诸子集成pdf 浏览:338
php注册框代码 浏览:716
手机加密好还是不加好好 浏览:814
别克凯越压缩机泵头多钱 浏览:241
组管理命令 浏览:980
海南高德司机端是什么app 浏览:861
pid命令 浏览:888
一天一图学会python可视化 浏览:309
魔兽编辑文本命令串 浏览:497
android中view绘制 浏览:798
安卓机内存删除怎么恢复 浏览:331
Qt环境的编译软件放到linux 浏览:214
联创打印系统怎么连接服务器 浏览:937
杭州行政命令 浏览:160
如何查找服务器日志 浏览:801
加密的钥匙扣怎么写 浏览:579
文件夹更新不了怎么办 浏览:475