Vous êtes sur la page 1sur 9

Guía de Laboratorio en Jflap

Unidad II: Lenguajes Regulares

Expresiones Regulares, Autómatas Finitos y Gramáticas

1.-Encuentra el AFD mínimo que reconoce el lenguaje representado por la expresión


regular (RegEx) siguiente (00+10*1+λ)*(1+00)

En JFlap escogemos la opción de expresión regular

Introducimos la expresión regular en el cuadro de dialogo

Seleccionamos la opción Convert to NFA del menu convert para convertir una expresión
regular en un autómata finito no determinista lo que nos creara el siguiente AFND
Convertimos el AFND en un AFD usando la opción “Convert to DFA” del menú Convert
Como último paso debemos minimizar el autómata finito determinista la opción para
realizar la minimización se encuentre en el menú Convert en la opción minimize DFA

2.-Encuentra el AFD mínimo que reconoce el lenguaje representado por la siguiente


gramática, y comprueba si es equivalente al del ejercicio anterior

S → 0A
S → 1C
D → 1C
B → 0B
C → 1S
D → 0A
A → 0D
C → 0B
B → 1S
S →1
D→1
A→0
Introducimos la gramática en JFlap

Pinchamos en Convert –> Convert Right Lineal Grammar to FA nos aparece una ventana
donde introducimos la siguiente secuencia Show all -> Done? –> Export
Aparece una nueva Ventana con el FA generado

Seleccionamos el menu test -> compare equivalence –> seleccionamos el AFD minimo del
apartado anterior

son equivalentes
3.-Encuentra una expresión regular y una gramática para el lenguaje reconocido por
el autómata siguiente

para convertir el autómata en una expresión regular seleccionamos la opción “convert FA


to RE” del menú “convert” que nos obligara a añadir un estado final que no sea inicial
quedando de la siguiente forma

Pinchamos en el botón “Do It” hasta que realice todos los pasos necesarios para la
conversión informándonos en este punto con un mensaje con el siguiente text “You’re
done. Go away.” momento en el que pincharemos en export que nos mostrara la expresión
regular en una nueva ventana.
(b(ab)*+(a+b(ab)*(b+aa))(ba+(a+bb)(ab)*(b+aa))*(a+bb)(ab)*)*

Para convertir el autómata en una gramática en la ventana del autómata seleccionamos


“Convert to Grammar” en el menú “Convert” y presionamos repetidamente el botón
“Hint” repetidas veces hasta que genere la gramática

Una vez generada la gramática solo resta pulsar en el botón Export que abrirá una nueva
ventana con la gramática

4.-Comprueba que el autómata anterior es equivalente a la siguiente Expresión Regular


((aa+b)(ba)*(a+bb+λ)+ab)*(aa+b)(ba)*+λ
JFlap no puede compara equivalencia entre expresiones regulares por lo tanto debemos
transformar la expresión regular en un autómata para eso creamos una nueva expresión
regular en JFlap

una vez insertada la expresión regular seleccionamos la opción “Convert to NFA” del
menú “Convert”

Una vez generado el AFND solo necesitamos comprobar la equivalencia en el menú “Test”
-> “Compare Equivalence” que nos dirá que son equivalentes, en este caso son equivalentes

Vous aimerez peut-être aussi