You are on page 1of 7

Universidad Tecnolgica Nacional Facultad Regional Tucumn Ing.

en Sistemas de Informacin

LABORATORIO ASOCIADO A LA CTEDRA SINTAXIS Y SEMNTICA DE LOS LENGUAJES

INTRODUCCIN AL JFLAP
JFLAP (siglas en ingls de Paquete interactivo de Lenguajes Formales y Autmatas hecho en Java) es un conjunto de herramientas grficas que pueden ser utilizadas como una ayuda en el aprendizaje de los conceptos bsicos de la Teora de Lenguajes Formales y Autmatas. Se trata de un software libre (open source) hecho en lenguaje Java, que surgi alrededor del ao 1990 como un proyecto de estudiantes del Instituto Politcnico de Rensselaer, en la localidad del mismo nombre del estado de Nueva York en E.E.U.U., bajo la supervisin de la Dra. en Ciencias de la Computacin SUSAN RODGER. En 1995 el proyecto JFLAP pas a la Universidad de Duke en Carolina del Norte, junto con su gestora. Al ejecutar este software ( jflaf.jar ) aparece el Men Principal que vemos arriba. En l se puede apreciar todas las opciones que dispone este programa y que abarcan la gran mayora de los temas que trata la Informtica Terica o Teora de la Computacin: Autmatas Finitos (AF) Mquinas Secuenciales (Mealy y Moore) Autmatas de Pila (Pushdown) Mquinas de Turing Gramticas para estructuras de frases Sistemas-L (de Lindenmayer) Expresiones Regulares Lema de Bombeo para Lenguajes Regulares Lema de Bombeo para Lenguajes Libres de Contexto El submen FILE permite abrir (Open) un archivo existente de un autmata o mquina y salir del programa principal (Quit). El submen BATCH permite crear lotes de prueba (Batch Test), permitiendo el anlisis de varias secuencias almacenadas en un archivo, con un conjunto de autmatas o mquinas del mismo tipo que estn guardados en distintos archivos. El submen PREFERENCES, brinda la posibilidad de personalizar el programa. Se puede elegir el smbolo que se usar como palabra vaca (lambda o psilon), fijar la
Pgina 1 de 8

Universidad Tecnolgica Nacional Facultad Regional Tucumn Ing.en Sistemas de Informacin

LABORATORIO ASOCIADO A LA CTEDRA SINTAXIS Y SEMNTICA DE LOS LENGUAJES

cantidad de acciones que se pueden deshacer y por ltimo particularizar la Mquina de Turing, permitiendo habilitar transiciones desde estados finales, aceptacin por estados finales o por es parada (bloqueo) y permitir el movimiento nulo del cabezal.

EDITOR de GRAFOS
Para todas las aplicaciones relativas a los modelos matemticos llamados autmatas o mquinas, se dispone de un EDITOR de grafos dirigidos ponderados, que representan la funcin de transicin del modelo modelo. El mismo tiene un men, una barra de herramientas y una zona de dibujo o lienzo. Las opciones bsicas del men son comunes a todos los modelos: FILE, INPUT, TEST, VIEW, CONVERT y HELP. El submen FILE permite la manipulacin del modelo y tiene las siguientes opciones: New: para crear un modelo nuevo. Abre otra : instancia del Men Principal del JFLAP. Open: para abrir un modelo guardado. : Save: para guardar el modelo actual. : Save As: para guardar el modelo actual con : otro nombre. Save Image As: para guardar una imagen del modelo actual, en distintos formatos. : Quizs el formato ms novedoso sea el SVG (Scalable Vector Graphics, que viene a Scalable significar Grficos Vectoriales Escalables, formato basado en XML y su desarrollo est Vec a cargo del consorcio W3C = World Wide Web Consortium). Dismiss Tab: Desecha la ficha seleccionada, que puede ser de un Test, Input o Convert. , Close: para cerrar el modelo actual y volver al Men Principal del JFLAP. : Print: para imprimir el grafo del modelo actual y Quit: para salir del programa JFLAP. : : El submen VIEW permite manejar la disposicin del grafo del modelo con distintos formatos y dispone de las siguientes opciones: Save Current Graph Layout para guardar la disLayout: posicin actual del grafo. Restore Saved Graph Layout para restablecer la Layout: ltima disposicin del grafo almacenada.
Pgina 2 de 8

Universidad Tecnolgica Nacional Facultad Regional Tucumn Ing.en Sistemas de Informacin

LABORATORIO ASOCIADO A LA CTEDRA SINTAXIS Y SEMNTICA DE LOS LENGUAJES

Move Vertices: Permite mover los vrtices o nodos del grafo con diversos formatos: o Reflect Across Line: Toma como referencia una lnea que atraviesa el centro del grafo y hace rotar el grafo sobre esa lnea, de tal modo que los nodos quedan reflejados a travs de esa lnea en sentido inverso a la disposicin original: Horizontal Line Thorough Center: Lnea horizontal. Vertical Line Thorough Center: Lnea vertical. Diagonal From Upper-Left To Lower-Right: Lnea diagonal principal. Diagonal From Lower-Left To Upper-Right: Lnea diagonal secundaria. o Rotate The Graph: Rota el grafo el ngulo en grados que se especifca. o Fill Screen With Graph: Llena todo el lienzo o ventana del editor con el grafo. Apply A Random Layout Algorithm: Aplica uno de los algoritmos de disposicin aleatoriamente. Apply A Specific Layout Algorithm: Aplica un algoritmo de disposicin especfico, entre los siguientes: Circle (crculo), GEM (Generalized Expectation Maximization Mxima Expectativa Generalizada), Random (aleatorio), Spiral (espiral), Tree Degree (rbol con nodos de mayor grado en la parte superior o raz), Tree Hierarchy (rbol con nodos sin auto-lazos en la parte superior) , Two Circle (dos crculos concntricos, nodos de grado mayor que 2 en el crculo interno y menor que 2 en el externo, si es igual a 2 los coloca en el crculo donde ms transiciones tenga el nodo).

Estos son algunos ejemplos de movimiento de nodos para un grafo con forma cuadrangular :

Pgina 3 de 8

Universidad Tecnolgica Nacional Facultad Regional Tucumn Ing.en Sistemas de Informacin

LABORATORIO ASOCIADO A LA CTEDRA SINTAXIS Y SEMNTICA DE LOS LENGUAJES

El submen TEST crea en otra pestaa una imagen del grafo. Si elegimos HIGHLIGHT -TRANSITIONS se . vern resaltados los nodos que tienen transiciones os transiciones- (transiciones con la palabra vaca, es decir sin leer ningn smbolo) y si optamos por HIGHLIGHT NONDETERMINISM entonces se vern resaltados los nodos no-deterministas (nodos que tienen ms de una transicin para el mismo smbolo de deterministas s entrada).

BARRA DE HERRAMIENTAS

Crea una transicin de una sub sub-MT o bloque. Crea un nuevo bloque con una MT guardada. Rehacer las ltimas acciones deshechas. Deshacer las ltimas acciones real realizadas. Elimina un estado, una transicin o un bloque. Crea una transicin entre estados existentes. Crea un estado nuevo. Permite colocar atributos y mover los nodos y las aristas del grafo.

CREACIN DE UNA MQUINA DE TURING Comenzaremos con la construccin de una mquina de Turing para el lenguaje palndromo sobre el alfabeto {a, b}. Aadir ocho Estados en el Editor de Grafos, establecer como estado inicial q0 y como estado Grafos final q7. Para hacer esto se debe activar en primer lugar el botn de la barra de herramientas y luego hacer clic con el mouse en los siete lugares de la pantalla donde queramos que se creen los estados. Luego activar el botn para marcar el estado inicial y el final. Para lo cual se hace clic con el botn derecho del mouse sobre el estado en cuestin cue y seleccionar el atributo correspondiente.

Pgina 4 de 8

Universidad Tecnolgica Nacional Facultad Regional Tucumn Ing.en Sistemas de Informacin

LABORATORIO ASOCIADO A LA CTEDRA SINTAXIS Y SEMNTICA DE LOS LENGUAJES

Ahora agreguemos las transiciones. Veamos como ejemplo una transicin entre los estados q0 y q1. Activamos el botn , hacemos doble clic en q0 y arrastramos el mouse hasta q1, de esta manera tendremos definida la transicin. Luego debemos introducir los valores del rtulo de la transicin con el smbolo a leer, el smbolo a escribir y el movimiento del cabezal:

El valor en el primer cuadro representa el valor actual bajo el cabezal de la mquina de Turing. El segundo valor es el valor que reemplazar el primer valor de la cinta, una vez que este paso ha sido procesado. El tamao de los valores de estos dos cuadros est limitado a un carcter y por defecto se toma como espacio en blanco . La tercera representa de valor donde se mover el cabezal despus de procesar la transicin. Puede ser uno de los tres valores: 'R' (mover un casillero hacia la derecha Right), 'L' (mover un casillero hacia la izquierda Left) y 'S' (no mover el cabezal Stay put). En este caso se podra introducir el valor directamente, o escribirlo en el men desplegable que aparece cuando se hace clic en el tercer cuadro. Cuando se termina de definir los 3 valores del rtulo, haga clic con el mouse fuera de las casillas. En nuestro ejemplo los valores son a, y R. Esta transicin tiene el siguiente significado: si el cabezal se encuentra bajo una "a" y la mquina se encuentra en estado "q0", a continuacin se reemplaza la "a" por un " " y se mueve el cabezal un casillero a la derecha. Por ltimo la mquina pasar al estado "q1", ya que la transicin va a ese estado. Si la transicin es al mismo estado (autolazo) es suficiente hacer un clic sobre el estado para introducir el rtulo. En el grfico de la izquierda se ve esta MT completa.
Pgina 5 de 8

Universidad Tecnolgica Nacional Facultad Regional Tucumn Ing.en Sistemas de Informacin

LABORATORIO ASOCIADO A LA CTEDRA SINTAXIS Y SEMNTICA DE LOS LENGUAJES

Para probar el funcionamiento de la MT, accedemos a la opcin INPUT del men. Las posibilidades son: 1) Step: Nos permite introducir una entrada manualmente o leerla de un archivo. Una vez introducida la secuencia a analizar, aparece en otro pestaa la simulacin correspondiente. En esta pantalla de simulacin tenemos los siguientes botones: Step: pasa a la siguiente configuracin. Reset: comienza de nuevo el anlisis. Freeze: congela la configuracin seleccionada. Thaw: descongela la config. seleccionada. Trace: muestra la secuencia de configuracin desde el inicio hasta la config. seleccionada. Remove: borra la configuracin seleccionada. Focus y Defocus se utiliza cuando la MT se construy con bloques de otras MT, para entrar y salir de dichos bloques. En la siguiente figura se muestra la traza o secuencia de configuracin para la palabra aba:

Pgina 6 de 8

Universidad Tecnolgica Nacional Facultad Regional Tucumn Ing.en Sistemas de Informacin

LABORATORIO ASOCIADO A LA CTEDRA SINTAXIS Y SEMNTICA DE LOS LENGUAJES

Step by BuildingBlock: Es similar a Step, pero cuando se tiene dentro de la MT, bloques de otras MT. En este caso se ejecuta por bloque completo, no pudiendo seguir los pasos internos de cada bloque. Fast Run: Nos facilita un anlisis rpido de una palabra. El ingreso de la secuencia es igual que con la opcin Step, pero una vez introducida la secuencia o cargada desde un archivo, se muestra directamente la secuencia de configuracin en el caso de aceptacin, con la variante de optar por un nuevo intento (Keep looking), que tiene sentido cuando la MT es no determinista; o finalizar (Im done). Y si es rechazada nos muestra un cuadro de texto con un mensaje alusivo.

Multiple Run: Abre una pestaa donde aparece el grafo a la izquierda y una tabla con dos columnas a la derecha, para que introduzcamos manualmente en Input la palabra a analizar y veamos en Result el resultado de aceptacin o rechazo (Accept o Reject). Los botones disponibles son: Load Inputs: para cargar un conjunto de palabras desde un archivo. Run Inputs: ejecuta la MT para las secuencias de la columna Input. Clear: borra la tabla. Enter Lambda: introduce la palabra vaca. View Trace: muestra en un cuadro la traza o secuencia de configuracin de la entrada seleccionada.

Suponiendo las siguientes entradas: aabb, aba, , bbaab y aabaabbaabaa, se vera as:

Multiple Run (Transducer): Tiene las mismas funcionalidades que la opcin anterior, solo que se agrega la columna de Salida (Output) a la tabla.

Pgina 7 de 8

You might also like