Factores ecosistemas: interacciones, energia y dinamica
lexico.pptx
1. 4.4 Errores léxicos
El análisis léxico constituye la primera fase, aquí se lee el programa fuente de izquierda a derecha y se
agrupa en componentes léxicos (tokens), que son secuencias de caracteres que tienen un significado.
Además, todos los espacios en blanco, líneas en blanco, comentarios y demás información innecesaria
se elimina del programa fuente. También se comprueba que los símbolos del lenguaje (palabras clave,
operadores,...) se han escrito correctamente.
Como la tarea que realiza el analizador léxico es un caso especial de
coincidencia de patrones, se necesitan los métodos de especificación y
reconocimiento de patrones, y éstos métodos son principalmente las
expresiones regulares y los autómatas finitos. Sin embargo, un analizador
léxico también es la parte del traductor que maneja la entrada del código
fuente, y puesto que esta entrada a menudo involucra un importante gasto de
tiempo, el analizador léxico debe funcionar de manera tan eficiente como sea
posible.
Son pocos los errores simplemente en el nivel léxico ya que tiene una visión
muy restringida de un programa fuente. El analizador léxico debe devolver el
componente léxico de un identificador y dejar a otra fase se ocupe de los
errores.
Suponga que una situación en la cual el analizador léxico no puede continuar
por que ninguno de los patrones concuerda con un prefijo de la entrada. Tal
vez la estrategia de recuperación más sencilla sea recuperación “EN MODO
PANICO” (este método de recuperación es donde se borra caracteres sucesivos
de la entrada hasta que el analizador léxico pueda encontrar un componente
léxico bien formado). ¡¡Los programas no siempre son correctos!!
2. 4.4 Errores léxicos
• El compilador tiene que:
• Reportar clara y exactamente la presencia de errores
• Recuperarse de cada error lo suficientemente rápido para
poder detectar errores subsiguientes:
• Tratar de evitar mensajes falsos de error
• Un error que produce un token erróneo
• Errores léxicos posibles
• Un token o componente léxico es una cadena de caracteres
que tiene un significado coherente en cierto lenguaje de
programación. Ejemplos de tokens, podrían ser palabras clave
(if, while, int), identificadores, números, signos, o un
operador de varios caracteres. Son los elementos más básicos
sobre los cuales se desarrolla toda traducción de un
programa, surgen en la primera fase, llamada análisis léxico.
3. Generadores de analizadores Léxicos.
• 4.5.-Generadores de analizadores Léxicos.
• Un analizador léxico es un modo destinado a leer caracteres
del archivo de entrada, donde se encuentra la cadena a
analizar, reconocer subcadenas que correspondan a símbolos
del lenguaje y retornar los tokens correspondientes y sus
atributos.
• o Generador LEX:
• Es un programa para generar analizadores léxicos, se utiliza
comúnmente con el programa yacc que se utiliza para
generar análisis sintáctico, escrito originalmente por Eric
Schmidt y Mike Lesk, es el analizador léxico estándar de
POSIX. Lex toma como entrada una especificación de
analizador léxico y devuelve como salida el código fuente
implementando el analizador léxico en C.
4. • o Generador FLEX
• Es una herramienta para la generación de programas que realizan
corcondancia de patrones en texto, es una herramienta para generar
escanes. FLEX lee los archivos de entrada dados, o la entrada estándar
si no se ha indicado ningún nombre de archivo, con la descripción de
un escáner a generar. La descripción se encuentra en forma de parejas
de expresiones regulares y código C, denominadas reglas.
• o Generador JTLexx
• Permite expresar conjuntamente sintaxis y semántica al estilo de los
esquemas de traducción. A su vez el proceso de conjunto de atributos
es implementado por JTLex por un autómata finito traductor con las
ventajas de eficiencia que esto supone. Una especificación JTLex
permite no solo asociar procedimiento, o acción a cada expresión
regular, sino también a cada ocurrencia de un símbolo dentro de la
expresión.
• Esquema de funcionamiento: