📜  门| GATE CS 2013 |第65章

📅  最后修改于: 2021-07-02 14:37:07             🧑  作者: Mango

什么是减少移动可以采取通过自下而上解析器,用于语法没有epsilon-和单元生产最大数量(即,A型- >є和A – >一个)来解析具有n个字符串令牌?
(A) n / 2
(B) n-1
(C) 2n-1
(D) 2 n答案: (B)
说明:在问题中给出的语法不包含ε和单位产生式(即,类型A->є和A-> a)。

为了获得最大数量的减少动作,我们应该确保比每个句子形式仅减少一个终端。由于没有单位生产,因此最后2个令牌仅需移动1个步骤。

因此,要减少n个令牌的输入字符串,请首先使用n-2个减少动作来减少n-2个令牌,然后使用具有的生产来减少最后2个令牌。因此,总共n-2 + 1 = n-1个减少动作。

假设字符串是abcd。 (n = 4)。

我们可以编写接受该字符串的语法,如下所示:

S->aB
B->bC
C->cd 

上面最正确的推导是:

S -> aB ( Reduction 3 )
-> abC ( Reduction 2 )
-> abcd ( Reduction 1 )

我们在这里可以看到没有单位或epsilon的生产。因此,这里减少了3个。

我们可以用其他语法产生更少的约简,这些语法也不会产生单位或epsilon产生,

S->abA
A-> cd

上面的最正确推导为:

S -> abA ( Reduction 2 )
-> abcd ( Reduction 1 )

因此2减少。

但是我们有兴趣知道来自第一种语法的最大减少量。因此,总共减少了3次,即最大(n – 1),其中n = 4。

因此,选项B。
这个问题的测验