首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于文法的跟随集

关于文法的跟随集
EN

Stack Overflow用户
提问于 2012-11-18 03:58:31
回答 1查看 173关注 0票数 1

这里定义了http://slkpg.byethost7.com/llkparse.html _k-Sets

“文法中符号串的FOLLOWk集合是文法中一组k长的末端符号串,它们可以跟随在文法中可派生的某种句子形式的符号串之后”

首先,我有一个关于链接下面的例子的方程式,那里是语法4.2

代码语言:javascript
复制
     A  -->  a <Baa> a a              
     A  -->  b <Bba> b a
 <Baa>  -->  b
 <Baa>  -->
 <Bba>  -->  b
 <Bba>  -->

代码语言:javascript
复制
FIRST2 ( A ) = { aa, ab, bb }
FIRST2 ( <Baa> ) = { epsilon }
FIRST2 ( <Bba> ) = { epsilon }

FOLLOW2 ( <Baa> ) = { aa }
FOLLOW2 ( <Bba> ) = { ba }

但我在问自己为什么不

代码语言:javascript
复制
FIRST2 ( <Baa> ) = { epsilon, b }
FIRST2 ( <Bba> ) = { epsilon, b }

因为例如也可以从其中导出单个B。

此外,对于语法

代码语言:javascript
复制
S -> X 
X -> aX
X -> aY
Y -> epsilon

我对这套不太确定

代码语言:javascript
复制
FOLLOW2(S)

它是空的,{ epsilon },还是{ a,aa },因为这些字符串是可派生的,或者只是S后面的内容很重要,因为S是开始符号,后面没有任何东西,但是我应该写FOLLOW2(S) = \empyset还是FOLLOW2(S) ={ epsilon }?

EN

回答 1

Stack Overflow用户

发布于 2012-11-20 06:24:47

对于任何k,FOLLOWk(S)都是空的,因为S后面根本不能跟任何东西。我不知道你所说的‘因为这些字符串是可派生的’是什么意思,但是因为它们不能跟在S后面,所以这是无关紧要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13434262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档