¿Qué hace la aplicación?
Es un simulador visual de autómatas deterministas. Permite crear un autómata desde cero (agregar estados, transiciones, estado inicial y estados finales), después ingresar una cadena para ver si el autómata la acepta o no.
Lo mejor es que se puede ver paso a paso cómo se va procesando la cadena, viendo los estados por los que pasa como se puede ver en el siguiente video.
Algunas cosas que puedes hacer:
- Agregar y nombrar estados fácilmente
- Definir las transiciones entre estados usando símbolos del alfabeto
- Marcar el estado inicial y los estados de aceptación
- Probar diferentes cadenas y ver cómo el autómata responde
- Ver si una cadena es aceptada o rechazada, con una visualización clara
¿Por qué se hizo?
Me pareció buena idea construir algo que yo mismo habría querido tener cuando comencé a ver autómatas.
Muchas veces uno entiende la teoría, pero cuando quiere ver cómo se aplica, se pierde en los papeles o en simulaciones muy limitadas.
Esta herramienta busca resolver eso de forma visual e interactiva.
¿Con qué se hizo?
Usé herramientas modernas del desarrollo web, principalmente:
- Vite para construir la app con HTML y JavaScript
- Vercel para desplegarla
- Un poco de CSS con Tailwind para el diseño y estilos
¿Para quién es?
Está pensada especialmente para estudiantes de programación y sistemas viendo este tema. También puede servir para docentes que quieran mostrar visualmente cómo funcionan estos autómatas.
¿Qué me gustaría mejorar?
Todavía hay varias cosas que se pueden agregar, como por ejemplo:
- Soporte para autómatas no deterministas (NFA)
- Poder exportar e importar autómatas en formato JSON
- Guardar ejemplos o simulaciones anteriores
- Agregar un modo oscuro
Y si tienes alguna sugerencia o quieres colaborar, me pedes escribir. O puedes colaborar en el proyecto, ya que es open source. Aquí te dejo el repositorio: https://automata-simulation.vercel.app.