PUERTA | Puerta TI 2005 | Pregunta 86

Q83 Parte_A

Considere la gramática libre de contexto

mi → mi + mi
mi → (mi * mi)
mi → id

donde E es el símbolo inicial, el conjunto de terminales es {id, (,+,),*} y el conjunto de no terminales es {E}.
¿Cuál de las siguientes strings de terminales tiene más de un árbol de análisis cuando se analiza de acuerdo con la gramática anterior?

(A) id + id + id + id
(B) id + (id* (id * id))
(C) (id* (id * id)) + id
(D) ((id * id + id) * id)

Respuesta: (A)
Explicación:
Según la derivación más a la izquierda:

E -> E + E (usando E -> E + E)
E -> E + E + E (usando E -> E + E)
E -> E + E + E + E (usando E -> E + id)
E -> id + E + E + E (usando E -> id)
E -> id + id + E + E (usando E -> id)
E -> id + id + id + E (usando E -> id)
E -> id + id + id + id

 
Según la derivación más a la derecha:

E -> E +E (usando E -> E + E)
E -> E + E + E (usando E -> E + E)
E -> E + E + E + E (usando E -> E + id)
E -> E + E + E + id (usando E -> id)
E -> E + E + id + id (usando E -> id)
E -> E + id + id + E (usando E -> id)
E -> id + id + id + id

 
Por lo tanto, la opción (A) es correcta.

 
Comente a continuación si encuentra algo incorrecto en la publicación anterior.

Cuestionario de esta pregunta

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 *