Software">
Analizador Lexico Investigacion
Analizador Lexico Investigacion
Analizador Lexico Investigacion
Analizadores Léxicos.
En Lenguaje de programación.
AUTOMATAS 1– ISCC27B
UNIDAD 4
DOCENTE: JUAN CARLOS GONZALEZ CORDOBA
IRAPUATO, GTO.
16 DE MARZO DEL 2022
INTRODUCCION.
Puede asegurarse que la herramienta del tipo mencionado más conocida es Lex
[Lev92]. Lex es un generador de analizadores léxicos, originalmente incluido dentro
del ambiente de desarrollo de UNIX usando a C como lenguaje huésped y
posteriormente migrado a casi todas las plataformas y lenguajes. Otra herramienta
que últimamente ha tenido gran difusión es JLex – que usa a Java como lenguaje
huésped y corresponde al compilador de compiladores Cup – [App98][Ber97];
mientras que algunos compiladores de compiladores actuales como Javacc
[Javacc] y Eli [Com98] integran la especificación del análisis léxico sin brindar un
módulo específico.
En esta sección se describe una herramienta concreta, llamada LEX, muy utilizada
en la especificación de analizadores léxicos para varios lenguajes. Esa herramienta
se denomina compilador LEX, y la especificación de su entrada, lenguaje LEX. El
estudio de una herramienta existente permitirá mostrar cómo., utilizando
expresiones regulares, se puede combinar la especificación de patrones con
acciones, por ejemplo, haciendo entradas en una tabla de símbolos, cuya ejecución
se pueda pedir a un analizador léxico. Se pueden utilizar las especificaciones tipo
LEX, aunque no se disponga de un compilador LEX.
Por lo general, se utiliza el LEX de la forma representada en la figura. Primero, se
prepara una especificación del analizador léxico creando un programa lex.l en
lenguaje LEX. Después lex.l se pasa por el compilador LEX para producir el
programa en C lex.yy.c. El programa lex.yy.c consta de una representación tabular
de un diagrama de transiciones construido a partir de las expresiones regulares de
lex.l. junto con una rutina estándar que utiliza la tabla para reconocer lexemas. Las
acciones asociadas a las expresiones regulares de lex son partes de código en C y
se transfieren directamente a lex.yy.c. Por último, lex.yy.e se ejecuta en el
compilador de C para producir un programa objeto a. out. Que es el analizador léxico
que transforma un archivo de entrada en una secuencia de componentes léxicos.
Especificaciones en LEX
Un programa en LEX consta de tres partes:
1. Declaraciones
2. Reglas de traducción
3. Funciones auxiliares
P1 {acción1}
P2 {acción2}
……
Pn {acción}
donde pi es una expresión regular y cada acción es un fragmento de programa que
describe cuál ha de ser la acción del analizador léxico cuando el patrón
p1 concuerda con un lexema. En LEX, las acciones se escriben en C, en general,
sin embargo, pueden estar en cualquier lenguaje de implantación.
Análogamente, podemos incluir rutinas para los demás casos. Por ejemplo, si el
analizador lee el lexema ESLE, y no puede construir un token correcto para él
mismo, procedería a generar los sinónimos por intercambio de caracteres (es decir,
SELE, ELSE o ESEL) y comprobaría si alguno de ellos es reconocible. En caso
afirmativo, genera el token correspondiente y advierte al usuario del posible error y
de su interpretación automática, continuando con el proceso.
Números: 0 1 2 3 4 5 6 7 8 9
Variables: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z
Operadores: + - * /
Delimitadores: ( )
Generador Lex
Generador Flex
Generador JTLex
Aplicaciones
CONCLUSION.
Como conclusión los analizadores léxicos son una aplicación de los compiladores
que se encargan de verificar que el texto este escrito en un formato aceptado para
todo el programa que está escrito en un lenguaje de programación al igual que se
encarga de verificar que tenga congruencia, los analizadores léxicos sirven en gran
parte para resolver problemas que pueden surgir a causa de que el programa no
tenga congruencia o no este bien estructurado.
BIBLIOGRAFIAS.