Qu'est-ce que TON618

TON618 est un petit langage interprété, dans le même esprit que Python ou HolyC : tu écris un fichier .ton, tu le lances directement avec l'interpréteur ton618, et il s'exécute immédiatement — aucune étape de compilation séparée pour tes scripts.

L'interpréteur lui-même (ton618) est écrit en C++17 et se présente comme un unique binaire, sans dépendance. Il est compilé en croisé pour Linux, Termux (Android) et Windows (voir Installer & compiler), et détecte automatiquement lequel de ces trois il exécute au démarrage.

La caractéristique principale du langage est le préfixe ton. : déclarer une variable ou une fonction l'utilise toujours (ton.int x = 5, ton.function f() { ... }). Une fois quelque chose déclaré, y faire référence à nouveau — le lire, le réassigner, ou nommer un paramètre de fonction — accepte aussi bien ton.nom que le simple nom ; les deux désignent la même chose. Cette documentation utilise ton. partout par souci de clarté, sauf pour des noms éphémères comme les compteurs de boucle et les paramètres de fonction, comme le fait déjà le style utilisé dans exemples/. Voir Bases du langage pour savoir précisément où le préfixe est obligatoire ou optionnel.

Depuis beta-2.0.0, c'est aussi un langage orienté objet et expressif : des classes avec héritage, la syntaxe méthode sur toutes les valeurs ("hi".upper(), nums.filter(...).map(...)), des fonctions fléchées, des f-strings, des intervalles et tranches, la déstructuration, l'opérateur pipe |>, un REPL interactif, des messages d'erreur utiles avec trace d'appels — et un interpréteur environ 6 fois plus rapide que la 1.x. Voir Classes & objets et le Changelog.

TON618 prend en charge la gestion d'erreurs (try/catch/throw), un type dictionnaire (ton.dict), les boucles for ... in et for classique (style C), une instruction switch/case, une fonction format() pour construire des chaînes sans enchaîner les +, l'assignation composée (+=, -=, ...), l'incrémentation/décrémentation (++, --), un opérateur ternaire (cond ? a : b), des expressions de fonction (callbacks anonymes), et une bibliothèque standard assez large couvrant maths, chaînes, tableaux, dictionnaires, fichiers, JSON, expressions régulières, et encodage base64/hex/URL — voir le Changelog pour l'historique complet.

Modifier cette page sur GitHub