Está en la página 1de 14

TECNOLGICO DE ESTUDIOS SUPERIORES DE

CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 1de14

DIVISIN.

INGENIERA EN SISTEMAS COMPUTACIONES

ASIGNATURA.

LENGUAJES Y AUTMATAS I

NOMBRE DEL ALUMNO.

DOCENTE.
NO. DE CONTROL.

GRUPO.

FECHA

N ACTIVIDAD

NOVIEMBRE 2014
PRODUCTO.

CALIFICACIN Y FIRMA
DEL PROFESOR.

Unidad 5

INDICE
UNIDAD 5
ANLISIS LEXICO
5.1

Funciones del analizador lxico..........................................................2

5.2

Componentes lxicos, patrones y lexemas......................................5

5.3

Creacin de tablas de tokens...............................................................6

5.4

Errores lxicos..........................................................................................8

5.5

Generadores de analizadores lxicos..............................................10

5.6

Aplicaciones (Caso de estudio).........................................................10

REFERENCIAS BIBLIOGRAFICAS..............................................................13

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 2de14

UNIDAD 5
ANLISIS LEXICO
5.1

Funciones del analizador lxico

Un analizador lxico asla el analizador sintctico de la representacin de lexemas de


los componentes lxicos.
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

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 3de14
DEFINICIONES

Tokens
Smbolos

terminales

una

gramtica

Identificadores, palabras reservadas, operadores,...

Varios signos pueden forman el mismo token

de

Atributos
Informacin adicional que tiene el token, de utilidad para el anlisis sintctico y
semntico.
Componentes lxicos (tokens)
Unidad mnima de informacin que significa algo a la hora de compilar; concepto de
palabra; las fases de un lenguaje constan de cadenas de componentes lxicos.
Lexema
Una secuencia de caracteres de entrada que comprenden un solo componente lxico
se llama lexema; cadena de caracteres que extrae el componente abstracto del
componente lxico.
Patrn
Descripcin de la forma que han de tomarlos lexemas para ajustarse a un componente
lxico.
Otras Funciones

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 4de14

Manejo del fichero de entrada del programa fuente: abrirlo, leer sus caracteres, cerrarlo
y gestionar posibles errores de lectura.
Eliminar comentarios, espacios en blanco, tabuladores y saltos de lnea (caracteres no
vlidos para formar un token).Inclusin de ficheros: # include...
La expansin de macros y funciones in line: # define...
Contabilizar el nmero de lneas y columnas para emitir mensajes de error.
Reconocimiento y ejecucin de las directivas de compilacin (por ejemplo, para depurar
u optimizar el cdigo fuente).
Aspectos del Anlisis Lxico.
a) Diseo ms sencillo
Los smbolos que trata el scanner se describe con una gramtica ms simple que la del
parser, gramtica regular
b) Mejora la eficiencia
Gran parte del tiempo de compilacin se consume en la lectura y exploracin de
caracteres.
c) Mejora la portabilidad
Se pueden tener varias versiones del scanner una para distintos cdigos (EBCDID,
ASCII, ...), con el mismo parser
d) Descarga el anlisis sintctico
Ejemplo; no puedo distinguir en FORTRAN hasta despus del 1
o

DO 5 I=1.25

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 5de14

DO 5 I=1,25

5.2

Componentes lxicos, patrones y lexemas

Componente lxico (token)


Son las unidades lgicas que genera el analizador lxico. Formar caracteres en tokens
es muy parecido a formar palabras en un lenguaje natural
Es el conjunto de cadenas de entrada que produce como salida el mismo componente
lxico. Cada token es una secuencia de caracteres que representa una unidad de
informacin en el programa fuente. Los componentes lxicos ms comunes son los
siguientes: palabras clave o reservadas:
o
o
o
o
o
o
o
o
o
o
o

Operadores aritmticos
Operadores
Relacionales
Operadores lgicos
Operador de asignacin
Identificadores
Constantes
Cadenas
Literales
Signos de puntuacin
Libreras

Lexema
Representan cadenas de caracteres en el programa fuente que se pueden tratar juntos
como una unidad lxica. Un lexema es una secuencia de caracteres en el programa
fuente con la que concuerda el patrn para un componente lxico.

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 6de14

Patrn
Regla que describe el conjunto de lexemas que pueden representar a un determinado
componente lxico en los programas fuente. En otras palabras, es la descripcin del
componente lxico mediante una regla.
Atributos de los componentes lxicos
El analizador lxico recoge informacin sobre los componentes lxicos en sus atributos
asociados. Los componentes lxicos influyen en las decisiones del anlisis sintctico y
los atributos en la traduccin de los componentes lxicos:
Apuntador a la entrada de la Tabla de smbolos donde se guarda la informacin sobre
el componente lxico.
El lexema para un identificador
El nmero de lnea en que se encontr por primera vez.

5.3

Creacin de tablas de tokens

Tabla
Conjunto de pares clave-valor, llamados elementos de la tabla. La tabla de smbolos es
una componente necesaria de un compilador. Al declarar un identificador (normalmente
una sola vez), ste es insertado en la tabla. Cada vez que se utilice el identificador se
realizar una bsqueda en la tabla para obtener la informacin asociada (el valor).
Bsqueda
Dada la clave de un elemento, encontrar su valor.
Insercin
Dado un par clave-valor, aadir un elemento nuevo a la tabla.
Cambio de valor

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 7de14

Buscar el elemento y cambiar su valor.


Borrado
Eliminar un elemento de la tabla.
Longitud de bsqueda (o tiempo de acceso)
De una clave
Li = nmero de comparaciones con elementos de la tabla para encontrar esa clave.
Mxima
LM = nmero mximo de comparaciones para encontrar cualquier clave.
Media (esperada)
Lm = nmero medio de comparaciones para encontrar un valor. Si la frecuencia de
todas las claves es la misma:
Lm = (S Li)/N
Si la frecuencia de todas las claves no es la misma:
Lm = S pi.Li
Grado de ocupacin
s = n/N donde n=nmero de elementos en la tabla y N=capacidad mxima de la tabla.
Funcin de bsqueda: B : KE asocia a cada clave k un elemento B(k).
Valor asociado a una clave k: v(B(k)). Puede ser mltiple, en cuyo caso normalmente
se convierte en un puntero. Si est en la tabla puede almacenarse consecutivamente o
en subtablas paralelas. Tablas de smbolos (identificadores) La clave es el identificador.
El valor est formado por:
Atributos del identificador
Puntero a la posicin de memoria asignada. La clave puede sustituirse por un puntero.
Los identificadores pueden estar empaquetados.
La longitud del identificador puede especificarse en la tabla o delante del nombre, o ser
implcita.

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 8de14

o Tablas consecutivas: Todos los elementos ocupan posiciones de memoria


adyacentes.
o Tablas ligadas: cada elemento apunta al siguiente.
o Tablas doblemente ligadas: cada elemento apunta al siguiente y al anterior.
o Tablas no ordenadas Insercin: en el primer lugar vaco.

5.4

Errores lxicos

El anlisis lxico constituye la primera fase, aqu se lee el programa fuente de izquierda
a derecha y se agrupa en componentes lxicos (tokens), que son secuencias de
caracteres que tienen un significado. Adems, todos los espacios en blanco, lneas en
blanco, comentarios y dems informacin innecesaria se elimina del programa fuente.
Tambin se comprueba que los smbolos del lenguaje (palabras clave, operadores,...)
se han escrito correctamente.
Como la tarea que realiza el analizador lxico es un caso especial de coincidencia de
patrones, se necesitan los mtodos de especificacin y reconocimiento de patrones, y
estos mtodos son principalmente las expresiones regulares y los autmatas finitos.
Sin embargo, un analizador lxico tambin es la parte del traductor que maneja la
entrada del cdigo fuente, y puesto que esta entrada a menudo involucra un importante
gasto de tiempo, el analizador lxico debe funcionar de manera tan eficiente como sea
posible.
Son pocos los errores simplemente en el nivel lxico ya que tiene una visin muy
restringida de un programa fuente.
El analizador lxico debe devolver el componente lxico de un identificador y dejar a
otra fase se ocupe de los errores.
Suponga que una situacin en la cual el analizador lxico no puede continuar porque
ninguno de los patrones concuerda con un prefijo de la entrada.

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 9de14

Tal vez la estrategia de recuperacin ms sencilla sea recuperacin EN MODO


PANICO (este mtodo de recuperacin es donde se borra 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:
Reportar clara y exactamente la presencia de errores
Recuperarse de cada error lo suficientemente rpido para poder detectar errores
subsiguientes:

Tratar de evitar mensajes falsos de error


Un error que produce un token errneo
Errores lxicos posibles

Un token o componente lxico es una cadena de caracteres que tiene un significado


coherente en cierto lenguaje de programacin.
Ejemplos de tokens, podran ser palabras clave (if, while, int), identificadores, nmeros,
signos, o un operador de varios caracteres. Son los elementos ms bsicos sobre los
cuales se desarrolla toda traduccin de un programa, surgen en la primera fase,
llamada anlisis lxico.

5.5

Generadores de analizadores lxicos

Se pueden usar varias tcnicas para acelerar el algoritmo y ahorrar espacio


Las etiquetas pueden guardarse mediante dispersin para producir un sistema de
firmas que acelere sus bsquedas

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 10de14

Como las tablas de transiciones son muy escasas, se pueden guardar en una lista
corta que se consulte cada vez que se necesite hacer una transicin a partir de un
estado
Estas listas no suelen tener ms de tres o cuatro elementos, as que su bsqueda ser
razonablemente rpida

5.6

Aplicaciones (Caso de estudio)

Los componentes lxicos que reconocer el analizador, en donde se clasifican los


diversos tipos de componentes.Para cada componente se construye un AFD que
permita identificar el patrn de smbolos que deber recibir y donde deber terminar
ese patrn que seale que ah se encontr un componente. Todos los AFDs se
integran en un solo diagrama.
Finalmente se determina la matriz de transicin de estados, que no es ms que
transcripcin del AFD integrado, en donde las columnas son los smbolos que acepta el
analizador. Lo que resta es crear un algoritmo de reconocimiento de cadenas y aadir
mediante una seleccin de casos para tomar la accin correspondiente segn la
cadena encontrada.
En este post analizaremos como crear uno sencillo, en VB.
He preferido crear un autmata programable personal, aplicando los conceptos de
implementacin del analizador lxico. Autmata.
Este autmata se encuentra realizado en VB.
La tabla de smbolos se encuentra en memoria y no en disco.
Tengo que procesar todos los elementos, creados en la tabla de smbolos.

10

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 11de14

Estos son los identificadores definidos (total 49 lexemas) para la tabla de smbolos.

Diagrama de transiciones.

11

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 12de14

Ventana del ejemplo aplicado.

Cdigo cuando se pulsa una


tecla.

12

TECNOLGICO DE ESTUDIOS SUPERIORES DE


CUAUTITLN IZCALLI
Cdigo: FO-205P11000FORMATO DE ENTREGA XX
DE EVIDENCIAS

Pgina 13de14

13

REFERENCIAS BIBLIOGRAFICAS

Acosta,

I.

F. (s.f.).

TECNOLOGICO

MONOGRAFIAS.COM:

DE

LAGUNA.

Obtenido

de

http://www.monografias.com/trabajos-

pdf/automatas-finitos/automatas-finitos.pdf
Cases Muoz , R., & Mrquez Villodre, L. (2002). Lenguajes, gramticas y
autmatas . Mxico D.F: ALFAOMEGA.
DOCUWIKI. (s.f.). Obtenido de
http://sistemas.uniandes.edu.co/~isis1106/dokuwiki/lib/exe/fetch.php?
media=bibliografia:capitulo3.pdf
FILE WORDPRESS. (s.f.). Obtenido de
http://matedis.files.wordpress.com/2011/07/mc3a9todo-dethompson.pdf
G, V. (s.f.). BLOGSPOT. Obtenido de http://automatas-finitos.blogspot.mx/
Galeon.com. (s.f.). Obtenido de http://10380054.galeon.com/u2.htm
INGENIERIA INFORMATICA. (s.f.). Obtenido de
http://ocw.uc3m.es/ingenieria-informatica/teoria-de-automatas-ylenguajes-formales/material-de-clase-1/tema-3-automatas-finitos
ULPCG. (s.f.). Obtenido de
http://www2.dis.ulpgc.es/~mluengo/automatas/teoria/tema2.pdf

También podría gustarte