PUERTA | Cuestionario para Sudo GATE 2021 | Pregunta 50

Considere los siguientes dos conjuntos de elementos LR(1) de una gramática LR(1).

X -> c.X, c/d
   X -> .cX, c/d
   X -> .d, c/d
   X -> c.X, $
   X -> .cX, $
   X -> .d, $

¿Cuál de las siguientes afirmaciones relacionadas con la fusión de los dos conjuntos en el analizador LALR correspondiente es FALSO?

Nota: esta pregunta es de selección múltiple (MSQ).
(A) Se pueden fusionar ya que las perspectivas anticipadas son diferentes.
(B) Se puede fusionar pero dará como resultado un conflicto de SR.
(C) Se puede fusionar pero dará como resultado un conflicto de RR.
(D) Se puede fusionar ya que goto en c conducirá a dos conjuntos diferentes.

Respuesta: (B) (C)
Explicación: Los dos conjuntos de elementos LR(1) dados son:


X -> c.X, c/d
X -> .cX, c/d
X -> .d, c/d
and
X -> c.X, $
X -> .cX, $
X -> .d, $ 

Los símbolos/terminales después de la coma son símbolos de anticipación.

Estos son los conjuntos de elementos LR(1) ( LR(1) también se denomina CLR(1) ).

El analizador LALR(1) combina el conjunto de elementos LR(1) que son idénticos con respecto a su primer componente pero diferentes con respecto a su segundo componente.

En una regla de producción de un conjunto de elementos LR(1), ( A -> B , c ), A->B es el primer componente, y el conjunto de símbolos Look-Ahead, que es c aquí, es el segundo componente .

Ahora podemos ver que en los conjuntos dados, el primer componente de la regla de producción correspondiente es idéntico en ambos conjuntos, y solo difieren en el segundo componente (es decir, sus símbolos anticipados), por lo tanto, podemos combinar estos conjuntos para hacer un solo conjunto que sería :


X -> c.X, c/d/$
X -> .cX, c/d/$
X -> .d, c/d/$

Esto se hace para reducir el número total de estados del analizador.

Ahora podemos comprobar las afirmaciones dadas.

Declaración 1: La declaración es verdadera, ya que la fusión se realizó porque los 2.º componentes, es decir, la anticipación, eran diferentes.

Declaración 2: en el conjunto fusionado, no podemos ver ningún conflicto Shift-Reduce (porque ni siquiera es posible la reducción, la reducción sería posible cuando una producción de forma P -> q. está presente)

Declaración 3: en el conjunto fusionado, no podemos ver ningún conflicto Reducir-Reducir (la misma razón que la anterior, ni siquiera es posible la reducción, por lo que no hay posibilidades de conflicto RR)

Declaración 4: esta declaración también es cierta, porque goto se lleva a los símbolos no terminales, no a los símbolos terminales, y c es un símbolo terminal.

Las opciones (B) y (C) son correctas.
Cuestionario de esta pregunta
Comente a continuación si encuentra algo incorrecto en la publicación anterior

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *