Le langage expérimental de Google basé sur le Low Level Virtual Machine (LLVM) ou « machine virtuelle de bas niveau » pour le traitement des tableaux s’attaque à un domaine important de l’espace mathématique.
Les ingénieurs de Google ont dévoilé Dex, un prototype de langage fonctionnel conçu pour le traitement des tableaux. Ce dernier est essentiel dans les mathématiques utilisées par les applications de machine learning et le calcul intensif. Selon un article publié par des chercheurs de Google, le principal objectif du langage Dex est de permettre aux programmeurs de travailler efficacement et de manière concise avec des tableaux en utilisant une syntaxe compacte et fonctionnelle. Les langages et bibliothèques mathématiques et statistiques existants, comme MATLAB et NumPy, ainsi que des langages plus généraux comme Fortran et C, intégrent déjà largement les techniques de traitement de tableaux et les syntaxes. Mais les auteurs de l'article pointent le côté « obscur » des premiers et la « lourdeur » des derniers.
Calqué sur les familles de langages Haskell et ML, Dex utilise l'information de type pour rendre l'écriture du code pour le traitement des tableaux à la fois succincte et explicite. Des exemples d’illustration de Dex montrent comment le système de type fonctionne à la fois avec des valeurs régulières (entiers et réels) et des tableaux. D'autres exemples soulignent comment exprimer des problèmes réccurents comme l'estimation de pi ou le tracé d'une fractale de Mandelbrot. À l’image de Python ou du langage R, Dex peut exécuter des programmes pré-écrits à partir de l'interface en ligne de commandes, de manière interactive dans une fenêtre REPL (Read Eval Print Loop ou Lire Évaluer Afficher Boucler), ou par le biais d'une interface de type notebook. Le prototype actuel supporte les trois modes.
Un langage encore expérimental
Dex utilise le framework de compilation de langage Low Level Virtual Machine (LLVM), qui fait tourner de nombreux langages universels comme Rust et Swift. LLVM s'avère également utile pour construire des langages dédiés, ou langages DSL (Domain Specific Languages), destinés à faciliter le traitement d'un ensemble délibérément restreint de tâches. Il existe d'autres projets DSL alimentés par LLVM pour les tâches de calcul comme DLVM, un compilateur moderne pour les Deep Learning System (DLS) utilisé dans les réseaux de neurones, et Triton, un langage intermédiaire et un compilateur, utilisé pour les réseaux de neurones avec tiling.
Dex en est encore à un stade expérimental précoce et n'est pas officiellement soutenu par Google à quelque titre que ce soit. Ce qui lui manque le plus pour l’instant, c’est l'intégration avec d'autres langages. Cette intégration permettrait à Dex de décharger les tâches de calcul intensif (comme le font, par exemple, des bibliothèques comme Numba pour Python). Le projet Dex, qui est sous licence BSD (Berkeley Software Distribution License) clause-3, est ouvert aux contributions et à la collaboration.
Commentaire