Você está na página 1de 30

09 Anlisis lxico V 2

Compiladores - Profr. Edgardo Adrin Franco Martnez

Contenido
Autmata
Definicin formal de autmata
Representacin de un autmata
Mediante tablas de transiciones
Mediante diagramas de estados
Autmata finito
Definicin formal de autmata finito
Lenguaje reconocido por un autmata finito
Ejemplos
Mapas conceptuales 01 y 02
09 Anlisis lxico V 3
Compiladores - Profr. Edgardo Adrin Franco Martnez

Autmatas
En 1938 el matemtico
norteamericano Claude Elwood
Shannon (1916-2001),
estableci las bases de la
aplicacin de la lgica
matemtica para los circuitos
combinatorios y secuenciales,
construidos a bases de rels y
ms adelante con otros
dispositivos de vaco y estado
solido.
Compiladores (Anlisis Lxico III - Edgardo A. Franco)
09 Anlisis lxico V 4
Compiladores - Profr. Edgardo Adrin Franco Martnez

Autmatas
Los autmatas son sistemas capaces de
transmitir informacin. En sentido amplio, todo
sistema que acepta seales de su entorno y,
como resultado, cambia de estado y transmite
otras seales al medio, puede considerarse un
autmata.

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 5
Compiladores - Profr. Edgardo Adrin Franco Martnez

Autmatas
Si la informacin se codifica en cadenas de smbolos,
podemos con un autmata manipular cadenas de smbolos
que se le presentan a su entrada, produciendo otras tiras o
cadenas de smbolos a su salida.

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 6
Compiladores - Profr. Edgardo Adrin Franco Martnez

Autmatas
El autmata recibe los smbolos de entrada, uno detrs de
otro, es decir secuencialmente.

El smbolo de salida que en un instante determinado


produce un autmata, no slo depende del ltimo smbolo
recibido a la entrada, sino de toda la secuencia o cadena,
que ha recibido hasta ese instante.

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 7
Compiladores - Profr. Edgardo Adrin Franco Martnez

Autmata
El estado de un autmata es toda la informacin necesaria en
un momento dado, para poder deducir, dado un smbolo de
entrada en ese momento, cual ser el smbolo de salida, i.e.
conocer el estado de un autmata, es lo mismo que conocer toda
la historia de smbolos de entrada, as como el estado inicial,
estado en que se encontraba el autmata al recibir el primero de
los smbolos de entrada.

El autmata tendr un determinado nmero de estados


(pudiendo ser infinitos), y se encontrar en uno u otro segn sea
la historia de smbolos que le han llegado.
Se define configuracin de un autmata a su situacin en un instante.
Se define movimiento de un autmata como el transito entre dos
configuraciones.
Compiladores (Anlisis Lxico III - Edgardo A. Franco)
09 Anlisis lxico V 8
Compiladores - Profr. Edgardo Adrin Franco Martnez

Autmata
Si un autmata se encuentra en un estado determinado, recibe un
smbolo tambin determinado, producir un smbolo de salida y
efectuar un cambio o transicin a otro estado (tambin puede
quedarse en el mismo estado).

Los elementos del lenguaje son sentencias, palabras, etc... i.e.


cadenas formadas a partir de un alfabeto, que no es otra cosa que un
conjunto finito de smbolos. Una cadena de smbolos pertenecer al
correspondiente lenguaje si tal cadena se ha formado obedeciendo
esas reglas. Entonces un autmata reconocedor de ese lenguaje,
funciona de tal forma que cuando reciba a su entrada una
determinada cadena de smbolos indica si dicha cadena pertenece o
no al lenguaje.

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 9
Compiladores - Profr. Edgardo Adrin Franco Martnez

Definicin formal de autmata


Un autmata es una quntupla A = ( E, S, Q, f, g ) donde :
E = {conjunto de entradas o vocabulario de entrada}
E es un conjunto finito, y sus elementos se llaman entradas o smbolos de entrada.
S = {conjunto de salidas o vocabulario de salida}
S es un conjunto finito, y sus elementos se llaman salidas o smbolos de salida.
Q = {conjunto de estados}
Q es el conjunto de estados posibles, puede ser finito o infinito
f es la funcin de transicin o funcin del estado siguiente, y para un par del
conjunto E Q devuelve un estado perteneciente al conjunto Q, y es el producto
cartesiano de E por Q.
g es la funcin de salida, y para un par del conjunto E Q, devuelve un smbolo
de salida del conjunto S.

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 10
Compiladores - Profr. Edgardo Adrin Franco Martnez

Representacin de un autmata
Los autmatas se pueden representar mediante :
Tablas de transiciones y salidas
Diagramas de estados

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 11
Compiladores - Profr. Edgardo Adrin Franco Martnez

Representacin de un autmata
(Mediante tablas de transiciones y salidas)
Las funciones f y g pueden representarse mediante una tabla, con
tantas filas como estados y tantas columnas como entradas. As por
ejemplo se puede representar el autmata A = ( E, S, Q, f, g ) donde
E = {a,b}, S = {0,1}, Q = {q1, q2, q3} y las funciones f y g se pueden
representar por :

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 12
Compiladores - Profr. Edgardo Adrin Franco Martnez

Representacin de un autmata
(Mediante tablas de transiciones)
Ambas funciones tambin se pueden representar en una misma tabla
de la siguiente forma :

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 13
Compiladores - Profr. Edgardo Adrin Franco Martnez

Representacin de un autmata
(Mediante diagramas de estados)
Los diagramas de Moore son otra forma de representar las
funciones de transicin y salida de un autmata.
El diagrama de Moore es un grafo orientado en el que
cada nodo corresponde a un estado; y si f( , qi) = qj y g(,
qi) = s existe un arco dirigido del nodo qi al
correspondiente qj, sobre el que se pone la etiqueta / s.

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 14
Compiladores - Profr. Edgardo Adrin Franco Martnez

Representacin de un autmata
(Mediante diagramas de Moore)
Para el ejemplo:

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 15
Compiladores - Profr. Edgardo Adrin Franco Martnez

Autmata finito
Un autmata finito o mquina de estado
finito es un modelo matemtico, aplicado a la
teora de lenguajes opera como una mquina que
recibe una cadena constituida por smbolos de
un alfabeto y determina si esa cadena pertenece
al lenguaje regular que el autmata reconoce,
i.e. logra reconocer palabras de un lenguaje
descrito por una expresin regular.
INICIO
abc *

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 16
Compiladores - Profr. Edgardo Adrin Franco Martnez

Autmata finito
Los autmatas finitos reconocen los lenguajes regulares,
o de tipo 3 y se pueden representar intuitivamente por una
cinta y una cabeza de lectura.
La cinta de entrada, slo contiene
smbolos de un determinado alfabeto, y se
mueve en una slo direccin.

El control de estados, determina el


funcionamiento del autmata.

Una sentencia de un lenguaje


determinado, colocada en la cinta, y leda
por el autmata finito, es reconocida por
ste, si el control de estados llega a un
Compiladores
estado final.
(Anlisis Lxico III - Edgardo A. Franco)
09 Anlisis lxico V 17
Compiladores - Profr. Edgardo Adrin Franco Martnez

Definicin formal de autmata finito

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 18
Compiladores - Profr. Edgardo Adrin Franco Martnez

Definicin formal de autmata finito

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 19
Compiladores - Profr. Edgardo Adrin Franco Martnez

Lenguaje reconocido por un autmata


finito
Cuando un autmata transita a una configuracin final partiendo de
la configuracin inicial, en varios movimientos, se dice que se ha
producido aceptacin o reconocimiento de la cadena de entrada. Es
decir que dicha cadena, pertenece al lenguaje reconocido por el
autmata.

Por el contrario, cuando el autmata finito no es capaz de llegar a un


estado final, se dice que el autmata no reconoce dicha cadena y que
por tanto no pertenece al lenguaje.

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 20
Compiladores - Profr. Edgardo Adrin Franco Martnez

Lenguaje reconocido por un autmata


finito
Para toda gramtica regular "G3", existe un autmata finito "AF",
tal que el lenguaje reconocido por el autmata finito es igual al
lenguaje generado por la gramtica.

La forma habitual de representar los autmatas finitos es mediante


un grafo o diagrama de estados, donde los nodos son los estados y
las ramas estn marcadas con los smbolos del alfabeto de entrada.
Las ramas se construyen segn la funcin de transicin, as debe de
cumplir .

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 21
Compiladores - Profr. Edgardo Adrin Franco Martnez

Lenguaje reconocido por un autmata


finito
Los nodos que representan los estados finales, suelen marcarse con
un doble crculo, y el estado inicial tambin se marca con una flecha,
encima de la cual se coloca la palabra INICIO.

INICIO
abc *

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 22
Compiladores - Profr. Edgardo Adrin Franco Martnez

Ejemplo 01

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 23
Compiladores - Profr. Edgardo Adrin Franco Martnez

Ejemplo 01: Solucin


Solucin: Se construye el diagrama de Moore, colocando en primer
lugar todos los estados dentro de crculos, marcando con doble
crculo el estado final. El estado inicial se indica con una flecha que
lo seala con la palabra INICIO encima. Para construir las ramas, nos
situamos en el primer estado de la tabla de transiciones y se observa
que f(q1,a)=q2, entonces se traza una flecha entre q1 y q2, apuntando
a q2, y se coloca encima de la flecha el smbolo del vocabulario de
entrada a. De igual forma se recorre la tabla de transiciones para cada
estado y entrada completndose el diagrama de Moore.

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 24
Compiladores - Profr. Edgardo Adrin Franco Martnez 24

Ejemplo 01: Lenguaje reconocido


por un autmata finito

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 25
Compiladores - Profr. Edgardo Adrin Franco Martnez 25

Ejemplo 02
Los identificadores de C son cadenas de letras, dgitos y guiones
bajos.

letra_ -> [A-Za- z_]


dgito -> [0-9]
id -> letra_ ( letra_ | dgito)*

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 26
Compiladores - Profr. Edgardo Adrin Franco Martnez

Ejemplo 02: Solucin


Solucin : Este ejemplo es inverso al anterior, pues se da un
lenguaje y se pide el autmata que lo reconoce. En primer lugar se
construye un diagrama de Moore, de tal forma que a partir del
estado inicial, despus de leer una letra, acepte letras o dgitos de
forma variable, y cuando encuentre un carcter diferente de letra o
dgito alcance el estado final. El diagrama de Moore es el que se
muestra en la figura.

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 27
Compiladores - Profr. Edgardo Adrin Franco Martnez

Ejemplo 02: Solucin


$ representa a el fin de la cadena

El autmata finito se deduce del diagrama de estaos y es el siguiente:

donde f se define por :

Compiladores (Anlisis Lxico III - Edgardo A. Franco)


09 Anlisis lxico V 28
Compiladores - Profr. Edgardo Adrin Franco Martnez

Mapas Conceptuales 01 y 02
La fecha mxima de entrega de los mapas es el
domingo 27 de Febrero de 2011 a las 23:59:59 hrs.

Mapa conceptual 01: De las clases 02 y 03


Mapa conceptual 02: De las clases 05 a la 09
Si deber de incluir encabezados en cada mapa.
Recomendacin usar CmapTools
Enviar separados con el nombre:
MapaConceptual0x_NombreAlumno.pdf
09 Anlisis lxico V 29
Compiladores - Profr. Edgardo Adrin Franco Martnez

Caractersticas de un mapa
conceptual
Jerarquizacin: Se refiere a la ordenacin de los conceptos ms generales e
inclusivos en la parte superior o central y mediante una diferenciacin progresiva,
estn incluidos los conceptos ms especficos.

Impacto visual: Debe considerar la limpieza, espacios, claridad, ortografa para


reducir confusiones y amontonamientos, por ello es conveniente dibujarlos varias
veces ya que el primer mapa que se construye tiene siempre, casi con toda
seguridad algn defecto. Tambin se recomienda usar valos ya que son ms
agradables a la vista que los tringulos y los cuadrados.

Simplificacin: Se refiere a la seleccin de los conceptos ms importantes,


haciendo una diferenciacin del contenido y localizando la informacin central de
la que no lo es para una mejor comprensin y elaboracin de un contenido. Los
conceptos, al ir relacionndose por medio de las palabras enlace, se van
almacenando en la mente de modo organizado y jerrquico de manera que sern
ms fcilmente comprendidos.
Tipo abstracto de datos (Edgardo A. Franco) 29
09 Anlisis lxico V 30
Compiladores - Profr. Edgardo Adrin Franco Martnez

Ejemplo

Tipo abstracto de datos (Edgardo A. Franco) 30

Você também pode gostar