Practica 04:Conversión de AFN a AFD Entrega vía Web: Domingo 20 de Octubre de 2013 M. en C. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco @efranco_escom edfranco@ipn.mx 1
Contenido Definición del problema Observaciones Reporte de práctica Entrega vía Web Fecha de entrega 2
Definición del problema Construir un programa en Python capaz de recibir como entrada un archivo con la configuración de un autómata finito no determinista de un lenguaje regular. Ejemplo de archivo de entrada e0 e1 e2 e0 e1 e2 a b e0 e1 e2 e1 e2 - e2 -e1,e2 Significado e0 e1 e2 //Cada cadena separada por un espacio es un nombre de estado e0 //Estado inicial e1 e2 //Estados finales a b //Cada símbolo separado por espacio es un símbolo del alfabeto e0 e1 e2 //Transiciones para cada estado con los símbolos del alfabeto y épsilon. e1 e2 - e2 -e1,e2 Compiladores (Análisis Léxico II - Edgardo A. Franco) Tabla de transiciones equivalente f a b ε e0 e0 e1 e2 e1 e1 e2 - e2 e2 - e1,e2 Los id de estados cumplen letra_(letra_ digito)* - Si la transición no esta definida 3
El programa deberá ser capaz de realizar la conversión a AFD, el resultado deberá ser almacenado en un archivo de salida. Mostrar Quíntupla del AFN y del AFD, así como sus tablas de transiciones. Opcional adecuar la salida para ser recibida por JFlap para la construcción automática del grafo. Generar 2 archivos de salida para JFlap; el AFN de entradayelafddesalida. 4 Compiladores (Análisis Léxico II - Edgardo A. Franco)
Observaciones El programa deberá ser resuelto de manera modular en Python. Las pruebas se realizaran para cuatro AFN. Todos deberán ser correctamente convertidos para que la práctica obtenga el 100% de evaluación de funcionamiento. En el laboratorio mostrar el funcionamiento del programa, este ya deberá de contar con la documentación necesaria. Autodocumentado Documentación de funciones y algoritmos 5 Compiladores (Análisis Léxico II - Edgardo A. Franco)
Reporte de practica Portada Introducción Planteamiento del problema Diseño y funcionamiento de la solución (Descripción de la abstracción del problema y su solución, apoyándose de diagramas y figuras en un lenguaje claro, describir como se implemento el algoritmo de conversión *Cerradura épsilon, ir_a y mover) Implementación de la solución (Según la solución diseñada como se implemento en el lenguaje de programación) Funcionamiento (Verificación de la solución, pruebas y resultados de salida *Pantallazos) Errores detectados (Si existe algún error detectado, el cuál no fue posible resolver o se desconoce el motivo y solo ocurre con ciertas condiciones es necesario describirlo) Posibles mejoras (Describir posibles disminuciones de código en la implementación o otras posibles soluciones) Conclusiones (Por cada integrante del equipo) Anexo (Códigos fuente*con colores e instrucciones de compilación) Bibliografía (En formato IEEE) 6
Entrega vía Web Enunsoloarchivocomprimido(ZIP,RAR,TAR,JARoGZIP) Reporte(DOC, DOCX o PDF) Códigos fuente(.c,.h, etc.) Código documentado: Titulo, descripción, fecha, versión, autor. (Funciones y Algoritmos: Qué hace?, Cómo lo hace?, Qué recibe?, Qué devuelve?, Causa de errores?). OBSERVACIONES Grupo 2CM3 2CV1 Contraseña teoria2cm3 teoria2cv1 *NO enviar ejecutables o archivos innecesarios, las instrucciones de compilación van en el anexo del reporte.(yo compilare los fuente) 7
Fecha de entrega Demostración (Laboratorio de Programación 2) 2CM3 Miércoles16deOctubrede2013 2CV1 Martes15deOctubrede2013 Entregadereporteycódigo En un solo archivo comprimido FechayhoralimitedeentregavíaWeb Domingo 20 de Octubre de 2013 a las 23:59:59 hrs. 8 Compiladores (Análisis Léxico II - Edgardo A. Franco)