Donde los Símbolos Portan Significado y el Código es Ritual
La mayoría de los lenguajes de programación usan símbolos como simples atajos sintácticos para palabras clave legibles por humanos. Obfusku invierte esta relación para establecer la primacía del símbolo — un paradigma donde los glifos son los portadores fundamentales de la semántica misma, verificados por debajo con un sistema de tipos Hindley-Milner estricto.
En Obfusku, los programas no se limitan a escribirse y compilarse; se estructuran como rituales arcanos y se ejecutan como hechizos — cada ritual sellado con ❧, cada vínculo declarado con ≔, cada función capturada como λ.
“Donde los símbolos portan significado, y el código se convierte en ritual.”
Los Principios de la Primacía del Símbolo
Obfusku no tiene if, no tiene type, no tiene let — toda palabra clave que un lenguaje ordinario usaría se elimina por completo o se reemplaza por un glifo que carga su propio peso semántico:
⟁,⧆y⌘no abrevianInt,RealyString— son los tipos base mismos.❧no marca el final sintáctico de un archivo — sella el ritual.λno define una función convencional — captura un ritual ejecutable, currificado y cerrado sobre su ámbito léxico.≔vincula un nombre a un valor;˚marca ese vínculo como mutable,⟳lo exporta — los modificadores viven en el propio conector, nunca en el nombre.
Tipos Sólidos, No Solo Símbolos
Bajo los glifos, Obfusku es un lenguaje de tipado estricto con un motor de inferencia Algorithm W (Hindley-Milner) completo:
- Inferencia de Tipos Principal: El tipo de cada vínculo se infiere, con polimorfismo paramétrico y anotaciones explícitas requeridas solo en los límites del módulo y en las firmas de función.
- Tipos Algebraicos de Primera Clase:
Shape ≔ { Circle(Real) ⟢ Rectangle(Real, Real) }declara un tipo suma sin ninguna palabra clavetype— el parser distingue una declaración de tipo de un vínculo ordinario únicamente por su nombre en mayúscula inicial. - Coincidencia de Patrones Exhaustiva:
⟡cumple doble función como condicional y como match —⟡ x { ◉ → … ⟢ ◎ → … }es literalmente la misma gramática que hacer match sobre las variantes de cualquier otro tipo cerrado, y el compilador rechaza estáticamente un match que no cubra cada constructor. - Recursión de Pila Constante: Las declaraciones de función adyacentes forman un solo grupo de vínculo recursivo por posición, evaluado mediante un trampolín — la recursión propia y mutua nunca hace crecer la pila de llamadas.
Disciplina de Ejecución Ritual
- Sellado Ritual: Todo programa termina con el glifo terminal
❧. - Excepciones Estructuradas:
☄lanza,☊captura — contra un ADTExceptioncerrado, no errores tipados como cadenas. - Genéricos Sin Corchetes Angulares:
Array ▷ Intse lee comoArray<Int>—▷es aplicación de tipo ordinaria asociativa por la izquierda, así que la sintaxis genérica nunca puede colisionar con los operadores de comparación</>.
Herramientas Construidas Sobre la Misma Gramática
Obfusku se distribuye como un lenguaje, no solo como una especificación — obfusku-lsp empuja errores de tipo y diagnósticos de parseo en vivo a cualquier editor compatible con LSP mientras escribes, y obfusku-fmt canoniza el formato del código fuente de manera determinista. Ambos son crates dedicados dentro del mismo workspace multi-crate que el intérprete core, compartiendo una única gramática congelada sin ninguna desviación entre lo que dice el spec y lo que se distribuye.
La Especificación Formal
La gramática, el sistema de tipos y la semántica completos de Obfusku están congelados y documentados como specs normativos, no promesas de prosa — SEMANTIC_CORE.md para el significado, CONCRETE_SYMBOLIC_GRAMMAR.md para la posición gramatical exacta de cada glifo, y un conjunto vivo de ADRs que registra por qué cada decisión de diseño terminó donde terminó.


