You are on page 1of 5

Analizador Lexico

Presentado por
Danilo Andrs Daz Montes
Alex David Guzman Yepes

Inteligencia Artificial
Fundacin Universitaria Unipanamericana
Bogot
2015

Qu es un Analizador Lxico?
Es la fase de rastreo, 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 especifico de maquina
de estados llamado autmata finito
Algunos aspectos generales que tiene un analizador lxico:

un analizador lxico es la especificacin y el diseo de programas que ejecuten las


acciones activadas por patrones dentro de las cadenas.

La principal funcin es leer los caracteres de entrada y elaborar como salida una
secuencia de componentes lxicos que se utilizaran.

Convierte una cadena de caracteres en una cadena de palabras.

Una forma sencilla de crear un analizador lxico consiste en la elaboracin de un


diagrama que muestre la estructura de los componentes lxicos del archivo fuente, y
despus hacer la traduccin a mano del diagrama a un programa para encontrar los
componentes lxicos.

Una herramienta de software que automatiza la construccin de analizadores lxicos,


permite que personas con diferentes conocimientos utilicen la concordancia de patrones
en sus propias reas de aplicacin.

La gran ventaja de un generador de analizadores lxicos es que puede utilizar los


algoritmos ms conocidos de concordancia de patrones, con lo cual crea analizadores
lxicos eficientes para los no especialistas en dichas tcnicas.

Algunas reglas importantes a tener en cuenta de un analizador lxico:

Dgitos: En general nmeros no son buenos candidatos de palabras claves. Sin embargo,
la normalizacin de ciertos nmeros en el contexto de ciertas palabras pueden ser
relevantes para la recuperacin de informacin.

Guiones: Puede que sea o no sea relevante la eliminacin de guiones. En general, se


adopta una regla y se agregan excepciones.

Tildes y caracteres especiales: Puede que sea o no sea relevante la eliminacin de tildes
y caracteres especiales. En general, se adopta una regla y se agregan excepciones.

Las etiquetas HTMLpor lo general son removidas.

Los signos de puntuacin son generalmente removidos.

Generalmente el texto es transformado a mayscula o minscula.

Funciones de un analizador lxico

Es la primera fase de un compilador consistente en un programa que recibe como entrada el


cdigo fuente de otro programa (secuencia de caracteres) y produce una salida compuesta de
tokens (componentes lxicos) o smbolos. Estos tokens sirven para una posterior etapa del
proceso de traduccin, siendo la entrada para el analizador sintctico.
Su principal funcin consiste en leer la secuencia de caracteres del programa fuente, carcter a
carcter y elaborar como salida la secuencia de componentes lxicos que utiliza el analizador
sintctico, el analizador sintctico emite la orden al analizador lxico para que agrupe los
caracteres y forme unidades con significado propio llamados componentes lxicos - tokens.
Tambin el analizador lxico opera bajo peticin del analizador sintctico devolviendo un
componente lxico segn lo solicite 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.

Los componentes lxicos representan:

Palabras reservadas: if, while, do. Etc


Identificadores: variables, funciones, tipos definidos por el usuario, etiquetas.
Operadores: igual, mayor (>), menor (<), mayor igual (>=), menor igual (<=). Etc
Simbolos especiales: punto y coma (;), parntesis (), corchetes {} etc.
Constantes numricas: literales que representan valores enteros y flotantes.
Constantes de carcter: Literales que representan cadenas o caracteres

Fig. 1. Estructura de un analizador lxico

Adems el analizador lxico es responsable de:

Manejo de apertura y cierre de archivo, lectura de caracteres y gestin de


posibles errores de apertura.
Eliminar comentarios, espacios en blanco, tabuladores y saltos de lnea.
Inclusin de archivos y macros.
Contabilizar nmero de lneas y columnas para emitir mensajes de error.

Componentes lxicos, patrones y lexemas

En la fase de anlisis, los trminos componentes lxicos (tokens), patrn y lexema se emplean
con significados especficos. Un analizador lxico, inicialmente lee los lexemas y le asigna
un significado propio.

componente lxico es la secuencia lgica y coherente de caracteres relativo a


una categora: identificador, palabra reservada, literales (cadena/numrica), operador o
carcter de puntuacin, adems de que un componente lxico puede tener uno o varios
lexemas.

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).

Otros componentes usando en el analizador lxico:

Un patrones una regla, la cual describe el conjunto de lexemas que pueden representar a
un determinado componente lxico en los archivos fuentes.

Cuando concuerda un lexema con un patrn, el analizador lxico, proporcionara


informacin adicional sobre el lexema concreto que concord.

Las expresiones regulares son una notacin importante para especificar patrones. Cada
patrn concuerda con una serie de cadenas, de modo que las expresiones regulares
sirvan como nombres para conjuntos de cadenas.

Alfabeto o clase de carcter denota cualquier conjunto finito de smbolos.

Cadena es una secuencia finita de smbolos tomados de un alfabeto.

Los trminos frase o palabra a menudo se utilizan como sinnimos del termino 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)
Bibliografia
http://es.slideshare.net/maryr_/actividad-2-analizador-lxico-sintctico-y-semntico [12-10-2015]

http://www.geocities.ws/itmina_web/lya/Auto_Archivos/proy/AL.htm [12-10-2015]
http://www.kramirez.net/RI/Material/Presentaciones/Analizador%20Lexico.pdf [12-10-2015]