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.
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».
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)
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».
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)
🚫