Intelligence artificielle pour la conversion entre langages de programmation

(Pour Alessandro Rugolo)
03/08/20

On n'est plus surpris quand on entend parler Intelligence artificielle, comme l'avait prédit Alan Turing il y a 70 ans, dans son essai "Computing Machinery and Intelligence". On n'est même pas surpris de voir l'évolution d'un robot anthropomorphe, équipé de capteurs, capable de parler, d'écrire, de jouer aux échecs ou d'accomplir les tâches les plus disparates.

La technologie évolue rapidement et nous sommes à un pas de voir une nouvelle race, plus évoluée, celle des cyborgs circuler parmi la race humaine ...

On pourrait penser, à première vue, que les lignes qui viennent d'être lues proviennent d'une anthologie du fantastique, de celles très en vogue il y a trente ans parmi les lecteurs passionnés des plages italiennes, mais ce n'est pas le cas, c'est la réalité.

L'Intelligence Artificielle a désormais passé la phase de test et s'apprête à entrer avec force dans notre quotidien, le quotidien de l'homme de la rue et la vie professionnelle des entreprises.

Du monde des réseaux sociaux, facebook, il y a une nouveauté sur l'utilisation de l'intelligence artificielle: «Facebook's AI Transcoder». Voyons de quoi il s'agit.

Ce sont les chercheurs de Facebook qui ont créé le premier "Neural Transcompiler", un convertisseur de code pour les langages de programmation. Il s'agit d'un système basé sur l'IA capable de convertir le code des langages de programmation de haut niveau (Java, Python, C ++ ...) en d'autres langages de programmation et vice versa.

Le système créé appartient à la catégorie dite «non supervisé», c'est-à-dire sans nécessiter d'instructions sur les données d'apprentissage et, en théorie, sans nécessiter de supervision humaine.

Le besoin de convertir le code de programmation entre différents langages est très ressenti. Avec l'évolution des technologies de l'information et le développement de différents langages de programmation, on a vu que la transition vers de nouveaux systèmes ou plates-formes d'information n'était pas toujours bon marché et faisable en raison du manque de connaissance des langages de programmation plus anciens.

Pour le passage de grands systèmes, par exemple bancaires, les coûts sont devenus exorbitants et ici le nouveau pourrait entrer en jeu transcompilateur neuronal.
Le nouveau système est basé sur l'utilisation d'un "langage multilingue" (pour la phase de pré-formation) qui cartographie les expressions ayant une signification similaire des différents langages de programmation.

La précision du nouveau système est très élevée, du moins dans la transition entre C ++ et Java (elle atteint 74,8%), alors qu'elle tombe à 67,2% lorsqu'il s'agit de passer du C ++ à Python.
Des résultats encore meilleurs sont obtenus lors de la transition de Java vers C ++ (91,6%).
Précision plus modeste pour la transition de Python vers Java (56,1%) et de Python vers C ++ (57,8%).

Dans le monde industriel et militaire, il n'est pas étrange de trouver des systèmes vieux de plusieurs décennies encore en usage en raison de l'impossibilité de conversion et des coûts énormes à engager pour la modernisation, dans ce secteur de marché, pas petit, le nouvel instrument se positionne.
Il faudra un certain temps pour améliorer la précision du système, en particulier pour la conversion de systèmes réalisés avec des langues plus anciennes vers des langues plus récentes, mais la route semble définitivement ouverte.

Du point de vue de la sécurité, c'est une question complètement différente et devra être étudiée au cas par cas.

Pour en savoir plus:
https://medium.com/@learnbay/facebooks-ai-transcoder-6299a62bf222
https://medium.com/@learnbay/facebooks-ai-transcoder-6299a62bf222
https://www.infoq.com/news/2020/06/facebook-ai-transpiler/
https://medium.com/swlh/transcoder-facebooks-unsupervised-programming-la...