谁能简单通俗的解释一下follow集合的意思求法?越通俗越好,自带例子求说明!!!

下面举个例子来说明下,假设有如下文法:①E→TE'②E'→+TE'|ε③T→FT'④T'→*FT'|ε⑤F→(E)|id对于每个非终结符号,我们都可以求出其follow集... 下面举个例子来说明下,假设有如下文法:

①E→TE'

②E'→+TE' | ε

③T→FT'

④T'→*FT' | ε

⑤F→(E)| id

对于每个非终结符号,我们都可以求出其follow集:

根据(1),首先将$加入到follow(E)中,即follow(E)={$},由⑤可知,)也应该在follow(E)中,即follow(E)={$,)};

对于E',根据规则(3)以及产生式①,应该将follow(E)加入到follow(E‘)中,即follow(E')={$,)};

对于T,根据规则(2)以及产生式①,应该将first(E')加入到follow(T)中,即follow(T)={+},根据规则(3),由于first(E')包含ε,所以应该将follow(E')加入到follow(T)中,即follow(T)={+,$,)};

对于T',根据规则(3)以及产生式③,应该将follow(T)加入到follow(T‘)中,即follow(T')={+,$,)};

对于F,根据规则(2)以及产生式③,应该将first(T')加入到follow(F)中,即follow(F)={*},根据规则(3),由于first(T')包含ε,所以应该将follow(T')加入到follow(F)中,即follow(F)={*,+,$,)};
展开
 我来答
qr...r@163.com
2017-07-14 · TA获得超过482个赞
知道小有建树答主
回答量:504
采纳率:0%
帮助的人:171万
展开全部

三,FIRST集求法

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

  1. 直接收取:对形如U->a…的产生式(其中a是终结符),把a收入到First(U)中

  2. 2. 反复传送:对形入U->P…的产生式(其中P是非终结符),应把First(P)中的全部内容传送到First(U)中【意思就是只需要把第一个非终结符的First集传过去~这个地方是要注意的地方,也是难点】。

四,FOLLOW集的求法

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


  1. 直接收取:注意产生式右部的每一个形如“…Ua…”的组合,把a直接收入到Follow(U)中。因a是紧跟在U后的终结符。

2.直接收取:对形如“…UP…”(P是非终结符)的组合,把First(P)直接收入到Follow(U)中【在这里,如果First(P)中有空字符,那么就要把左部(假设是S)的Follow(S)送入到Follow(U)中。还有就是Follow集中是没有空字符的】。


3. 直接收取:若S->…U,即以U结尾,则#∈Follow(U)


4.*反复传送:对形如U->…P的产生式(其中P是非终结符),应把Follow(U)中的全部内容传送到Follow(P)中。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式