byandrev's blog

3 min readRead in English

Simulador de autómatas finitos

¿Qué hace la app?

Es un simulador visual de autómatas finitos deterministas. Puedes construir un autómata desde cero (agregar estados, transiciones, marcar el estado inicial y los estados finales) y después probar cadenas para ver si el autómata las acepta.

Lo mejor es que puedes ver cómo se procesa la cadena paso a paso, con los estados por los que va pasando el autómata, como en el video de abajo:

Video que muestra cómo funciona la app

Algunas cosas que puedes hacer:

  • Agregar y nombrar estados fácilmente
  • Definir transiciones entre estados usando símbolos del alfabeto
  • Marcar el estado inicial y los estados de aceptación
  • Probar distintas cadenas y ver cómo las procesa el autómata
  • Ver claramente si una cadena es aceptada o rechazada

¿Por qué la construí?

Me pareció buena idea hacer algo que me habría gustado tener cuando empecé a aprender sobre autómatas.

A veces entiendes la teoría, pero cuando intentas verla en acción te encuentras con papers difíciles de seguir o con simuladores muy limitados. Esta herramienta intenta resolver eso de forma visual e interactiva.

¿Qué usé para construirla?

Usé algunas herramientas modernas de desarrollo web, principalmente:

  • Vite para construir la app con HTML y JavaScript
  • Vercel para desplegarla
  • Algo de CSS con Tailwind para el estilo y la maquetación

¿Para quién es?

Es sobre todo para estudiantes de programación y ciencias de la computación que estén viendo autómatas. Pero también puede servirle a profesores que quieran mostrar cómo funcionan de una forma más visual.

¿Qué se puede mejorar?

Todavía hay varias funciones que me gustaría agregar, como:

  • Soporte para autómatas no deterministas (AFND)
  • Exportar e importar autómatas en formato JSON
  • Guardar ejemplos o simulaciones anteriores
  • Agregar modo oscuro

Si tienes sugerencias o quieres colaborar, escríbeme. El proyecto es open source, así que también puedes contribuir aquí: https://automata-simulation.vercel.app

Frequently asked questions

¿Qué es un simulador de autómatas finitos determinísticos (DFA) y para qué sirve?

Es una herramienta visual en la que puedes construir un DFA desde cero, agregando estados, transiciones, un estado inicial y estados finales, ademas puedes probar cadenas de caracteres paso a paso para ver exactamente cómo las procesa el autómata y si acepta o rechaza cada una.

¿Existe alguna herramienta gratuita para visualizar la teoría de los autómatas?

Sí, este es un simulador de DFA de código abierto y basado en navegador, diseñado para estudiantes y profesores de informática que desean ver los conceptos de los autómatas en acción, en lugar de limitarse a leer la teoría o utilizar simuladores excesivamente limitados.

Comments