SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Java Formal Languages and Automata Package
Herramienta visual e interactiva
Construir, probar y depurar:
AFDs y AFNs
Expresiones regulares
Lenguajes
Máquinas de Turing
Gramáticas
Y mucho más!!!
Comenzó en 1990 como varias herramientas
Susan H. Rodger
ꜛ NPDA
LR Parser 
LL Analizator
Tubb
En 1996 FLAP fue rescrito en Java en la Universidad de Duke
En 2002 fue rescrita de nuevo utilizando Swing
Se utiliza en 161 países diferentes
Añadir
transición a
los estados
Marcar los
estados
inicial y final
Crear los
estados
Ejecución paso a paso
Ejecución paso a paso con cierre
Ejecución rápida
Ejecución múltiple
Ejecución múltiple como transductor
Pulsamos
Step
Volvemos a
pulsar Step
No ha quedado
en estado de
aceptación
El verde
significa
que ha
quedado en
estado de
aceptación
Escribimos
la entrada
y si es
válida nos
muestra
los
estados
Pulsar
en Keep
Looking
Seleccionamos,
pulsamos en Run inputs
y después en View
Trace
Simulación por fuerza bruta
y ver el árbol creado
Saber su tipoIntroducir
una gramática
Convertir a AFN
AFλAFDAFN
Elegimos el autómata con el
que lo queremos comparar
Elegimos Compare
EquivalencePulsamos Test
Utilizando JFLAP, dada la siguiente expresión regular:
(a+b+c)*baba(a+b+c)*
Decir a qué lenguaje pertenece
Convertimos la
expresión a un
AFN y hacemos
una ejecución
múltiple
Comprobamos
que corresponde
a todas las
cadenas que
contiene “baba”
Obtener un AFN que acepte
la gramática definida por
dicha expresión regular.
Obtener un AFλ que acepte
la gramática definida por
dicha expresión regular.
Obtener un AFD que acepte
la gramática definida por
dicha expresión regular.
Ya lo teníamos
del ejercicio
anterior
Pulsamos a convertir a
AFD y comprobamos
que no haya transiciones
λ
Añadimos dos
estados y los
unimos al inicial
con transiciones λ
Decidir si los autómatas
anteriores son
equivalentes
Decidir si es equivalente a la siguiente gramática
Los comparamos
dos a dos
J  baba J  a
K  λ J  b
J  c K  J
Convertir
a un FA
Lo comparamos
con uno de los
que ya habíamos
creado
Dibujar una máquina de Turing de una sola cinta que solo quede en estado de
aceptación si el número de unos es par teniendo como alfabeto de entrada Σ = {0,
1} y como alfabeto de cinta Γ = {0, 1, □}
Si estamos en
“q0” hay un
número par de
unos
Dibujar una máquina de Turing de una sola cinta cuyo alfabeto de entrada sea
Σ = {0, 1}, cuyo alfabeto de cinta sea Γ = {0, 1, □} y que solo acepte cadenas de
unos seguidos de ceros, excluyendo la cadena vacía.
q0
acepta
unos
q1
acepta
ceros
q2 es necesario porque
sino la máquina cuando
leyera un cero quedaría
en estado de aceptación
y se pararía
Modelar una máquina de Turing compuesta por bloques formados por las
máquinas de los apartados b) y c).
Nos fijaremos en que la
máquina de Turing del
apartado c) solo acepta
cadenas que empiecen
por 1, por tanto esta
será la transición que
nos servirá para unir los
dos bloques del
autómata compuesto
Importamos las dos
máquinas
Utilizando JFLAP, diseñar una máquina de Turing que solo acepte
palíndromos en binario mayores que 0 y que calcule si el número de unos
de su sucesor en binario es par o impar imprimiendo el resultado con la
forma “número de unos en unario”+”blanco”+ “PAR” o “IMPAR”, por ejemplo
“11111□IMPAR” o “111111□PAR”.
Lo dividimos en 4
bloques!!!!
Transiciones
con 1
Leerá el primer carácter de la
entrada
Recorrerá la cadena hasta el
final
Comprobará si el último es el
mismo carácter que el ya leído
Sustituirá ambos por un blanco
Terminará cuando la cinta solo
tenga blancos
Bloque q0  Palíndromos
Si termina en 0  cambio el 0
por 1 y termino
Si termina en 1  cambio todos
los unos por ceros hasta encontrar
un cero, que cambio por un 1 y
termino
Bloque q1  Número siguiente en binario
Recorreremos la cadena hasta
llegar a un 0, que cambiamos por X
Seguimos leyendo ceros hasta
encontrar otro 1, que cambiamos por
un 0
Sustituimos la X que por un 1
Cuando no haya más unos en la
cadena a la derecha del control finito,
sustituimos todos los ceros por
blancos
Bloque q2  Eliminación de ceros
q0 representa un número par de
unos
q1 representa un número impar de
unos
Cuando se termina la cadena se
imprime el resultado
Bloque q3  ¿Número de unos impar?
Lo unimos todo!!!!
Como es un
palíndromo pasa a q1,
de lo contrario se
quedaría en q0
En q1 ya ha calculado
el sucesor, que es el
número que aparece
en la cinta
En q2 ha quitado los
ceros existentes en el
número calculado por
q1, dejando el
resultado en la cinta
en la cinta
En q3 ha comprabado si
el número de unos es
par y ha impreso el
resultado, dejando la
cinta en la forma pedida
en el enunciado
Utilizando JFLAP, diseñar una máquina de Turing compuesta por un
bloque, que con varias cintas compruebe si la cadena de entrada es del tipo
AnBnCn tal que n>0, y por otro que la duplique. El resultado final debe tener
la forma AnBnCnAnBnCn, o dicho de otra manera (AnBnCn)2
Entrada y C’s
Copiar B’s
Copiar A’s
Marcar el final de la cinta con Y
Marcar el carácter leído con X
Copiarlo en el primer espacio en
blanco
Cuando nos volvamos a encontrar
la Y, copiar el primer carácter en su
lugar
Unimos la máquina AnBnCn con la que copia
Pasa de q0 a q1
porque el
número de As,
Bs y Cs es igual
Una vez que ha
terminado la
ejecución de q2,
la cadena de
entrada queda
duplicada en la
cinta
Presentación tutorial JFLAP en español

Weitere ähnliche Inhalte

Was ist angesagt?

Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turingJesus David
 
2. context free langauages
2. context free langauages2. context free langauages
2. context free langauagesdanhumble
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.Emmanuel Colon
 
Máquinas de Turing
Máquinas de TuringMáquinas de Turing
Máquinas de TuringTania Arroyo
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosRosviannis Barreiro
 
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de TuringPortafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de TuringHumano Terricola
 
Lema de bombeo
Lema de bombeoLema de bombeo
Lema de bombeoOmega Tech
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas yelizabeth_20
 
Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...
Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...
Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...Don_Francisco
 
Máquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesMáquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesRosviannis Barreiro
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
Autómata de pila (AP)
Autómata de pila (AP)Autómata de pila (AP)
Autómata de pila (AP)Rodrigo GC
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajesJean Bernard
 
Modelos de estados
Modelos de estadosModelos de estados
Modelos de estadosFaubricio
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Tipos de autómatas
Tipos de autómatasTipos de autómatas
Tipos de autómatasCesar Garcia
 

Was ist angesagt? (20)

Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turing
 
2. context free langauages
2. context free langauages2. context free langauages
2. context free langauages
 
La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.La maquina de Turing, sus tipos y aplicaciones.
La maquina de Turing, sus tipos y aplicaciones.
 
Máquinas de Turing
Máquinas de TuringMáquinas de Turing
Máquinas de Turing
 
Automatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No DeterministicosAutomatas Finitos Deterministicos y No Deterministicos
Automatas Finitos Deterministicos y No Deterministicos
 
Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 
NFA to DFA
NFA to DFANFA to DFA
NFA to DFA
 
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de TuringPortafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
 
Lema de bombeo
Lema de bombeoLema de bombeo
Lema de bombeo
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 
Tipos de Autómatas 
Tipos de Autómatas Tipos de Autómatas 
Tipos de Autómatas 
 
Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...
Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...
Automata Finito No Determinista - Francisco Torvisco 11-0402 & Jose Raul Nova...
 
Máquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y AplicacionesMáquinas de Turing - Tipos y Aplicaciones
Máquinas de Turing - Tipos y Aplicaciones
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Autómata de pila (AP)
Autómata de pila (AP)Autómata de pila (AP)
Autómata de pila (AP)
 
Operaciones entre lenguajes
Operaciones entre lenguajesOperaciones entre lenguajes
Operaciones entre lenguajes
 
Modelos de estados
Modelos de estadosModelos de estados
Modelos de estados
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Tipos de autómatas
Tipos de autómatasTipos de autómatas
Tipos de autómatas
 
Manual allegro c++
Manual allegro c++Manual allegro c++
Manual allegro c++
 

Ähnlich wie Presentación tutorial JFLAP en español

Desarrollo momento 3
Desarrollo momento 3Desarrollo momento 3
Desarrollo momento 3Jose Rojas
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turingIvan
 
Examen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesExamen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesDiego Perdomo
 
Automatas
AutomatasAutomatas
Automatasveriyo
 
348327107-Presentacion-Maquinas-de-Turing.pptx
348327107-Presentacion-Maquinas-de-Turing.pptx348327107-Presentacion-Maquinas-de-Turing.pptx
348327107-Presentacion-Maquinas-de-Turing.pptxLuis Miguel Torres Barrios
 
Manual Practico de Pascal
Manual Practico de PascalManual Practico de Pascal
Manual Practico de Pascalapohlo
 
Reny galaviz web quest
Reny galaviz web questReny galaviz web quest
Reny galaviz web questReny-Galaviz
 
Reny Galaviz Web Quest
Reny Galaviz Web QuestReny Galaviz Web Quest
Reny Galaviz Web QuestReny-Galaviz
 
Teoria de Conjuntos
Teoria de Conjuntos Teoria de Conjuntos
Teoria de Conjuntos Asu RaGu
 
Trabajo colaborativo 1
Trabajo colaborativo 1Trabajo colaborativo 1
Trabajo colaborativo 1anarojasparra
 
Manual De Pascal
Manual De PascalManual De Pascal
Manual De PascalMANUELRSG
 
33col2301405 121126110801-phpapp02
33col2301405 121126110801-phpapp0233col2301405 121126110801-phpapp02
33col2301405 121126110801-phpapp02nayis_bonillav
 

Ähnlich wie Presentación tutorial JFLAP en español (20)

Evaluación
EvaluaciónEvaluación
Evaluación
 
Desarrollo momento 3
Desarrollo momento 3Desarrollo momento 3
Desarrollo momento 3
 
Mod auto 4
Mod auto 4Mod auto 4
Mod auto 4
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turing
 
Examen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesExamen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes Formales
 
1 ejercicio mt.
1 ejercicio mt.1 ejercicio mt.
1 ejercicio mt.
 
Automatas
AutomatasAutomatas
Automatas
 
Modu saya 4
Modu saya 4Modu saya 4
Modu saya 4
 
Mod auto 4
Mod auto 4Mod auto 4
Mod auto 4
 
348327107-Presentacion-Maquinas-de-Turing.pptx
348327107-Presentacion-Maquinas-de-Turing.pptx348327107-Presentacion-Maquinas-de-Turing.pptx
348327107-Presentacion-Maquinas-de-Turing.pptx
 
Manual Practico de Pascal
Manual Practico de PascalManual Practico de Pascal
Manual Practico de Pascal
 
Modulo2b
Modulo2bModulo2b
Modulo2b
 
Reny galaviz web quest
Reny galaviz web questReny galaviz web quest
Reny galaviz web quest
 
Reny Galaviz Web Quest
Reny Galaviz Web QuestReny Galaviz Web Quest
Reny Galaviz Web Quest
 
Teoria de Conjuntos
Teoria de Conjuntos Teoria de Conjuntos
Teoria de Conjuntos
 
Maquina de turing
Maquina de turingMaquina de turing
Maquina de turing
 
Trabajo colaborativo 1
Trabajo colaborativo 1Trabajo colaborativo 1
Trabajo colaborativo 1
 
Manual De Pascal
Manual De PascalManual De Pascal
Manual De Pascal
 
33col2301405 121126110801-phpapp02
33col2301405 121126110801-phpapp0233col2301405 121126110801-phpapp02
33col2301405 121126110801-phpapp02
 
Máquinas que comen máquinas
Máquinas que comen máquinasMáquinas que comen máquinas
Máquinas que comen máquinas
 

Presentación tutorial JFLAP en español

  • 1.
  • 2. Java Formal Languages and Automata Package Herramienta visual e interactiva Construir, probar y depurar: AFDs y AFNs Expresiones regulares Lenguajes Máquinas de Turing Gramáticas Y mucho más!!!
  • 3.
  • 4. Comenzó en 1990 como varias herramientas Susan H. Rodger ꜛ NPDA LR Parser  LL Analizator Tubb
  • 5. En 1996 FLAP fue rescrito en Java en la Universidad de Duke En 2002 fue rescrita de nuevo utilizando Swing Se utiliza en 161 países diferentes
  • 6. Añadir transición a los estados Marcar los estados inicial y final Crear los estados
  • 7. Ejecución paso a paso Ejecución paso a paso con cierre Ejecución rápida Ejecución múltiple Ejecución múltiple como transductor
  • 8. Pulsamos Step Volvemos a pulsar Step No ha quedado en estado de aceptación El verde significa que ha quedado en estado de aceptación
  • 9. Escribimos la entrada y si es válida nos muestra los estados Pulsar en Keep Looking
  • 10. Seleccionamos, pulsamos en Run inputs y después en View Trace
  • 11. Simulación por fuerza bruta y ver el árbol creado Saber su tipoIntroducir una gramática
  • 13. AFλAFDAFN Elegimos el autómata con el que lo queremos comparar Elegimos Compare EquivalencePulsamos Test
  • 14. Utilizando JFLAP, dada la siguiente expresión regular: (a+b+c)*baba(a+b+c)* Decir a qué lenguaje pertenece Convertimos la expresión a un AFN y hacemos una ejecución múltiple Comprobamos que corresponde a todas las cadenas que contiene “baba”
  • 15. Obtener un AFN que acepte la gramática definida por dicha expresión regular. Obtener un AFλ que acepte la gramática definida por dicha expresión regular. Obtener un AFD que acepte la gramática definida por dicha expresión regular. Ya lo teníamos del ejercicio anterior Pulsamos a convertir a AFD y comprobamos que no haya transiciones λ Añadimos dos estados y los unimos al inicial con transiciones λ
  • 16. Decidir si los autómatas anteriores son equivalentes Decidir si es equivalente a la siguiente gramática Los comparamos dos a dos J  baba J  a K  λ J  b J  c K  J Convertir a un FA Lo comparamos con uno de los que ya habíamos creado
  • 17. Dibujar una máquina de Turing de una sola cinta que solo quede en estado de aceptación si el número de unos es par teniendo como alfabeto de entrada Σ = {0, 1} y como alfabeto de cinta Γ = {0, 1, □} Si estamos en “q0” hay un número par de unos
  • 18. Dibujar una máquina de Turing de una sola cinta cuyo alfabeto de entrada sea Σ = {0, 1}, cuyo alfabeto de cinta sea Γ = {0, 1, □} y que solo acepte cadenas de unos seguidos de ceros, excluyendo la cadena vacía. q0 acepta unos q1 acepta ceros q2 es necesario porque sino la máquina cuando leyera un cero quedaría en estado de aceptación y se pararía
  • 19. Modelar una máquina de Turing compuesta por bloques formados por las máquinas de los apartados b) y c). Nos fijaremos en que la máquina de Turing del apartado c) solo acepta cadenas que empiecen por 1, por tanto esta será la transición que nos servirá para unir los dos bloques del autómata compuesto Importamos las dos máquinas
  • 20. Utilizando JFLAP, diseñar una máquina de Turing que solo acepte palíndromos en binario mayores que 0 y que calcule si el número de unos de su sucesor en binario es par o impar imprimiendo el resultado con la forma “número de unos en unario”+”blanco”+ “PAR” o “IMPAR”, por ejemplo “11111□IMPAR” o “111111□PAR”. Lo dividimos en 4 bloques!!!! Transiciones con 1
  • 21. Leerá el primer carácter de la entrada Recorrerá la cadena hasta el final Comprobará si el último es el mismo carácter que el ya leído Sustituirá ambos por un blanco Terminará cuando la cinta solo tenga blancos Bloque q0  Palíndromos
  • 22. Si termina en 0  cambio el 0 por 1 y termino Si termina en 1  cambio todos los unos por ceros hasta encontrar un cero, que cambio por un 1 y termino Bloque q1  Número siguiente en binario
  • 23. Recorreremos la cadena hasta llegar a un 0, que cambiamos por X Seguimos leyendo ceros hasta encontrar otro 1, que cambiamos por un 0 Sustituimos la X que por un 1 Cuando no haya más unos en la cadena a la derecha del control finito, sustituimos todos los ceros por blancos Bloque q2  Eliminación de ceros
  • 24. q0 representa un número par de unos q1 representa un número impar de unos Cuando se termina la cadena se imprime el resultado Bloque q3  ¿Número de unos impar?
  • 25. Lo unimos todo!!!! Como es un palíndromo pasa a q1, de lo contrario se quedaría en q0 En q1 ya ha calculado el sucesor, que es el número que aparece en la cinta En q2 ha quitado los ceros existentes en el número calculado por q1, dejando el resultado en la cinta en la cinta En q3 ha comprabado si el número de unos es par y ha impreso el resultado, dejando la cinta en la forma pedida en el enunciado
  • 26. Utilizando JFLAP, diseñar una máquina de Turing compuesta por un bloque, que con varias cintas compruebe si la cadena de entrada es del tipo AnBnCn tal que n>0, y por otro que la duplique. El resultado final debe tener la forma AnBnCnAnBnCn, o dicho de otra manera (AnBnCn)2 Entrada y C’s Copiar B’s Copiar A’s
  • 27. Marcar el final de la cinta con Y Marcar el carácter leído con X Copiarlo en el primer espacio en blanco Cuando nos volvamos a encontrar la Y, copiar el primer carácter en su lugar
  • 28. Unimos la máquina AnBnCn con la que copia Pasa de q0 a q1 porque el número de As, Bs y Cs es igual Una vez que ha terminado la ejecución de q2, la cadena de entrada queda duplicada en la cinta