对这个求FIRST集
求FIRST集其实看定义真的是可以让人晕死,这里有几个规则(我查看了很多的资料文档以后的结果):
1:看推导是否有|,如果有,那么两端的第一个都要看
2:对于第一个元素,如果是终结符那么就直接有那个终结符在FIRST(X)中,如果不是终结符那么看推导式是否包含空字符串,如果包含,那么这个符号的下一个也要看。
这里就拿FIRST(B)做一个讲解:
1:B一开始的第一个有e这个终结符所以就算是一个元素
2:第二组里面有一个S,我们跟入S发现S有空字符串,同时也包含了a这个终结符
3:由于S包含了空字符串所以后面的A也要看,那么A呢?A包含了它自己,他自己有空字符串,所以这时我们又要看S
4:有上面的分析我们其实是知道的FIRST(S)={a,空字符串符}所以这个时候的A其实有了a和空字符串了,由于S又有空字符串,所以d也要看,d就是一个终结符,所以此时我们的FIRST(A)={a,d,空字符串符}
5:回到我们的B的分析中,由于A有空字符串所以h也要看,h就是一个终结符,所以现在的FIRST(B)={e,a,d,h}
6:再看最后一个的第一个是要给终结符——空字符串所以这个时候的FIRST(B)={e,a,d,h,空字符串符}
最后给上答案:

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



