PUERTA | PUERTA-CS-2003 | Pregunta 56

Considere la gramática que se muestra a continuación

S → i E t S S' | a
S' → e S | ε
E → b 

En la tabla de análisis predictivo. M, de esta gramática, las entradas M[S’, e] y M[S’, $] respectivamente son
(A) {S’ → e S} y {S’ → e}
(B) {S’ → e S} y {}
(C) {S’ → ε} y {S’ → ε}
(D) {S’ → e S, S’→ ε} y {S’ → ε}

Respuesta: (D)
Explicación: Aquí representamos la tabla de análisis como M[ X , Y ], donde X representa filas (no terminales) e Y representa columnas (terminales).

Para cada regla de producción distinta A->α, de la gramática, necesitamos aplicar las reglas dadas:

Regla 1 : si A –> α es una producción, para cada terminal ‘a’ en FIRST(α), agregue A–>α a M[ A , a ]

Regla 2 : si ‘ ε ‘ está en PRIMERO (α), agregue A –> α a M [ A , b ] para cada ‘b’ en SEGUIR (A).

Como se han solicitado Entradas correspondientes a No-Terminal S’, solo necesitamos considerar sus producciones para obtener la respuesta.

Para S’ → eS , de acuerdo con la regla 1, esta regla de producción debe colocarse en la entrada M[ S’, FIRST(eS) ], y de la gramática dada, FIRST(eS) ={e}, por lo tanto S’- >eS se coloca en la tabla de análisis en la entrada M[S’, e].

Similarmente,

Para S’->ε , como FIRST(ε) = {ε}, por lo tanto, se debe aplicar la regla 2, por lo tanto, esta regla de producción debe colocarse en la tabla de análisis en la entrada M[S’,FOLLOW(S’)], y SEGUIR(S’) = SEGUIR(S) = { e, $}, por lo que R->ε se coloca en la entrada M[ S’, e ] y M[ S’ , $].

Por lo tanto, la respuesta es la opción D.

http://geeksquiz.com/compiler-design-first-in-syntax-analysis/
http://geeksquiz.com/compiler-design-follow-set-in-syntax-analysis/
Prueba 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 *