Aplicacion de escritorio desarrollada en Python que permite transformar Expresiones Regulares en Automatas Finitos No Deterministas (AFN) y Automatas Finitos Deterministas (AFD). Todo ello complementado con una interfaz grafica intuitiva y la capacidad de verificarlos y visualizarlos dinamicamente.
- Conversion a AFN: Transforma Expresiones Regulares en un modelo AFN utilizando el clasico Algoritmo de Construccion de Thompson.
- Determinizacion a AFD: Convierte el AFN resultante en un AFD estable matematicamente mediante el Algoritmo de Construccion de Subconjuntos.
- Similador de Cadenas: Introduce secuencias de caracteres desde la interfaz y valida de manera instantanea si la cadena es aceptada o rechazada.
- Renderizacion de Grafos: Integracion total con
Graphviz (dot)para mapear la topologia del automata, graficando claramente los nodos, transiciones y el estado de aceptacion. - Exportacion Organizada: Un manejador dinamico guarda tus historiales, representaciones en imagen y reportes en el directorio
artefactos/.
Para ejecutar correctamente este software, asegurate de tener instalado en tu entorno operativo:
- Python 3.12 o una version superior.
- Graphviz instalado globalmente en el sistema y anadido a tu variable de entorno PATH (verifica en la terminal que el comando
dotfuncione). - Gestor de paquetes
pipactualizado y listo para usar las dependencias derequirements.txt.
Para evitar conflictos en tus dependencias globales y mantener la limpieza de la instalacion, es muy recomendable el uso de un Entorno Virtual (.venv).
Hemos configurado un atajo en PowerShell para facilitarte el despliegue de dependencias sin interactuar manualmente con el ecosistema de Python.
# 1. Accede al directorio raiz de este proyecto
cd "E:\EXTRAORDINARIO_2026\U2 CODIGOO"
# 2. Ejecuta el archivo que prepara e instala el entorno de forma automatizada
powershell -ExecutionPolicy Bypass -File .\scripts\instalar_entorno.ps1# 1. Crear el entorno virtual en el directorio del proyecto
python -m venv .venv
# 2. Activar el entorno virtual
.\.venv\Scripts\activate
# 3. Actualizar el gestor nativo
python -m pip install --upgrade pip
# 4. Instalar todas las dependencias listadas
pip install -r requirements.txtLa forma mas facil y recomendada de iniciar la aplicacion (sin tocar la terminal) es:
- Haz doble clic en el archivo
Iniciar_App.batque se encuentra en la carpeta principal. - ¡Listo! El programa detectara automaticamente tu entorno virtual y abrira la ventana (ocultando los molestos cuadros negros de fondo).
Alternativamente, si prefieres usar la consola manualmente, activa tu entorno virtual y ejecuta:
python iniciar_automatas.py
Esta herramienta utiliza los metacaracteres mas importantes en el analisis de compiladores:
| Operacion | Simbolo | Ejemplo | Significado |
|---|---|---|---|
| Union (O alternativa) | ` | ` | `A |
| Concatenacion | . |
A.B o AB |
Acepta el patron 'A' seguido inmediatamente de 'B'. Nota: La app soporta auto-concatenacion implicita. |
| Cerradura de Kleene | * |
A* |
Cero, una o multiples repeticiones repetidas del ultimo valor. |
| Cerradura Positiva | + |
A+ |
Al menos una aparicion o multiples instancias ininterrumpidas. |
| Signo de Opcional | ? |
A? |
Cero pre-existencia, o bien exactamente una aparicion del valor. |
| Agrupacion | ( ) |
`(A | B)*` |
Este repositorio fomenta el diseno modular basado en buenas practicas de programacion y separacion de logica:
/
├── iniciar_automatas.py # Punto principal de arranque de la GUI.
├── Iniciar_App.bat # Lanzador rapido para Windows (doble clic).
├── automatas/ # Nucleo del software: Thompson, Subconjuntos, modelos y constantes.
├── ui/ # Interfaz grafica PySide6: ventana principal, grafos y serializacion.
├── artefactos/ # Directorio de salida para grafos (.png) y exportaciones (.json).
├── scripts/ # Herramientas de despliegue y mantenimiento (PowerShell).
└── ejemplos/ # Casos de prueba documentados para validacion manual.