免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: kallytin
打印 上一主题 下一主题

请教有关follow集 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-10-17 11:35 |只看该作者
回复 9# kallytin
二 first集
    错误在这里  
    program -> stmt_list $$
    对于这样一个产生式,现在要求first(program)。产生式的右端有两个文法符号。一个是非终结符stmt_list,一个是终结符$$。
    首先非终结符stmt_list的first集中的非空串元素应该包含于first(program)。
    其次如果非终结符stmt_list的first集中如果包含空串,那么$$应该也在first(program)中。
    应该分着两种情况。而不是直接的first(program)= first(stmt_list)。
    你的理解其实从本质上讲和这个是一样的,只不过理解的方式不同。按照你的理解方式,求follow集是正确的。但是按照我的理解方式(也就是书上讲的),求解first集用不着follow集。求解first的规则在书上好好理解一下。如果是在不行的话(我文字表达能力有限),你可以给我发个号码(我的电话18600047935 夏扬波),我在方便的时候给你打过去说两句应该就可以了。

论坛徽章:
0
12 [报告]
发表于 2010-10-18 10:14 |只看该作者
回复  kallytin
一 FOLLOW集
    1) 我的理解是无论first集还是follow集,都是为了预测“下一个单词”用 ...
idv935 发表于 2010-10-17 10:42


idv935,

谢谢你的回复,你的联系方式我已记下了,我先消化一下你所说的有关first集的东西,不行的话再电话麻烦你。

另,有一个疑惑困扰了我很久(之前没太注意),就是有关空串的理解。

我的理解:如果我的例子中id对应字母,则id可为 A,a,b,B等,即输入为单个字母。那空串代表的就是输入为空,即没有输入。

那对于输入 

1)A := A + B 空串 空串 $$ (注:第一个为term_tail的空串,第二个为stmt_list的空串)

2)A := A + B $$

哪一个是合法的输入?(我个人认为是第二个。因为肉眼就可以看出,当term_tail为“空”,stmt_list为“空”,则公式就等于 A := A + B $$。但是这是肉眼的判断。那对于真实的输入,是不是1)更合理呢? 归根结底,对于输入而言,空串是什么?)

论坛徽章:
0
13 [报告]
发表于 2010-10-20 21:33 |只看该作者
本帖最后由 kallytin 于 2010-10-20 22:23 编辑

回复 12# kallytin

idv935,

前一个问题先放一放吧(可能我有些钻牛角尖了),还是回到first集和follow集上面来吧。以下是一个LR文法(对应前文的LL文法):

1)program -> stmt_list $$
2)stmt_list -> stmt_list stmt
3)stmt_list -> stmt
4)stmt -> id := expr
5)stmt -> read id
6)stmt -> write expr
7)expr -> term
expr -> expr add_op term
9)term -> factor
10)term -> term mult_op factor
11)factor -> (expr)
12)factor -> id
13)factor -> number
14)add_op -> +
15)add_op -> -
16)mult_op -> *
17)mult_op -> /

====
问题
====
1、LR文法中是否会应用到first集和follow集?假如会应用到,那是按照LL文法来求first集和follow集还是按照LR文法来求first集和follow集?


注:

1、我的理解是:
        first集和follow集都是用于预测分析的,那是应用在LL文法里的,而不是应用在LR文法中。那要说真的会应用到LR文法里,个人感觉是否与“提前预测X个单词”有关?即LR(1)里的 1 有关?

2、之所以提出这个问题,那是因为我在LR文法(上面例子中的LR文法)对应的CFSM(特征有穷自动机)里,发现在该CFSM的状态转换里会涉及到follow集的分析(如:follow(stmt))......

论坛徽章:
0
14 [报告]
发表于 2010-10-21 16:04 |只看该作者
回复 13# kallytin

.......

论坛徽章:
0
15 [报告]
发表于 2010-10-23 14:32 |只看该作者
回复 14# kallytin


有人知道吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP