Tema: Reconocimiento de Cadenas Mediante
Autómatas
Lenguaje de Programación: JAVA
Descripción:
Presentamos una Aplicación
escrita en Java bajo el paradigma de programación orientada a objetos, que
permite construir un autómata dada su tabla de transición y una vez construido
el autómata el sistema puede hacer reconocimiento de cadenas, se le informa al
usuario si la cadena fue reconocida o no.
La tabla de transiciones se crea dinámicamente al insertar estados y símbolos, para crear las transiciones se debe hacer click sobre la tabla en la intersección del estado y el símbolo, luego aparecerá una caja de dialogo donde se podrán introducir los estados destino.
Se debe insertar al menos un estado y un símbolo, y crear la transición para que se construya el autómata en memoria, debe existir un estado inicial y un estado final para poder evaluar cadenas.
La tabla de transiciones se crea dinámicamente al insertar estados y símbolos, para crear las transiciones se debe hacer click sobre la tabla en la intersección del estado y el símbolo, luego aparecerá una caja de dialogo donde se podrán introducir los estados destino.
Se debe insertar al menos un estado y un símbolo, y crear la transición para que se construya el autómata en memoria, debe existir un estado inicial y un estado final para poder evaluar cadenas.
Estructura de Datos:
El sistema está construido
sobre estructuras dinámicas y estáticas, utilizando apuntadores y vectores de
objetos, de la siguiente forma:
Clase:
State
Esta clase representa a cada
estado del autómata. Posee una etiqueta de identificación, un campo booleano
para indicar si es un estado inicial, un campo booleano para indicar si es un
estado final, un vector de transiciones (Transition) dinámico que representa
las transiciones hacia otros estados. Esta clase esta integrada por métodos y
funciones necesarias para el funcionamiento del autómata tales como agregar
transición, eliminar una o todas las transiciones, además de los métodos set y
get de los atributos.
Clase:
Transition
Esta clase representa las
transiciones de los estados del autómata. Posee una etiqueta de transición un
apuntador al estado destino. Compuesta por métodos get y set de sus atributos.
Clase:
Automaton
Esta clase es la que permite
la construcción del autómata a partir de las clases anteriores, en esta se hace
el reconocimiento de cadenas. No se permiten estados con la misma etiqueta.
Clase:
NewStateForm
Formulario JDialog que
permite al sistema crear los estados de autómata mediante una interfaz gráfica
sencilla, no permite etiquetas vacías.
Clase:
NewSymbolForm
Formulario JDialog que
permite al sistema crear los símbolos del alfabeto del autómata mediante una
interfaz gráfica sencilla.
Clase:
NewTransitionForm
Formulario JDialog que permite
al sistema crear las transiciones del autómata a partir de los estados y los
símbolos del alfabeto, mediante una interfaz gráfica sencilla.
Clase: PlayAutomata
Formulario JFrame, es la
interfaz gráfica de usuario, esta clase hace validaciones necesarias para
evitar fallos durante la ejecución, es sencilla e intuitiva.
(No se utiliza la clase Pattern)