Skip to content

opDataa/Simple-Automaton-Simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SAS (Simple Automaton Simulator)

image

Descripción

El proyecto Simple-Automaton-Simulator es una implementación de un simulador de autómatas finitos deterministas (DFA) y no deterministas (NFA). La arquitectura del proyecto sigue el patrón de diseño Modelo-Vista-Controlador (MVC) para una mejor organización y mantenimiento del código.

Para una comprensión más detallada de su funcionamiento, consulte el SAS-Reference.pdf .

Características

Modelado de Autómatas

  • AbstractAutomata.java: Clase abstracta que define las estructuras y métodos básicos para manejar los estados y transiciones de un autómata.
  • AutomataDeterminista.java: Implementación específica para autómatas deterministas.
  • AutomataNoDeterminista.java: Implementación específica para autómatas no deterministas.
  • Transaction.java: Clase que representa una transición entre estados.

Vista

  • ControlPane.java: Panel de control que incluye un campo de texto para entrada y botones para manipular la visualización del autómata.

ui automaton

Controlador

  • ControladorTextInput.java: Gestiona la entrada de texto y su visualización durante el modo "paso a paso".
  • ControladorAutomata.java: Controlador principal que maneja las acciones y la lógica del autómata.

Ejemplos

Se incluyen varios ejemplos para ilustrar el funcionamiento del simulador tanto en modo directo como en modo paso a paso:

  • Ejemplo 1
  • Ejemplo 2
  • Ejemplo 3
  • Ejemplo 4
  • EjemploPropuesto1
  • EjemploPropuesto2
  • EjemploPropuesto3 (contador)
  • EjemploPropuesto4 (regexp HTML)

Instrucciones de Uso

Importar Autómata

Los autómatas se pueden importar desde archivos .txt ubicados en la carpeta dataset.

Ejecutar el Simulador

  • Modo directo: Muestra la solución del autómata inmediatamente.
  • Modo paso a paso: Muestra la transición entre estados de forma interactiva.

Interacción

  • Uso de botones en el ControlPane para manipular la vista del autómata.
  • Flechas del teclado para navegar en el modo paso a paso.

Dependencias

Este proyecto utiliza la librería GraphStream para la representación gráfica de los autómatas. Asegúrese de tenerla instalada y configurada correctamente.

Problemas Conocidos

  • Visualización de Transiciones: Las transiciones y los iconos pueden no mostrarse correctamente en algunos casos debido a limitaciones de la librería GraphStream. Usar el botón de zoomOut como solución temporal.
  • ControladorTextInput: Puede presentar errores al intentar retroceder, pero el resto de las funciones operan correctamente.

Observaciones Finales

  • La programación de los algoritmos gráficos requirió un esfuerzo significativo, no tanto por su complejidad, sino por la falta de experiencia previa.
  • La documentación del código está mayormente en inglés, pero algunos comentarios pueden estar en español.

Estructura del Proyecto

  • Modelo: Clases encargadas de la lógica de los autómatas.
  • Vista: Componentes visuales para la interacción con el usuario.
  • Controlador: Gestión de la lógica y coordinación entre el modelo y la vista.
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy