CAPITULO 4 ANODIZADO DE ALUMINIO ,OBTENCION Y PROCESO
Análisis Sintáctico Ascendente - Descendente
1. Pontificia Universidad Católica del Ecuador
Sede Ibarra
Escuela de Ingeniería
Compiladores
Nombre: Guido Espinosa de los Monteros.
Las funciones que cumple el analizador sintáctico.
El analizador sintáctico obtiene una cadena de componentes léxicos del analizador
léxico, y comprueba si la cadena puede ser generada por la gramática del programa
fuente.
Tipos de errores sintácticos
Errores léxicos: Los errores léxicos se detectan cuando el analizador léxico intenta
reconocer componentes léxicos en el código fuente.
Errores sintácticos: Un error de sintaxis se detecta cuando el analizador sintáctico
espera un símbolo que no corresponde al que se acaba de leer. Los analizadores
sintácticos LL y LR tienen la ventaja de que pueden detectar errores sintácticos lo más
pronto posible, es decir, se genera un mensaje de error en cuanto el símbolo analizado
no sigue la secuencia de los símbolos analizados hasta ese momento.
Error semántico: Los errores semánticos corresponden a la semántica del lenguaje de
programación, la cual normalmente no está descrita por la gramática. Los errores
semánticos más comunes son la omisión de declaraciones.
Errores Lógicos: Los comete el programador
Ejemplo: una llamada infinitamente recursiva
Tipos de gramática que acepta un analizador sintáctico.
a) Análisis sintáctico descendente. Construye árboles de análisis sintáctico desde arriba
(raíz) hacia abajo (hojas). El análisis se realiza de lo general a lo particular.
b) Análisis sintáctico ascendente. Construyen árboles de análisis sintáctico comenzando
en las hojas y suben hacia la raíz. El análisis se realiza de lo particular a lo general.
Árbol sintáctico de una sentencia de lenguaje.
2. Pontificia Universidad Católica del Ecuador
Sede Ibarra
Escuela de Ingeniería
Es una representación que se utiliza para
describir el proceso de derivación de dicha
sentencia. Como nodos internos del árbol,
se sitúan los elementos no terminales de las
reglas de producción que vayamos
aplicando, y tantos hijos como símbolos
existan en la parte derecha de dichas reglas.
Análisis descendente con retroceso
El método parte del axioma inicial y aplica todas las posibles reglas al
no terminal más a la izquierda.
3. Pontificia Universidad Católica del Ecuador
Sede Ibarra
Escuela de Ingeniería
Análisis descendente con recursión. Diagramas de Conway
Un diagrama de Conway es un grafo dirigido donde los elementos no terminales aparecen
como rectángulos, y los terminales como círculos
4. Pontificia Universidad Católica del Ecuador
Sede Ibarra
Escuela de Ingeniería
Análisis descendente de gramáticas LL(1)
El método consiste en seguir un algoritmo partiendo de:
- La cadena a reconocer, junto con un apuntador, que nos indica cual es el token
actual.
- Una pila de símbolos (terminales y no terminales)
- Una tabla asociada de forma unívoca a una gramática. En esta asignatura no
vamos a ver como calcular dicha tabla.
Análisis Ascendente con retroceso.
Cuando se da cuenta que llega a una situación en la que no puede continuar, entonces
vuelve atrás deshaciendo todos los cambios. En el análisis con retroceso no se permiten
las reglas J, puesto que estas se podrán aplicar de forma indefinida.