📜  门| GATE CS 2008 |问题10

📅  最后修改于: 2021-06-29 02:33:04             🧑  作者: Mango

以下哪项适当地描述了句柄(适用于LR分析)?
(A)是以句子形式出现的下一个移位或归约运算的位置

(B)非终端设备,其产量将用于下一步
(C)这是一种可以在将来的步骤中用于还原的产品,以及可能发生下一次移位或还原操作的句子形式的位置
(D)它是生产p,将在下一步中用于减少,以及句子形式中可能找到生产右手边的位置答案: (D)
说明:首先让我们了解这里使用的术语。

LR解析-“ L”代表输入字符串的从左到右筛选,“ R”代表反向的最右派生(因为它是自下而上的解析)。

句子形式–假设对于给定的上下文无关文法G,我们有一个开始符号S,然后定义由文法G生成的语言,即L(G),我们使用文法的生成规则从S开始推导。经过一个完整的推导,我们得到了一个字符串w,该字符串仅由末端符号组成,即w属于L(G)。那么我们可以说w是语法G的一个句子。现在,在派生过程中,如果它得到某种形式的q,其中q可能包含一些非终结符,那么我们说q是语法G的句子形式。甚至开始符号S也是语法G的句子形式(因为它也包含非结尾S)。

For Ex :

Grammar is :

S-> aAcBe

A->Ab|b

B->d

Input string : abbcde

Derivation : ( Top-Down, Right Most Derivation)

S->aAcBe
->aAcde
->aAbcde
->abbcde 

这里{abbcde}是语法的句子(因为它仅包含末尾符号),而{S,aAcBe,aAcde,aAbcde}是G的句子形式(因为这些形式在派生过程中包含非末尾)

现在,让我们看一下问题。

问题与LR解析有关,LR解析是一种自下而上的解析。

让我们采用上面相同的语法,因为它是自下而上的解析,我们需要从字符串“ abbcde”开始并尝试使用生产规则来获取S。

: abbcde

->aAbcde ( using A-> b )

->aAcde ( using A-> Ab )

->aAcBe ( using B -> d )

->S ( using S-> aAcBe ) 

以上过程称为还原。

用其LHS替换的生产的RHS称为Handle,因此{b,Ab,d,aAcBe}是句柄,用其LHS替换它的称为Handle-Pruning。

因此,选项D最适合。这个问题的测验