Aplicación para la construcción gráfica de autómatas finitos deterministas utilizando el lenguaje processing - Carrillo Zavala, Gustavo Iván (Universidad Autónoma de Ciudad Juárez, 2017)
Durante la formación universitaria hay distintos temas que es requisito aprender o dominar, cada uno tiene un área específica en la cual se desarrolla, entre estas áreas se encuentra un modelo matemático denominado autómata finito determinista, el cual es objeto de estudio en distintas clases o materias impartidas a lo largo de la carrera. Entre las materias que toman este modelo para su estudio se encuentran Matemáticas Discretas, Teoría de la Computación y Compiladores, entre otras. El método utilizado para impartir la enseñanza de este modelo en clase ha permanecido constante a través del tiempo, en el cual se puede apreciar que se lleva a cabo una serie de pasos en donde uno de ellos es la elaboración gráfica del autómata finito determinista. Esta parte, en la que el estudiante dibuja el modelo matemático es importante, ya que mediante esta representación puede simular un problema resuelto o la comprobación del mismo. La representación gráfica de este modelo no solo puede llevarse a cabo en un trozo de papel, ya que aprovechando los sistemas computacionales y que estos en la actualidad están al alcance de los estudiantes, se pueden encontrar otras formas para facilitar la elaboración o comprensión de este tema. Existen algunas aplicaciones desarrolladas previamente, las cuales pueden ser una herramienta para ayudarnos a comprender el modelo matemático que son los autómatas finitos deterministas. Entre las aplicaciones que se pueden encontrar para trabajar sobre la representación gráfica, se encuentra TALFi, programa que solo se encuentra descrito mediante un documento pero al cual no es posible acceder u obtener para su utilización. Otro de los programas de los cuales tampoco se pudo poner a prueba su funcionamiento se llama Chalchalero!, programa perteneciente a un proyecto llamado SEPa!, el cual su enlace de descargar no se encuentra disponible. De los programas que se mencionan en Internet se encuentra uno que sí es funcional, llamado JFLAP, el cual es un programa desarrollado en Java que permite evaluar autómatas finitos deterministas. Este programa lleva aproximadamente 10 años de desarrollo y ha sido implementado por un grupo de programadores, siendo el año 2009 el último que se menciona en donde haya habido una actualización al programa. Este programa permite llevar a cabo las tareas deseadas en un ambiente gráfico, el cual no es totalmente amigable o fácil de utilizar. Presentando una interfaz no pulida en el apartado gráfico. Para elaborar un autómata finito determinista y a su vez demostrar si corresponde a un lenguaje regular en particular, se necesita seguir una serie de pasos, y es uno de esos pasos la graficación, la cual mediante un dibujo que represente el autómata finito determinista y la simulación manual ante diferentes palabras de entrada usando este dibujo, se puede determinar si se alcanzó el objetivo deseado llegando a un estado de aceptación o en su defecto de rechazo. El tiempo que se requiere para la elaboración gráfica y simulación puede variar dependiendo de la complejidad del autómata, haciendo este paso más susceptible a errores, y dificultando el aprendizaje de este modelo matemático. Las aplicaciones que simulan autómatas finitos deterministas tienen en común el tener disponibles una serie de ejemplos predefinidos, donde el lenguaje regular ya está asignado y solo se le permite al usuario colocar palabras de entrada para ayudarle a comprender el funcionamiento del modelo, y solo algunos de ellos permiten la creación gráfica, por parte del usuario, del autómata finito determinista. Por lo cual se desarrolló una aplicación que permite expandir el nivel de ayuda que proponen estos programas, elevando la complejidad de los programas creados anteriormente y mostrando una interfaz donde el usuario puede crear su propio diseño arbitrario y realizar una prueba sobre su propio diseño, y de esta manera poner a prueba si efectivamente corresponde o no a un cierto lenguaje dentro de este modelo matemático, que el usuario haya definido. Esta aplicación tiene el potencial para servir de herramienta en las distintas materias donde se estudian los autómatas finitos deterministas, mejorando la forma tradicional de realizar dibujos en papel donde se hace una simulación manual de su funcionamiento. La aplicación se desarrolló en un entorno nuevo de programación llamado Processing, en el cual no se encontraron proyectos similares al que se desarrolló, y con el cual se aprovechó las facilidades gráficas que brinda para programar en este lenguaje, que es gratuito, basado en Java y funcional en múltiples plataformas. El objetivo que se cumplió fue desarrollar una aplicación que permite la construcción gráfica de autómatas finitos deterministas, donde el usuario pueda definir libremente el tamaño, la complejidad y el diseño del autómata, así mismo, desarrollada en un ambiente nuevo en el cual no se han desarrollado aplicaciones similares.