Admiran
Admiran es un lenguaje y compilador funcional puro, lazy y autocontenido que se ejecuta en su propio entorno de ejecución (self-hosting). Se basa en Miranda original con características adicionales de Haskell.
Ficha actualizada 23 sept 2026, 12:37 · upstream 23 sept 2026, 12:24 · release v3.1
Qué es Admiran
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Admiran es un lenguaje funcional puro, evaluado por necesidad (lazy), diseñado como un compilador autocontenido que puede ejecutarse sin dependencias externas. Su arquitectura se inspira en Miranda pero incorpora mejoras significativas: sistema monadic IO basado en el patrón de streams, operadores infix personalizados, expresiones case estrictas, wildcards en patrones, nombres de módulos con o sin prefijo, tipos subexplicados (underscores), y un runtime compactante de 2 generaciones. El compilador se construye desde cero mediante un pipeline completo: tokenización → desuguración a AST simplificado → análisis multi-paso → inferencia de tipos H-M → optimización multi-pass → generación de IR en STG → compilación final.
- Ejecución de código funcional puro sin dependencias externas
- Demostración del pipeline completo de compilación (tokenización, análisis, optimización, generación de ASM)
- Estudio de lenguajes funcionales y su arquitectura interna
- Generación de código binario para sistemas operativos con soporte a AMD64 o ARM64
- Implementación de algoritmos complejos como árboles AVL, búsqueda A* y BFS en un entorno controlado
- Compilador autocontenido (~7000 líneas) que genera ASM desde el tokenizador hasta la ejecución final
- Genera código binario 20-50x más eficiente que Miranda original mediante optimizaciones multi-pass (inlining, dead-code elimination)
- Sistema de tipos H-M bidireccional con soporte para recursión polimórfica explícita
- Runtime compactante de 2 generaciones que reduce el uso de memoria en aplicaciones interactivas
- Soporte nativo para AMD64 y ARM64 (x86-64) mediante compilación desde ASM
- Diseño modular con múltiples módulos independientes que se fusionan programáticamente
- Solo ejecutable en macOS o Linux x86-64 (o Rosetta 2 para Apple Silicon)
- No tiene soporte nativo para Windows, Android o iOS
- El runtime compactante de 2 generaciones puede consumir memoria adicional en aplicaciones interactivas
- La generación de ASM requiere un compilador C externo que no está incluido en el repositorio
- No incluye herramientas de depuración (debuggers) ni ejecución en entornos multiplataforma
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Para ejecutar Admiran, se debe compilar el archivo amcBoot usando el bootstrap compiler y luego construir el compilador completo con `make`. Se recomienda añadir la carpeta bin al PATH. Para distribuir, se pueden generar archivos .x2 para módulos individuales o fusionar todo en un solo ejecutable. El runtime requiere un compilador C externo (GCC/Clang) que se incluye automáticamente durante la compilación de Admiran.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.