📜  门|门CS 2012 |第 65 题

📅  最后修改于: 2021-09-27 05:51:00             🧑  作者: Mango

考虑与上述问题相同的日期。 E1、E2 和 E3 的相应条目是

CSE_GATE_20123
(一) A
(乙)
(C)
(四)答案: (C)
解释:

由于我们需要找到针对非终端 S 和 B 的条目 E1、E2 和 E3,所以我们将只处理那些在 LHS 上有 S 和 B 的产生式。

这里将解析表表示为 M[ X , Y ],其中 X 表示行(非终结符),Y 表示列(终结符)。

Rule 1: if P --> Q is a production, for each terminal
        't' in FIRST(Q) add P-->Q to M [ P , t ]

Rule 2 : if epsilon is in FIRST(Q), add P --> Q to
         M [ P , f ] for each f in FOLLOW(P). 

对于产生式规则 S–> aAbB,它将被添加到解析表的位置 M[ S , FIRST( aAbB ) ],现在 FIRST(aAbB) = {a},因此将 S–> aAbB 添加到 M[ S , a ] 即 E1。

对于产生式规则 S–> bAaB,它将被添加到解析表的位置 M[ S , FIRST( bAaB ) ],现在 FIRST(bAaB) = {b},因此将 S–> bAaB 添加到 M[ S , b ] 即 E2

对于产生式规则 S–> epsilon ,它将被添加到解析表的 M[ S , FOLLOW(S) ] 位置,现在 FOLLOW(S) = { a , b , $ },因此将 S –> epsilon 添加到M[ S , a ] 和 M[ S , b ] 又分别是 E1 和 E2。

对于产生式规则 B –> S,它将被添加到解析表的 M[ B , FIRST( S ) ] 位置,现在 FIRST(S) 也包含 epsilon,因此将 B –> S 添加到 M[ S , FOLLOW (B) ],FOLLOW(B) 包含{$},即M[ S , $ ] 即E3。

epsilon 对应于空字符串。这个问题的测验