PUERTA | PUERTA-CS-2006 | Pregunta 58

Considere la siguiente gramática:

S → FR
R → S | ε
F → id

En la tabla del analizador predictivo, M, de la gramática, las entradas M[S, id] y M[R, $] respectivamente.
(A) {S → FR} y {R → ε }
(B) {S → FR} y { }
(C) {S → FR} y {R → *S}
(D) {F → id} y { R → ε}

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

Estas son las reglas para llenar la tabla de análisis.

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 pedido entradas correspondientes a S y R no terminales, solo necesitamos considerar sus producciones para obtener la respuesta.

Para S → FR , de acuerdo con la regla 1, esta regla de producción debe colocarse en la entrada M[ S, FIRST(FR) ], y de la gramática dada, FIRST(FR) ={id}, M[S , id ] .

Similarmente,

Para R → S, esta regla de producción debe colocarse en la entrada M[ R, PRIMERO(S) ], y como PRIMERO(S) = PRIMERO(F) = {id}, por lo tanto, R->S se coloca en la entrada M[ Librar]

y

, 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[R,FOLLOW(R)], y FOLLOW(R) = FOLLOW( S) = {$}, M[ R, $].

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

http://geeksquiz.com/compiler-design-first-in-syntax-analysis/
http://geeksquiz.com/compiler-design-follow-set-in-syntax-analysis/

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 *