0 évaluation0% ont trouvé ce document utile (0 vote)
61 vues5 pages
El documento describe diferentes aproximaciones para construir un analizador léxico y sintáctico, incluyendo ad-hoc, meta-compilador y analizador sintáctico. También describe los conceptos de analizador sintáctico, manejo de errores sintácticos, tipos de análisis sintácticos como descendentes y ascendentes, y análisis semántico mediante el uso de tablas de símbolos.
Description originale:
Titre original
Aproximaciones Para Construir El Analizador Léxico Gráfico
El documento describe diferentes aproximaciones para construir un analizador léxico y sintáctico, incluyendo ad-hoc, meta-compilador y analizador sintáctico. También describe los conceptos de analizador sintáctico, manejo de errores sintácticos, tipos de análisis sintácticos como descendentes y ascendentes, y análisis semántico mediante el uso de tablas de símbolos.
El documento describe diferentes aproximaciones para construir un analizador léxico y sintáctico, incluyendo ad-hoc, meta-compilador y analizador sintáctico. También describe los conceptos de analizador sintáctico, manejo de errores sintácticos, tipos de análisis sintácticos como descendentes y ascendentes, y análisis semántico mediante el uso de tablas de símbolos.
Aproximaciones para construir el analizador lxico grfico
Adhoc.-consiste en la codificacin de un programa que reconoce que no sigue formalismos propios
de la teora de autmatas. Es muy propensa a errores. Meta-compilador.-En este caso se utiliza con un programa especial que tiene como entrada partes de la forma (expresin regular accin). El meta-compilador genera todos los autmatas finitos. Analizador sintctico.- Todo analizador de programacin obedece a unas reglas que describen la estructura sintctica de los programas bien formados que aceptan. a) Las gramticas son especificaciones sintcticas y precisas del lenguaje de programacin. b) A partir de una gramtica se puede generar automticamente un analizador sintctico. c) El proceso genera un autmata el anterior puede llevar a descubrir ambigedades. d) Una gramtica proporciona una estructura lenguaje de programacin siendo ms fcil generar cdigo y detectar errores. e) Es ms fcil emplear y o modificar el lenguaje si esta descrito con una gramtica.
CONCEPTO DE ANALIZADOR SINTACTICO Es el que se encarga de checar la secuencia de tokens que representa el valor de entrada en base de una gramtica dada.
1. Incorpora acciones semnticas en las que al colocar las fases de la compilacin va generando el cdigo lxico. 2. Informa de la naturaleza de los errores sintcticos y segn el compilador intenten repararse de ellos. 3. Controla el flujo de tokens reconocidos ** con base a la informacin de la tabla de smbolos. MANEJADOR DE ERRORES SINTACTICOS Los errores de programacin pueden ser de los siguientes tipos:
Lxicos: Son productos al escribir un mal un identificador palabra reservada o un operador Sintctico: Generados por una expresin aritmtica o parntesis no equilibrados** algo que no va dentro de la sintaxis. Semnticos: Como un operador aplicado o un operando incompatible errores si una variable no est declarada. Logicos: Puede ser una llamada infinitamente recursiva**int int combinacin de errores Correccion: Cuando el programa no hace lo que tiene que hacer.
ESTRATEGIAS PARA GESTIONAR LOS ERRORES
1. Ignorar el problema (panic mode): Consiste en ignorar el resto de la entrada hasta llegar a una condicin de seguridad ** a=10; b=a*c/d**lo elimina c=a+b; 2. Recuperacin a nivel frase: Recuperar el error una vez descubierto** a=10; b=a*c/d; c=a+b; 3. Reglas de produccin adicionales: Esto es un mecanismo que aade a la gramtica formal que describe el lenguaje reglas de produccin para reconocer los errores mas comunes.
TIPOS DE ANALISIS SINTACTICOS
Descendentes.- Las cuales pueden ser axioma inicial y van efectuando derivaciones que reconocen las sentencias y estas pueden ser: a) Con retroceso b) con funciones recursivas c) gramticas ll Ascendentes.- parten de la sentencia de entrada y van aplicando derivaciones inversas desde el consecuente hasta el ascendente hasta llegar al axioma principal y pueden ser a) Axioma principal b) con gramatica LR ** reutiliza las cosas programa por partes y luego las une. Diagramas de sintaxis Los diagramas de sintaxis tambin conocidos como diagramas de conway es un grafo dirigido por elementos no terminales aparecen como rectangulares y los terminales como crculos y elipses.
} 5 Factor Checafactor() { Switch(token) { Case id:gettoken() Break; Case num:gettoken() Break; Case not:gettoken() Break; Case (:gettoken() Checaexpresion(); If(token!=)) Printf(Error) ; Gettoken() Break; }
}
Anlisis Semntico
Ademas de controlar un programa cumple con las reglas de la gramatica del lenguaje hay que comprobar que lo que se quiere hacer tenga sentido. Definicion dirigida por sintaxis:consiste en asociar una accin semntica o una regla de produccin pero dicha accin no implica cuando se debe ejecutar dicha accin semntica. Esquema de traduccin: Es igual que una definicin dirigida por sintaxis a excepto que se suministre informacin acerca de cuando se deben ejecutar las acciones semnticas. Scaner-> lxico parser->sintctico,semntico.
Tabla de smbolos Es una estructura de datos de alto rendimiento que almacena toda la informacin necesaria sobre los identificadores de usuario 1 ejecuta chequeo semntico y genera el cdigo Esta estructura solo permanece en memoria el tiempo de compilacin no de ejecucin. Informacin que almacena una tabla de smbolos a) Nomb elemento b) Tipo elemento c) Direccin en memoria d) Valor del elemento e) Numero de dimensiones f) Tipos de parmetros formales Nominal: el programador debe analizar y elegir que nombre darle a las variables Estructural: Tiene que ser como se va a amanejar Funcional: que las variables declaradas se usen
Generacion de cdigo Se usa la reutilizacin de front end para crear otros compiladores del mismo lenguaje pero que generan cdigo para otras plataformas. La filosofa verstil se interpreta en tiempo de ejecucin a travs de un motor de ejecucin**JVM
CONSIDERACIONES PARA FACILITAR LA LECTURA 1.-simples,compuestas 2.-if then else, while, repeat, case.