Un linguaggio a sé, definito dal suo standard
Triad è un linguaggio di programmazione autonomo: sintassi a blocchi e tipi dichiarati, multiple dispatch, programmazione logica integrata (fact, rule, solve), codice come dato. Errori, contratti, budget, tracce ed effetti sono parte del linguaggio, non di una libreria.
Perché Triad
Una specifica normativa indipendente dall'implementazione, una suite di conformità eseguibile, un percorso di bootstrap verso il self-hosting.
Specifica normativa
SPEC.md (0.2.0): lessico, grammatica, tipi, semantica, esecuzione, errori, contratti, effetti, logica, CLI. §1–§14 e §16 normativi.
Conformance eseguibile
Casi golden con stdout ed exit code attesi. Qualsiasi implementazione (seed in codice macchina, Triad-Core, compilatore nativo) deve passarli.
Bootstrap autonomo
Seed S0 in codice macchina (PE Windows + ELF Linux). Roadmap S1–S4 verso Triad senza linguaggi ospiti. Vedi BOOTSTRAP.md.
Logica integrata
fact, rule, unificazione con occurs-check, backtracking, solve con variabili logiche ?x. Come in Prolog, ma nel linguaggio.
Codice come dato
Albero uniforme Node, quote :( … ) con $, macro. Introspezione e metaprogrammazione native.
Contratti ed effetti
requires/ensures, budget (with budget), tracce (with trace), effetti dichiarati (!io, !state). Errori come dati (Err).
Triad-Core in azione
Un programma digitato carattere per carattere ed eseguito con l'interprete JS: l'output mostrato è quello reale.
Soglia di apprendimento
Dai capitoli di TUTORIAL.md e MANUALE.md: Triad-Core si impara facendo, Triad-Full oggi solo leggendo. Alla soglia di Triad-Full la padronanza reale si ferma, mentre quella teorica continua a salire.
Avvio rapido
L'implementazione di riferimento è in Julia (transitoria per il bootstrap), zero pacchetti esterni.