Vous êtes sur la page 1sur 9

Compiladores.

Gua N 2
Facultad: Ingeniera Escuela: Sistemas, Informtica Asignatura: Compiladores

Tema: Autmata de Estado Finito


Contenido:
En esta gua se aborda la aplicacin de los autmatas en el campo de los procesadores de lenguaje, haciendo nfasis en los Autmatas de Estado Finito.

Objetivos Especficos:
Conocer las caractersticas bsicas de un Autmata de Estado Finito. Crear algunas secuencias de cadenas evaluadas por un Autmata Finito en Jflap.

Material y Equipo:
Gua No 2. El simulador Jflap

Introduccin Terica Aplicacin de los autmatas en los procesadores de lenguaje


La Tarea de comprobar si una sentencia pertenece o no a un determinado lenguaje se encomienda a los autmatas. En el campo de estudio de los traductores, compiladores, procesadores e intrpretes los autmatas se utilizan como reconocedores de lenguajes, que dada una cadena de smbolos indican si dicha cadena pertenece o no al lenguaje. Una cadena pertenece a un lenguaje si el autmata reconocedor de dicho lenguaje lo toma como entrada, y partiendo del estado inicial transita a travs de varias configuraciones hasta que alcanza el estado final.

Autmatas finitos
Un autmata finito es un conjunto de nodos y aristas que representan trayectorias para generar una expresin bajo un alfabeto. Un diagrama de transicin es un autmata finito. Existen dos tipos autmatas finitos, los cuales son: Autmatas finitos deterministas (AFD) Autmatas finitos no deterministas (AFND)
1

Ing. Carlos Enrique Chinga Ramos

Compiladores. Gua N 2 Autmatas finitos deterministas (AFD)


Definicin. Una mquina de estados finitos M es un quntuplo (K, , , s, F), donde: K es conjuntos de estados. es el alfabeto de entrada. : K X K, es la funcin de transicin, que a partir de un estado y un smbolo del alfabeto obtiene un nuevo estado. s K es el estado inicial. F K es un conjunto de estados finales. : K X K, es la funcin de transicin, que a partir de un estado y un smbolo del alfabeto obtiene un nuevo estado. Ejemplo:

Figura 1. Autmata Finito Determinista Este autmata finito determinista puede ser expresado formalmente como: M = (K, , , q0, F) K = {q0, q1, q2} = {a, b} = {((q0, a), q1), ((q0, b), q2), ((q1, a), q1), ((q1, b), q1), ((q2, a), q0), ((q2, b), q2)} F = { q1, q2 }

Ing. Carlos Enrique Chinga Ramos

Compiladores. Gua N 2 IMPORTANTE: Para que un AFD sea vlido, el nmero de transiciones que salen de cada
estado debe ser igual a la cantidad de caracteres del alfabeto, puesto que es una funcin que est definida para todas las entradas posibles. Para el AFD anterior, el alfabeto es {a, b} de cada estado deben salir exactamente dos transiciones, una con a y otra con b. Otra condicin es que debe tener exactamente un estado inicial. En cambio, la cantidad de estados finales puede ser cualquiera, inclusive cero, hasta un mximo de |K| (la cantidad de estados).

Autmatas finitos no deterministas (AFND)


Una extensin de los AFDS es la de permitir que de cada estado o nodo del diagrama de estados salga un nmero de flechas mayor o menor que ||. As se puede permitir que falte la flecha correspondiente a alguno de los smbolos del alfabeto, o bien que haya varias flechas que salgan de un solo nodo con la misma etiqueta. Inclusive se permite que las transiciones tengan como etiqueta palabras de varias letras o hasta la palabra vaca. Definicin. Un autmata finito no determinista es un quntuplo (K, , , s, F), donde K, , s y F tienen el mismo significado para el caso de los AFD y , llamada la relacin de transicin, es un subconjunto finito K X * X K. Ejemplo. Verificar si la palabra baabbaba es aceptada por el autmata finito no determinista siguiente:

Figura 2. Autmata Finito No Determinista Solucin. La palabra baabbaba puede ser dividida en cuatro pedazos: p1 = b, p2 = a, p3 = abbab y p4 = a, cuya concatenacin produce la palabra original. Ahora bien, podemos seguir la siguiente secuencia de estados (trayectoria) en el AFND dado:

Ing. Carlos Enrique Chinga Ramos

Compiladores. Gua N 2

Procedimiento
Los autmatas finitos se pueden utilizar para reconocer las expresiones regulares asociadas a los componentes lxicos en los lenguajes de programacin.

PARTE I. (Simulacin de un autmata de estado finito en Jflap).


Se desea construir una gramtica que describe el lenguaje formado por los identificadores de un lenguaje de programacin. Los identificadores de este lenguaje pueden estar formados por las tres primeras letras minsculas (a,b,c) y el guion bajo(_). Sin embargo, un identificador no puede comenzar por un guion bajo(_). Crearemos un autmata para validar los identificadores de este lenguaje Ingrese al Jflap (su instructor le indicar la ubicacin para acceder a este aplicativo). Una vez cargada la aplicacin se le mostrar la siguiente ventana:

Figura 3. Pantalla de inicio de Jflap

Ing. Carlos Enrique Chinga Ramos

Compiladores. Gua N 2

Presione el botn Finite Automaton y se deber cargar la siguiente ventana:

Figura 4. Ventana de edicin de un AF en Jflap Cree el diagrama de la figura 5 en base a la siguiente ayuda: Primero seleccione de la barra de men la operacin a realizar, por ejemplo: Para crear estados El circulo . , la otra flecha que apunta hacia la

La flecha con punta rellena es para seleccionar

derecha es para indicar las transiciones, tiene que crear las que sean necesarias o indicadas en su autmata. Para crear una transicin de un estado hacia el mismo, ubquese en el estado y haga un doble clic. Y la calavera es para eliminar
Ing. Carlos Enrique Chinga Ramos 5

Compiladores. Gua N 2

Figura 5. Creacin del AF, parte 1/3 Luego de haber agregado los estados, es el momento de indicar cul es el estado inicial y final, para ello debe estar en modo seleccin, luego clic derecho del mouse sobre el estado y observar el siguiente submen:

Figura 6. Creacin del AF, parte


Ing. Carlos Enrique Chinga Ramos 6

Compiladores. Gua N 2
Defina el estado q0 como estado inicial y q1 como estado de aceptacin. El diagrama debe verse ms o menos de la siguiente forma:

Figura 7. Creacin del AF, parte 3/3 Para probar el autmata, seleccione Step by State del men Input para evaluar carcter por carcter de la cadena digitada.

Figura 8. Evaluacin de una cadena por el AF, parte 1/3


Ing. Carlos Enrique Chinga Ramos 7

Compiladores. Gua N 2
Digite la cadena:

Figura 9. Evaluacin de una cadena por el AF, parte 2/3 Presione Aceptar para analizar la cadena de estado a estado (carcter por carcter). El resultado es la siguiente ventana, donde debe dar clic sobre el botn Step para ir observando paso a paso la ejecucin del autmata.

Figura 9. Evaluacin de una cadena por el AF, parte 3/3 Evalu las siguientes cadenas en el autmata creado y marque con una X las que son aceptadas por este:

Ing. Carlos Enrique Chinga Ramos

Compiladores. Gua N 2
Ejercicios: 1. Verificar si el siguiente AFD es vlido para las siguientes palabras

a) aaa b) abab c) aaaaa 2. Realizar el Grfico del siguiente enunciado: {w {a,b} * | w : waba}

3. Realizar el Grfico del siguiente enunciado: {w {a,b} * | w : waaa}

4. Realizar el Grfico del siguiente enunciado: {w {a,b} * | w : waab}

Ing. Carlos Enrique Chinga Ramos

Vous aimerez peut-être aussi