什么是减少移动可以采取通过自下而上解析器,用于语法没有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。
这个问题的测验