Tout ce dont vous avez besoin

DAVINOC combine modernité, performance et ergonomie dans un écosystème cohérent.

⚡

Compilation ultra-rapide

Le compilateur DVLX génère du ByteCode DVB en quelques millisecondes. Le cycle modifier-compiler-exécuter est si rapide qu'il rivalise avec les langages interprétés, tout en offrant les avantages de la compilation. Le compilateur est lui-même écrit en TypeScript, garantissant portabilité et facilité de contribution.

🛡️

Typage progressif

DAVINOC propose un typage dynamique par défaut, suffisant pour les prototypes et scripts rapides. Quand votre projet grandit, migrez vers DVLX pour ajouter des annotations de type statique. Les deux formes cohabitent naturellement, permettant une adoption graduelle sans réécriture.

🔧

Messages d'erreur Rust-style

Inspiré par le célèbre compilateur Rust, DAVINOC produit des messages d'erreur détaillés avec codes error[E001], localisation ligne:colonne précise, et suggestions de correction. Chaque erreur est un apprentissage, pas un obstacle. Le système d'exceptions VinokError formate automatiquement les erreurs pour une lisibilité maximale en terminal.

📦

Écosystème trois couches

L'écosystème DAVINOC s'articule autour de trois formats complémentaires. DVLX (.dvx) est le superset typé qui compile vers DVB (.dvb), le ByteCode exécutable. VINOK est le format de configuration qui unifie tous les fichiers de projet. Cette séparation des préoccupations assure clarté et maintenabilité.

🌐

Interpolation universelle

La syntaxe ${...} fonctionne partout : dans les chaînes DAVINOC, dans les fichiers VINOK, et dans les templates. Le résolveur de symboles calcule les offsets de colonne corrects pour que les messages d'erreur pointent toujours au bon endroit, même à l'intérieur des expressions interpolées.

🚀

CLI complet en 6 commandes

La ligne de commande DAVINOC offre six commandes essentielles : parse (analyser), validate (valider), convert (convertir JSON↔VINOK), run (exécuter), format (formater) et init (initialiser un projet). Le lanceur Python vinok.py lit la configuration depuis vinok-conf.json et délègue au runtime approprié.

Mots-clés en français

DAVINOC utilise des mots-clés français pour une lisibilité naturelle : fonction, si, pour, dans, retourner, écrire, et bien d'autres.

Fonctions

fonction carre(x: Nombre) -> Nombre {
    retourner x * x
}

Conditions

si age >= 18 {
    écrire("Majeur")
} sinon si age >= 16 {
    écrire("Presque")
} sinon {
    écrire("Mineur")
}

Boucles

pour element dans liste {
    traiter(element)
}

tant que condition {
    executer()
}

Structures

point = [
    x = 10,
    y = 20,
    etiquette = "origine"
]