Deep Algo : la start-up qui veut traduire le code en langage universel
⏱ 4 minLa start-up, fondée en 2016, ambitionne d’extraire 100 % des algorithmes d’un code existant pour les représenter dans un format compréhensible. De quoi faciliter la vie des développeurs… et la communication avec les métiers non techniques.
Et si tout un chacun pouvait comprendre la logique des algorithmes se cachant dans le code des applications, logiciels ou page web qu’il utilise… sans même savoir coder ? Tel est, en gros, la promesse sur laquelle a été fondée la start-up Deep Algo. Son cofondateur Jérôme Forêt, a eu cette idée en travaillant comme analyste quantitatif en finance des marchés financiers à la Société Générale. « Le système informatique utilisé pour les transactions était à l’époque écrit dans un langage un peu daté, le Visual Basic 6 (VB6). La direction a voulu faire migrer ce code vers un langage plus actuel, le Csharp. Mais avec 6 millions de lignes de code, cette migration était quasiment impossible à réaliser à la main. D’où l’idée de développer un programme capable de lire automatiquement un code écrit dans un langage formel pour le traduire vers un autre langage formel », raconte Jérôme Forêt.
Automatiser la lecture de code
En 2013, ce dernier et ses managers d’alors, Xavier Lagarrigue et Olivier Hémar, décident de fonder ensemble une première start-up, Code Case, sur cette idée : faire migrer des codes d’un langage vers un autre pour diverses entreprises. « En 2016, nous avons voulu passer à la vitesse supérieure et faire passer la technologie de transcription du cas par cas au cas général, pour traduire n’importe quel code en langage universel », explique Jérôme Forêt. Deep Algo était née. La technologie de la société consiste à lire automatiquement un code, pourvu qu’il soit accessible, pour en expliciter les arbres de décisions et les algorithmes sous une forme intelligible – un rapport écrit en anglais, auquel sont associés des équations ou des schémas fonctionnels.
Avec de multiples intérêts à la clé. « Le premier cas d’usage est celui d’un développeur arrivant sur un projet en cours, pour lequel un code est déjà développé. Dans ce cas de figure, un problème récurrent est qu’il n’existe pas de documentation fonctionnelle, une sorte de notice dont le rôle est d’expliquer comment telle ou telle variable est traitée au sein du programme, et dans quel but. Si bien que le développeur doit souvent effectuer la rétro-ingénierie du programme « à la main » pour comprendre comment il fonctionne dans le détail… une étape fastidieuse et chronophage. Les développeurs devraient, en théorie, documenter leur code à mesure qu’ils l’étoffent. Mais dans les faits, il s’avère souvent compliqué de mettre à jour ce programme lorsque plusieurs développeurs travaillent simultanément sur le code. Avec notre technologie, cette documentation fonctionnelle pourrait être écrite automatiquement au fur et à mesure du développement », soutient Jérôme Forêt. Deuxième cas d’usage : permettre aux métiers non techniques (ceux du marketing, par exemple) d’évaluer une application ou un logiciel en cours d’élaboration, et ainsi de mieux communiquer avec les métiers techniques chargés de la développer. « Ce qui permet aussi à une entreprise de démontrer la transparence de son produit, pour montrer à ses clients qu’il correspond bien au besoin pour lequel il est vendu », complète Olivier Hémar.
Le traduire en formules mathématiques
D’un point de vue pratique, la technologie de Deep Algo se place au carrefour de deux grands courants de l’informatique: la théorie des langages, qui a pour objectif de décrire la structure des langages formels, et l’apprentissage automatique (machine learning). « Nous automatisons trois étapes : d’abord la lecture du code, ensuite sa compréhension technique, et enfin sa traduction en langage fonctionnel », précise Jérôme Forêt. Après trois ans de R&D, La société vient de signer début 2020 son premier contrat commercial avec le cabinet d’audit Mazars, qui va l’intégrer à ses outils opérationnels pour vérifier les comptes des grandes entreprises. « Les indicateurs financiers des entreprises sont souvent calculés par des programmes complexes, avec un effet boîte noire. Une méthode de vérification classique consiste à auditer des milliers de transactions ; grâce à notre technologie, les auditeurs pourront également « ouvrir le capot » des programmes et vérifier les règles de gestion qui y sont implémentées », résume Olivier Hémar. Ce partenariat, testé en version bêta pendant une année, a notamment permis à Deep Algo d’affiner la « traduction » de ces algorithmes : « Initialement nous les présentions sous forme de graphiques, mais ceux-ci devenaient rapidement complexes et peu lisibles ; nous avons plutôt opté pour leur traduction sous forme de formules mathématiques », explique Jérôme Forêt.
Bientôt une quarantaine de langages traduits
La société, qui commercialise sa technologie sous forme de plateforme accessible via le cloud, sous le modèle de Software as a Service (Saas), ambitionne aussi de rendre ses services accessibles à court terme à tous types d’entreprises via une formule freemium. « L’idée est d’avoir une partie gratuite pour traduire de petits bouts de code et permettre à tout un chacun de tester notre technologie, puis de passer sur une utilisation payante pour des applications plus ambitieuses », précise Olivier Hémar.
Pour l’heure, le service est opérationnel et commercialisé uniquement pour du code en langage java, mais Deep Algo s’est intéressé à des dizaines d’autres langages informatiques depuis sa création. Elle développe actuellement une fonctionnalité de deep learning permettant de traduire indifféremment jusqu’à une quarantaine de langages (dont Ruby, C++, Csharp, SQL…), pour lequel elle a été lauréate du programme C-Innov de BPI France en juillet 2019. D’un point de vue technique, cette fonctionnalité consiste à entraîner des réseaux de neurones graphiques (GNN) pour extraire les arbres de syntaxe abstraite, sorte de colonne vertébrale du langage, et en étiqueter les « nœuds », qui correspondent à des instructions. « C’est un peu le même principe que la traduction automatique du langage naturel, par exemple de l’anglais vers le français, dans laquelle les nœuds représentent chaque mot de la phrase. Mais notre tâche est plus ardue : une phrase de langage naturel comporte quelques dizaines de mots au maximum, tandis qu’un morceau de code en langage formel peut comporter 20 000 à 30 000 nœuds », explique Jérôme Forêt, qui pense pouvoir déployer cette fonctionnalité d’ici deux ans. Et forte de son partenariat avec Mazars, Deep Algo envisage de réaliser sa première levée de fonds d’ici la fin du premier semestre 2020.
Hugo Leroux
Illustration à la une © Deep Algo