Considere las siguientes gramáticas. Los nombres que representan terminales se han especificado en letras mayúsculas. ¿Cuál de las siguientes afirmaciones es verdadera? (A) G 1 no tiene contexto pero no es regular y G 2 es regular (B) G 2 no tiene contexto pero no es regular y G 1 es regular (C) Tanto G 1 como G 2 son regulares (D) Ambos G 1 y G 2 no tienen contexto, pero ninguno de ellos es regular Respuesta: (D) Explicación: las gramáticas dadas se pueden reescribir como:
Digamos, while = w, expr =E, stmt = S, other = o
Aquí, podemos escribir una gramática lineal derecha para G 1 como
S -> w(E)S
S -> o
E->ID
Entonces, L(G 1 ) es regular.
Ahora para G 2 también podemos escribir una gramática lineal derecha:
S -> w(E)S
E -> E+E
E -> E*E
S -> o
Pero en esta pregunta ambas gramáticas no son ni lineales a la derecha ni lineales a la izquierda.
Entonces, la opción (D) es correcta.
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