Esta es una investigación acerca de los errores léxicos y los generadores y analizadores léxicos, dando a conocer los conceptos principales y los diagramas de desarrollo de cada uno de ellos.
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Actividad 4.4 y 4.5 Lenguajes y Autómatas Edinson Yahir Sánchez Velázquez.pptx
1. INSTITUTO TECNOLÓGICO DE COMITÁN
Ingenieríaen
Sistemas Computacionales
Asignatura:
Lenguajes y Autómatas 1
Docente:
Paulo Eduardo Chapela Gómez
Investigación 4.4 y 4.5
Presenta:
Sánchez Velázquez Edinson Yahir - 21700230
Comitán de Domínguez, Chiapas; a 27 de octubre del 2023.
2. 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.
3. 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!!
El compilador tiene que:
1. Reportar clara y exactamente la presencia de errores
2. 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.
4. 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.
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.
Esquema general: un programa fuente de LEX tiene el siguiente aspecto.
De estas tres secciones, solo la segunda es obligatoria, y cualquiera de ellas pueden estar vacia.
5. Generador FLEX
Es una herramienta para la generación de programas que realizan corcondancia de patrones en texto, es una
herramienta para generar escaneos. 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.
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: