Analisis Sintactico

Definiciones

Determina si la secuencia de componentes léxicos sigue la sintaxis del lenguaje y obtiene la estructura jerárquica del programa en forma de árbol, donde los nodos son las construcciones de alto nivel del lenguaje.

Es la fase del analizador que se encarga de chequear el texto de entrada en base a unagramática dada. Y en caso de que el programa de entrada sea válido, suministra el árbolsintáctico que lo reconoce.

Aplicativos

La estructura jerárquica de un programa es
representada por reglas que constituyen una
gramática.

l Las reglas se representan por medio de

producciones.

l Cada producción define un símbolo no terminal en

función de símbolos terminales o tokens, y otros

símbolos no terminales.

l Existe una producción que define al no terminal

programa.

Manejo de errores sintácticos

Tipos

Léxicos: producidos al escribir mal un identificador, una palabra clave o un operador. •Sintácticos: por una expresión aritmética o paréntesis no equilibrados. •Semánticos: como un operador aplicado a un operando incompatible. •Lógicos: puede ser una llamada infinitamente recursiva.

objetivos

• Indicar los errores de forma clara y precisa. Aclarar el tipo de error y su localización. • Recuperarse del error, para poder seguir examinando la entrada. • No ralentizar significativamente la compilación. • Simplificar la estructura del compilador. •Mejorar la respuesta ante los errores.

Estrategias para Corregir Errores

Ignorar el problema (Panic mode ) Consiste en ignorar el resto de la entradahasta llegar a una condición de seguridad.

Recuperación a nivel de frase Intenta recuperar el error una vez descubierto.

Reglas de producción adicionales para el control de errores La gramática sepuede aumentar con las reglas que reconocen los errores más comunes.

Corrección Global Si hay algún error por el que no se puede reconocer, consiste en encontrar lasecuencia completa más parecida que sí se pueda reconocer.

Caracteristicas

Se determinan las relaciones estructurales entre los componentes léxicos, esto es semejante a realizar el análisis gramatical sobre una frase en lenguaje natural.

Agrupa los tokens del programa
fuente en frases gramaticales
que el compilador usará en las
siguientes etapas.

Los tokens son símbolos terminales en la gramática que describe al lenguaje fuente

Tipo de gramática que acepta un analizador sintáctico

Gramática

N=No terminales. T=Terminales. P=Reglas de Producción. S=Axioma Inicial.

Derivaciones

La idea central es que se considera una producción como una regla de reescritura, donde el no terminal de la izquierda es sustituido por la cadena del ladoderecho de la producción

Derivación por la izquierda : Solo el no terminal de más a la izquierda de cualquier forma de frase se sustituye en cada paso.

Derivación por la derecha o Derivación canónica donde el no terminal más a la derecha se sustituye en cada paso.

Tipos de Analisis

Descendentes Parten del axioma inicial, y van efectuando derivaciones a izquierda hasta obtener la secuencia de derivaciones que reconoce a la sentencia.

Análisis descendente con retroceso

Análisis descendente con recursión

Análisis descendente de gramáticas LL(1)

Ascendentes Parten de la sentencia de entrada, y van aplicando reglas de producción hacia atrás (desde el consecuente hasta el antecedente), hasta llegar al axioma inicial.

Análisis Ascendente con retroceso.

Analizadores LR