Skip to content

Repository files navigation

Conversor de Expresiones Regulares a Automatas

Python Version License: MIT Graphviz UI Framework

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.


Caracteristicas Principales

  • 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/.

Requisitos del Sistema

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 dot funcione).
  • Gestor de paquetes pip actualizado y listo para usar las dependencias de requirements.txt.

Instalacion y Configuracion Rapidas

Para evitar conflictos en tus dependencias globales y mantener la limpieza de la instalacion, es muy recomendable el uso de un Entorno Virtual (.venv).

Opcion 1: A traves del Script Inteligente (Recomendado para Windows)

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

Opcion 2: Desarrollo e Instalacion Manual (PowerShell o CMD)

# 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.txt

Guia de Ejecucion

La forma mas facil y recomendada de iniciar la aplicacion (sin tocar la terminal) es:

  1. Haz doble clic en el archivo Iniciar_App.bat que se encuentra en la carpeta principal.
  2. ¡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

Sintaxis de Expresiones (RegEx)

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)*`

Arquitectura Interna del Proyecto

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.

by: BR_2026

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages