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"
]