II PROYECTO DE AUTOMATAS, GRAMATICAS Y LENGUAJES TEMA: AUTOMATAS FINITOS DETERMINISTAS PROFESOR: ING. CARLOS ALBERTO GARCIA CASTRO ENUNCIADO Este proyecto consiste en la implementación de un programa que dado un AFD codificado en un archivo texto bajo notación XML, muestre por pantalla sus elementos: Conjunto de estados S, Conjunto de símbolos Σ, conjunto de estados finales de aceptación F, estado inicial s y la matriz de transición.
Además el programa por pantalla, debe pedir una cadena de caracteres y decir si ésta puede ser generada por el autómata. Debe mostrar una trazabilidad de los estados que ha visitado desde el inicial Codificación del autómata en el archivo plano Los estados del AF estarán etiqueteados con números enteros El alfabeto válido será [a-z0-9], si se encuentra un un carácter diferente el programa debe detectar la inconsistencia y generar un mensaje al respecto. Las transiciones, una por línea, se codificarán de acuerdo a la secuencia n a m, donde n y m representan los estados origen y destino de la transición, y a representa cualquier símbolo de entrada. Los 3 elementos estarán separados por una coma (,). El orden en el que se muestren las transiciones y los estados de aceptación es indiferente. El programa debe validar que el AF sea un AFD, es decir que de un estado sólo haya una transición con el mismo símbolo a otro estado o a él mismo, no puede haber dos transiciones con el mismo símbolo a estados diferentes. Si esto sucede cuando cargue el archivo debe mostrar un mensaje al respecto.
A continuación se mostrará un ejemplo de cómo estaría estructurado el archivo:
a b 0 1 2 0
1 2
0,a,1 0,b,2 1,a,1 2,b,2
OBSERVACIONES: Los estudiantes podrán formar grupos máximo de 4 personas y elegir el lenguaje de programación de su preferencia. Este proyecto se entregará en las siguientes fechas para estas secciones: o Martes Semestre VIII Sección IX Martes 15 de Octubre o Jueves Semestre IX Sección X Jueves 17 de Octubre o Viernes Semestre IX Sección IX Viernes 18 de Octubre Si no lo pueden entregar en estas fechas, hay plazo de 3 días para que lo puedan entregar con una calificación sobre 4.0, si pasado éstos 3 días no han entregado el proyecto, se asume que el grupo no presentó el proyecto y por lo tanto ese grupo tendrá nota de 0.0 Código fuente por e-mail [email protected] Se debe presentar un informe técnico máximo de 5 hojas: Marco teórico de los Autómatas Finitos Justificación de la elección del Lenguaje de Programación utilizado ( sólo aplica si cambió de lenguaje de programación ) Objetivo de las estructuras de datos más importantes utilizadas Función de cada subrutina importante utilizada Dificultades que tuvo y cómo las resolvió Grupo que copie un programa de otro tendrán ambos grupos una calificación de 0.0 Necesariamente se debe leer del archivo texto, no se acepta pedir por pantalla, los datos del AF No se aceptan programas bajados del Internet