Diferencias Entre Thoth y Jflap

Embed Size (px)

Citation preview

UNIVERSIDAD NACIONAL DEL ALTIPLANO INGENIERA DE SISTEMAS

TRABAJO ENCARGADO: HERRAMIENTAS PARA SIMULACIN DE AUTOMATAS. ESTUDIANTE: - CHUPA QUISPE, Elmer Ramiro

PUNO PERU 2012

DIFERENCIAS ENTRE THOTH Y JFLAP Ventajas del thoth Vista de la tabla de transicin Se puede hacer la equivalencia de autmatas Se pude eliminar un AFND de manera rpida del diagrama del autmata finito. Obtencin regulares Se puede validar si la cadena o palabra pertenece al autmata y poder ver los pasos que se de expresiones Ventajas de jflap permite convertir un autmata finito diagramado, en un autmata finito determinista conversin de un diagrama a un AFD experimentacin en otros lenguajes formales como pushdown autmata no determinista, maquina multi-cinta de turing. Se puede validar si la cadena o palabra pertenece al autmata y poder ver los pasos que se siguieron para su obtencin. Posibilidad de guardar en distintos formatos de imagen.

siguieron para su obtencin. Mens llamativos al usuario Facilidad de uso de los iconos en interface Desventajas de thoth

Desventajas de jflap No se puede verificar si una cadena o palabra pertenece a un diagrama de autmata finito.

imagen

imagen

AUTOMATA FINITO (PARTE I) 1. Obtener la expresin regular que representa al lenguaje formado por todos las cadenas sobre {a,b} que tiene un numero par de bes, construir un diagrama de transicin para ese lenguaje. Solucin: a*b(ba*b)*ba*

2. Construir el diagrama de transicin para el lenguaje dada por c*(a U bc*)*, convertir el diagrama en una funcin asociada al AFD etiquetando los estados. Solucin:

a 1 2 2 2

b 1 1

C 1 -

3. Sea M={Q,,s,F,} Q= {q0, q1, q2, q3} = {1,2} F= {q0} s= q0

Analice: 110101 011101 111011 011011

AUTOMATA FINITO (PARTE II) 1. Nombre de variable.

Diagrama de transiciones:

Tabla de transiciones:

l 1 2 3 3 3

D 2 (error) 3

Pseudocodigo: Estado=1 Lee(entrada) Mientras(no fin de cadena) Case(estado) 1 :si(simbolo=letra) Estado=3 sino si (simbolo=digito) Estado=2 Sino salir(error no reconocido) 2 : salir(error no reconocido) 3 : si(simbolo=letra) Estado=3 Sino si(simbolo=digito) Leer(siguiente simbolo) Si Estado diferente 1, 2, 3 salir(error no reconocido) Estado=3 Sino salir(error no reconocido)

2. Nmero real.

D Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q1 Q1 Q3 Q3

+

-

E

.

Q4

Q2

Q4 Q5

Q6(error) Q5 Q6 Q6

Pseudocdigo: Estado= q0 Lee(entrada)

Mientras(no fin de cadena) Case(estado) q0 : q1 : si(simbolo=d) Estado= q1 Sino salir(error no reconocido) si(simbolo=d) Estado= q1 Sino si(simbolo=.) Estado= q2 Sino si(simbolo=e) Estado= q4 Sino salir(error no reconocido) q2 : q3 : q4 : si(simbolo=d) Estado= q3 Sino salir(error no reconocido) si(simbolo=e) Estado= q4 Sino salir(error no reconocido) si(simbolo=-) Estado= q5 Sino si(simbolo=+) Estado= q5 Sino si(simbolo=d) Estado= q6 Sino salir(error no reconocido) q5 : q6 : si(simbolo=d) Estado= q6 Sino salir(error no reconocido) si(simbolo=d) Estado= q6 Sino salir(error no reconocido) Leer(siguiente simbolo) Si Estado diferente q0, q1, q2, q3, q4, q5, q6 salir(error no reconocido) 3. Disear un diagrama de transiciones para reconocer expresiones aritmticas de longitud arbitraria que comprenden enteros positivos separados por signos de suma, resta, multiplicacin o divisin. Solucin:

d Q0 Q1 Q2 Q0 Q0, Q2

* Q1

+ Q1

Q1

/ Q1

Pseudocdigo: Estado= q0 Lee(entrada) Mientras(no fin de cadena)

Case(estado) q0 : si(simbolo=d) Estado= q0 Sino si (smbolo=* o smbolo=+ smbolo=smbolo=/) Estado= q1 Sino salir (error no reconocido) q1 : si(simbolo=d) Estado= q0/*********/ Sino si(simbolo=d) Estado= q2 Sino salir(error no reconocido) q2 : salir(error no reconocido) Leer(siguiente simbolo) Si Estado diferente q0, q1, q2 Salir (error no reconocido)

AUTOMATA FINITO (PARTE III) 1. Disear un diagrama de transiciones para que te acepte expresiones: Variable = variable | variable {+,-,*./} variable | digito |

Diagrama de transiciones

0 1 2 3 4 5 6 7 8 9 10

=

D

s

V 1

2 3 5 6 7 5 9 10 7 9 6 7 10 8 6 8 4

Pseudocodigo: Estado=0 Lee(entrada) Mientras(no fin de cadena) Case(Estado) 0 : si(simbolo=V) Estado=1 Sino salir(error no reconocido) 1 : si(simbolo==) Estado=2 Sino salir(error no reconocido) 2 : si(simbolo=D) Estado=3 Sino si(simbolo=V) Estado=4 Sino salir(error no reconocido) 3 : si(simbolo=D) Estado=5 Sino si(simbolo=S) Estado=6 Sino salir(error no reconocido) 4 : si(simbolo=V) Estado=8 Sino si(simbolo=S) Estado=7 5 : si(simbolo=D) Estado=5 Sino si(simbolo=S) Estado=6 Sino salir(error no reconocido) 6 : si(simbolo=D) Estado=9 Sino salir(error no reconocido) 7 : si(simbolo=V) Estado=10 Sino salir(error no reconocido) 8 : si(simbolo=V) Estado=8 Sino si(simbolo=S) Estado=7 Sino salir(error no reconocido) 9 : si(simbolo=D) Estado=9 Sino salir(error no reconocido) 10 : si(simbolo=V) Estado=10

Sino salir(error no reconocido) Leer(siguiente simbolo) Si Estado diferente 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 salir(error no reconocido)

2. Disear un diagrama de transiciones para un AFD que acepte exactamente aquellas cadenas X y Y, que contengan un numero par de X.

Diagrama de transiciones

y Q0 Q1 Q2 Q0 Q0

x

Q2 Q1

Pseudocdigo: Estado= q0 Lee(entrada) Mientras(no fin de cadena) Case(estado) q0 : q1 : si(simbolo=Y) Estado= q1 o Estado= q0 Sino salir (error no reconocido) si(simbolo=Y) Estado= q1 Sino si(simbolo=X) Estado= q2 Sino salir(error no reconocido) q2 : Estado= q1

Si Estado diferente q0, q1, q2 Salir (error no reconocido)