Análisis y páginas desplegables automáticas

El análisis se usa para obtener una cadena usando reglas gramaticales. Se utiliza para comprobar si una cadena es válida. El compilador se utiliza para comprobar la corrección sintáctica de una cadena. El analizador toma datos y crea un árbol de análisis.

El analizador puede ser de dos tipos:

  • Analizador en sentido descendente – El análisis sintáctico descendente comienza en la parte superior con el carácter de inicio y genera la cadena utilizando el árbol de análisis sintáctico.

  • Analizador de abajo hacia arriba – El análisis de abajo hacia arriba comienza en la parte inferior de la línea y sube hasta el carácter de inicio usando un árbol de análisis.

Diseño de analizador de arriba hacia abajo

Para analizar de arriba a abajo, el PDA tiene los siguientes cuatro tipos de transiciones:

  • Inserte el no terminal del lado izquierdo de la producción en la parte superior de la pila y empuje su cuerda derecha.

  • Si el carácter superior de la pila coincide con el carácter de entrada que se está leyendo, póngalo.

  • Inserte la «S» inicial en la pila.

  • Si la línea de entrada se ha leído por completo y la pila está vacía, vaya al estado final «F».

Ejemplo

Diseñe un analizador de arriba hacia abajo para la expresión «x + y * z» de la gramática G con las siguientes reglas de producción:

P: S → S + X | X, X → X * Y | Y, Y → (S) | Identificación

Decisión

Si PDA es (Q, S, S, δ, q0, I, F), entonces el análisis de arriba hacia abajo es

(x + y * z, I) ⊢ (x + y * z, SI) ⊢ (x + y * z, S + XI) ⊢ (x + y * z, X + XI)

⊢ (x + y * z, Y + XI) ⊢ (x + y * z, x + XI) ⊢ (+ y * z, + XI) ⊢ (y * z, XI)

⊢ (y * z, X * YI) ⊢ (y * z, y * YI) ⊢ (* z, * YI) ⊢ (z, YI) ⊢ (z, zI) ⊢ (ε, I)

Diseño de analizador de abajo hacia arriba

Para el análisis ascendente, el PDA tiene los siguientes cuatro tipos de transiciones:

  • Empuje el carácter de entrada actual en la pila.

  • Reemplace el lado derecho del producto en la parte superior de la pila con el lado izquierdo.

  • Si la parte superior del elemento de la pila coincide con el carácter de entrada actual, sáquelo.

  • Si la línea de entrada se ha leído completamente, y solo si la «S» inicial permanece en la pila, pásela y pase al estado final «F».

Ejemplo

Diseñe un analizador de arriba hacia abajo para la expresión «x + y * z» de la gramática G con las siguientes reglas de producción:

P: S → S + X | X, X → X * Y | Y, Y → (S) | Identificación

Decisión

Si PDA es (Q, ∑, S, δ, q0, I, F), entonces el análisis de abajo hacia arriba es

(x + y * z, I) ⊢ (+ y * z, xI) ⊢ (+ y * z, YI) ⊢ (+ y * z, XI) ⊢ (+ y * z, SI)

⊢ (y * z, + SI) ⊢ (* z, y + SI) ⊢ (* z, Y + SI) ⊢ (* z, X + SI) ⊢ (z, * X + SI)

⊢ (ε, z * X + SI) ⊢ (ε, Y * X + SI) ⊢ (ε, X + SI) ⊢ (ε, SI)

🚫