Académique Documents
Professionnel Documents
Culture Documents
Gua N 2
Facultad: Ingeniera Escuela: Sistemas, Informtica Asignatura: Compiladores
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
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
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 }
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).
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:
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.
Compiladores. Gua N 2
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
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:
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.
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:
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}