Avatar byandrev

byandrev

Simulador de Autómatas Finito

4min de lectura

Desarrollé junto a dos amigos una herramienta para la materia de Teoría de la Computación que quiero compartir porque puede ser útil para más personas que estén viendo esta asignatura.

¿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.


Avatar byandrev

Andres Parra

Soy Andrés Parra, Ingeniero de Sistemas. Me especializo en desarrollo web Full Stack y lidero el RPCIDE, un editor de código online para programación competitiva. Trabajo con tecnologías como React, Node.js, Python y bases de datos SQL/NoSQL. También soy entusiasta de competiciones de programación y proyectos de código abierto. Ver todos los posts

Comparte este artículo en