编译原理 —— SELECT集

编译原理 —— SELECT集

编译原理 —— SELECT集

最新推荐文章于 2025-08-08 15:14:52 发布

原创

最新推荐文章于 2025-08-08 15:14:52 发布

·

2.2w 阅读

·

30

·

153

·

CC 4.0 BY-SA版权

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

文章标签:

#编译原理

#可选集

编译原理

专栏收录该内容

37 篇文章

订阅专栏

本文深入探讨了编译原理中的SELECT集概念,解释了产生式A→α的可选集如何定义,并指出它们在LL(1)解析中的作用。通过实例展示了如何计算产生式的SELECT集,例如针对不同产生式计算其SELECT集,如SELECT(1)、SELECT(2)等。同时,文章还强调了同一非终结符的SELECT集互不相交的重要性,以确保解析过程的唯一性。最后,简要提及了计算预测分析表的过程,其中非终结符的SELECT集如何指导构造预测分析表。

SELECT集

产生式 A→αA → αA→α 的可选集是指可以选用该产生式进行推导的输入符号的集合,记为SELECT(A→α)SELECT(A→α)SELECT(A→α)同一非终结符的各个产生式的可选集互不相交(否则依然无法确定使用哪一个产生式)

以LL(1)为例:

计算产生式的SELECT集

对于产生式①,FIRST(TE′)={(,id}(TE')=\{ (,id \}(TE′)={(,id},ε∉ε∉ε∈/​ FIRST(TE′)(TE')(TE′),故 SELECT(1) = FIRST(TE′)={(,id}(TE')=\{ (,id \}(TE′)={(,id}对于产生式②,FIRST(+TE′)={+}(+TE')=\{+ \}(+TE′)={+},ε∉ε∉ε∈/​ FIRST(+TE′)(+TE')(+TE′),故 SELECT(2) = FIRST(+TE′)={+}(+TE')=\{ + \}(+TE′)={+}对于产生式③,FIRST(ε)={ε}(ε)=\{ε \}(ε)={ε},ε∈ε∈ε∈ FIRST(ε)(ε)(ε),故 SELECT(3) = FIRST(ε)−{ε}+(ε)-\{ ε \}+(ε)−{ε}+FOLLOW(E′)(E')(E′)对于产生式④,FIRST(FT′)={(,id}(FT')=\{ (,id \}(FT′)={(,id},ε∉ε∉ε∈/​ FIRST(FT′)(FT')(FT′),故 SELECT(4) = FIRST(FT′)={(,id}(FT')=\{ (,id \}(FT′)={(,id}…

计算预测分析表

由预测分析表可知,同一非终结符的各个产生式的可选集互不相交(如非终结符 T′T'T′ ,一个可选符号对应一个产生式)

相关文章

地球上约有4亿亿吨黄金,人均超550万吨?但为什么挖金矿这么难?
股票在交易时间为什么卖不出?老股民踩过的5个坑,帮你避掉90%的麻烦
2024年九阴真经开服时间表详解与最新动态
365bet365网址

2024年九阴真经开服时间表详解与最新动态

06-28 阅读: 7659
古代一两白银,换算成人民币大概是多少钱?碎银又是什么呢?
光模块正确安装步骤及注意事项【图文】
365bet365网址

光模块正确安装步骤及注意事项【图文】

07-30 阅读: 4705
部落冲突11本满防要多久?
bt365软件下载

部落冲突11本满防要多久?

07-15 阅读: 2560