Categorías: Todo - compilador - análisis - errores - léxicos

por Wesley Alejandro hace 4 años

676

Analisis Sintactico

En el contexto del análisis sintáctico, es crucial identificar y manejar distintos tipos de errores que pueden surgir durante la compilación de un programa. Los errores léxicos son aquellos originados por una mala escritura de identificadores, palabras clave u operadores.

Analisis Sintactico

Analisis Sintactico

Tipos de Analisis

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.
Analizadores LR
Análisis Ascendente con retroceso.
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 de gramáticas LL(1)
Análisis descendente con recursión
Análisis descendente con retroceso

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

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 derecha o Derivación canónica donde el no terminal más a la derecha se sustituye en cada paso.

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.

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

Caracteristicas

Los tokens son símbolos terminales en la gramática que describe al lenguaje fuente
Agrupa los tokens del programa fuente en frases gramaticales que el compilador usará en las siguientes etapas.
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.

Estrategias para Corregir Errores

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.
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.
Recuperación a nivel de frase Intenta recuperar el error una vez descubierto.
Ignorar el problema (Panic mode ) Consiste en ignorar el resto de la entradahasta llegar a una condición de seguridad.

Manejo de errores sintácticos

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.
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.

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.

Definiciones

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.
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.