Professional Documents
Culture Documents
Introduccin ...................................................................................................................................1
5.1 Funciones del analizador lxico..........................................................................................2
5.2 Componentes lxicos, patrones y lexemas ........................................................................5
5.3 Creacin de Tabla de tokens ..............................................................................................6
5.4 Errores lxicos ....................................................................................................................7
5.5 Generadores de analizadores lxicos ................................................................................8
5.6 Aplicaciones (Caso de estudio) ..........................................................................................10
Conclusin .....................................................................................................................................11
Referencias bibliogrficas.............................................................................................................12
Introduccin
En este trabajo de investigacin se realizar un anlisis sobre los conceptos bsicos del anlisis
lxico.
La fase del anlisis lxico de un compilador agrupa secuencia de caracteres en categoras. Aunque
esto se conoce tambin como rastreo, realmente podemos distinguir dos tareas separadas:
Un rastreador mueve un apuntador a travs de la entrada un carcter a la vez para hallar cadenas
continuas de caracteres, las cuales constituyen elementos textuales individuales (palabras), y
clasificadas cada una de acuerdo con su tipo.
El filtro descarta algunos de los tokens encontrados por el rastreador determina cules otros son
smbolos reservados (y coloca el texto de los restantes en la tabla de nombre.
Existe una gran variedad de generadores de analizadores lxico, uno de los generadores ms
conocidos es Lex, es un generador de analizadores lxicos para el s istema operativo UNIX basada en
expresiones regulares que genera cdigo C.
Anlisis lxico
La fase de rastreo (scanner), tiene las funciones de leer el programa fuente como un archivo de
caracteres y dividirlo en tokens. Los tokens son las palabras reservadas de un lenguaje, secuencia de
caracteres que representa una unidad de informacin en el programa fuente. En cada caso un token
representa un cierto patrn de caracteres que el analizador lxico reconoce, o ajusta desde el inicio
de los caracteres de entrada. De tal manera es necesario generar un mecanismo computacional que
nos permita identificar el patrn de transicin entre los caracteres de entrada, generando tokens,
que posteriormente sern clasificados. Este mecanismo es posible crearlo a partir de un tipo
especfico de mquina de estados llamado autmata finito.
Smbolos especiales: ;, ( ), { },
El analizador lxico opera bajo peticin del analizador sintctico devolviendo un componente lxico
conforme el analizador sintctico lo va necesitando para avanzar en la gramtica. Los componentes
lxicos son los smbolos terminales de la gramtica. Suele implementarse como una subrutina del
analizador sintctico. Cuando recibe la orden obtn el siguiente componente lxico, el analizador
lxico lee los caracteres de entrada hasta identificar el siguiente componente lxico.
Una de las ventajas de separar el anlisis lxico y anlisis sintctico es que fa cilita la
transportabilidad del traductor si se decide realizar cambios posteriores, por ejemplo cambiar
las etiquetas begin-end por llaves de apertura y cierre { }.
Este lee la secuencia de caracteres del programa fuente, carcter a carcter, y los agrupa para formar
unidades con significado propio, los componentes lxicos. Estos componentes lxicos representan:
Smbolos especiales: ; () [] {}
Constantes numricas: literales que representan valores enteros, en coma flotante, etc, 982,
0xf678, -83.2E+2
Manejo del fichero de entrada del programa fuente: abrirlo, leer sus caracteres, cerrarlo y
gestionar posibles errores de lectura.
Patrn es una regla que genera la secuencia de caracteres que puede representar a un
determinado componente lxico (expresin regular).
Lexema es una cadena de caracteres que concuerda con un patrn que describe un
componente lxico (valor de cadena).
Ejemplo de una cadena de cdigo: const pi = 3.1416;
El analizador lxico recoge informacin sobre los componentes lxicos en sus atributos asociados.
Los tokens influyen en las decisiones del anlisis sintctico, y los atributos, en la traduccin de los
tokens. En la prctica los componentes lxicos suelen tener solo un atributo.
Para efectos de diagnstico, puede considerarse tanto el lexema para un identificador como el
nmero de lnea en el que se encontr por primera vez. Esta informacin puede ser almacenada en
la tabla de smbolos para el identificador (estructura de datos).
variar dependiendo de las limitaciones de memoria y tiempo de acceso. Una tabla de smbolo
provee la siguiente informacin:
Da un identificador.
Pero las dos funciones importantes que realizan las tablas de smbolos (tambin llamadas tablas de
identificadores y tablas de nombres), en el proceso de traduccin son:
o verificar que la semntica sea correcta
o ayudar en la generacin apropiada de cdigo.
caracteres sucesivos de la entrada hasta que el analizador lxico pueda encontrar un componente
lxico bien formado). Los programas no siempre son correctos!
El compilador tiene que realizar lo siguiente:
1. Reportar clara y exactamente la presencia de errores
2. Recuperarse de cada error lo suficientemente rpido para poder detectar errores
subsiguientes:
Entrada: un fichero texto con la especificacin de los componentes lxicos, las expresiones
regulares que los definen.
Salida: un programa en C que implementa dicho analizador, preparado para ser compilado y
utilizado.
Un fichero Lex consiste de tres partes: definiciones, reglas y rutinas auxiliares, separadas por % %.
Si se verifican dos patrones, se elige la regla que aparece primero (colocar las palabras
reservadas antes que los identificadores).
10
Conclusin
El analizador lxico tiene varias funciones importantes, se encarga de la eliminacin de los espacios
en blanco de cualquier cadena que analiza, reconoce los identificadores y palabras claves y
contantes. Posteriormente se encarga de construir los lexemas que constituyen un lenguaje de
programacin.
Las funciones en general de un anlisis lxico es leer el programa fuente como un archivo de
caracteres y dividirlo en tokens. Los tokens son palabras reservadas de un lenguaje, secuencia de
caracteres que representa una unidad de informacin en el programa fuente.
11
Referencias bibliogrficas
Hopcroft John E., Introduccin a la Teora de Autmatas, Lenguajes y Computacin, 2da ed, Ed.
Addison Wesley, 2004.
Kenneth C. Louden. (2004). Construccin de compiladores: principios y prctica. Mxico: Thomson.
Mndez, J. (2011) Unidad III y IV Lenguajes y Autmatas i. Documento en lnea. Consultado el 19
de noviembre de 2016 en: https://es.scribd.com/doc/226694899/Unidad-III-y-IV-Lenguajes -yAutomatas-i
Rosario, K. (2009) Anlisis Lxico. Documento en lnea. Consultado el 19 de noviembre de 2016 en:
http://automatas-finitos.blogspot.mx/2009/12/clasificacion.html
12