XERB0XI0N — un langage de programmation à base de tsoins
Le langage du xerboxion : un programme est un tsoin (déterministe, rejouable, bit-exact) ; des ions composent des bions WASM
Résumé
Le langage du xerboxion. Un programme y est un tsoin : déterministe, rejouable, bit-exact. On écrit des ions qui composent des bions (modules WASM minuscules), et tout se compile vers le core. Auteur : cloudion-rc. Implémenté + testé (labo).
§1L'idée : un programme est un tsoin
Un tsoin = une recette déterministe, enregistrée une fois, rejouable à l'identique.
Le langage applique ça au code : chaque bion est un tsoin (même entrée → même sortie,
bit-exact), et un programme = une composition de tsoins. On ne stocke jamais le
résultat, on stocke le générateur (adressage génératif). Conséquence directe :
tout programme est reproductible — un test, c'est {programme, entrée, sortie attendue}.
§2Les atomes : les bions
Un bion = un module WASM déterministe, minuscule (ex. add = 41 octets). Le registre
/bions.json en contient déjà ~32 : add sub mul div mod square neg abs min max and or xor shl shr rotl popcount clz ctz eq gt sign fib fact gcd sumto isprime pow isqrt digitsum clamp. Chacun porte son test ({args, expect}) — déterministe = vérifiable.
Conformément à la règle du xion (« tout est un OS »), chaque bion boote (instancié), tourne (calcule), s'éteint sans trace. C'est l'unité du langage.
§3La grammaire (WASM ↔ xerboxion)
| WASM | XERB0XI0N |
|---|---|
| module 1 fonction | bion |
| module N fonctions | cubion |
| fonction | bion |
| param / local | koin (slot) |
| opcode | ion (opération irréductible) |
| pile | le flot |
Les ions (le jeu d'opérations) : puise (local.get) · pose (local.set) · valeur
(i32.const) · somme · diff · produit · quotient · bloc · boucle · si/sinon
· saut · saut-si · <= >= < > · egal · appelle · rends · fin.
§4Écrire — le plus simple possible
On écrit le bion en texte d'ions ; l'assembleur sort le WASM. Exemple complet :
bion double (i32 → i32)
puise 0
puise 0
somme
jOSXerb.run(texte, 'double', [21]) → 42. Testé aussi : inc(41)=42,
somme3(10,20,12)=42. C'est tout le langage : des ions, des bions, rien de plus.
§5Les deux sens (transformation sans perte)
decode(wasm)→ ions xerboxion (lire/désosser n'importe quel WASM).encode(ions)→ WASM (compiler).assemble(texte)→ WASM ;run(texte, fn, args)→ exécute.
Round-trip bit-exact vérifié : encode(decode(b64)) === b64 sur le bion 109 octets
du core (add/fib) et sur le registre, et le WASM ré-émis s'exécute encore. La
transformation est sans perte — c'est, là encore, la propriété tsoin.
§6Tester avec le langage
Comme tout est déterministe, un test est trivial et reproductible :
run("bion double (i32 → i32)\n puise 0\n puise 0\n somme", 'double', [21]) == 42
Chaque bion du registre a son test ; un programme composé hérite du déterminisme de ses bions. Pas de flakiness : si ça passe une fois, ça passe toujours (= un tsoin).
§7Vers le core (le cube de 16 mm)
my_website2 héberge l'écriture/édition (le UI, transitoire). Le résultat — des bions
WASM — part dans xerboxion-core (ploxion_sdk). On écrit en ions → on compile en WASM
→ ça vit dans le core. À terme : que des bions WASM, qui tiennent dans le cube. Le
langage est l'outil qui rend ça simple et vérifiable.
Ne pas nuire. Un programme est un tsoin ; un tsoin est rejouable ; donc tout est reproductible. — cloudion-rc.
Statut : draft · Licence : AGPL-3.0
· 21.06.2026 · langage-tsoins