
100% du code exécuté par vos ordinateurs est produit par une « IA »… depuis 1952 !
Depuis les années 50 (par exemple : Autocode) les conceptrices et concepteurs de langages informatiques inventent et définissent ces langages artificiels, formels, non ambigus, issus des mathématiques et d’une de ses branches : la théorie des langages. Décennies après décennies, ces langages ont évolué pour simplifier, condenser de plus en plus la description des « algorithmes », ces procédés pour traiter efficacement de l’information numérique ou symbolique. Ces progrès techniques ont permis d’augmenter considérablement la productivité de celles et ceux qui écrivent les logiciels que vous utilisez quotidiennement, y compris sur vos téléphones, vos véhicules, etc.
Ces langages sont aussi conçus pour être automatiquement « interprétables » par une machine. Par exemple, en écrivant un programme, appelé « compilateur » qui se charge de traduire automatiquement le langage « source » en langage « machine ». Le langage « machine » est en effet le seul que le processeur peut directement « exécuter », c’est à dire transformer en des séquences de divers signaux électriques envoyés aux différents circuits électroniques qui composent une unité centrale de calcul (CPU). Et ce n’est pas une « bonne vieille » méthode, qui serait aujourd’hui obsolète. Quand votre copilote, fondé sur un modèle de langue auto régressif (on dit aussi prédictif ou génératif) produit automatiquement du code source à partir de votre demande exprimée dans votre langue naturelle, c’est bien toujours du langage machine qui est décodé et exécuté en définitive par votre CPU, votre FPU, votre GPU, votre NPU1.
Or, on doit à Larry Tesler (1945-2020), le célèbre inventeur du « copier-coller », cette définition de l’intelligence artificielle citée par (Hofstadter, 2008, p. 6742) : l’IA c’est « Tout ce que les machines n’ont pas encore fait » . Suivant cette définition, le premier compilateur écrit en 1952, pouvait être à cette époque considéré comme une IA, non ?
Reste que jusqu’en 2022, avec l’arrivée du fameux Alphacode de l’entreprise DeepMind3, on n’envisageait pas vraiment de traduire automatiquement une langue naturelle en langage informatique. Car même lorsque l’on est très expérimenté, il arrive encore que l’on soit surpris par l’exécution d’un programme que l’on a écrit soit même, car le CPU fait exactement, strictement ce qu’on lui a demandé. Mais ce qu’on lui a demandé n’est pas forcément ce qu’on avait l’intention de lui demander. On s’est mal exprimé et l’on remarque un bug. Cela fait bien longtemps que les insectes ne provoquent plus de court-circuits dans les transistors qui composent nos unités centrales et on est bien obligé d’admettre que ce n’est pas la machine qui a buggé, comme on le dit abusivement, mais nous mêmes.
Le fait est que nous traduisons nos pensées dans une langue naturelle qui est complexe, riche, ambigüe, contextuelle, culturelle, implicite, etc. Même en faisant en sorte que nos énoncés soient le moins ambigus possible, il y a toujours des personnes ou des situations dans lesquelles nos propos sont « mal interprétés ». Alors s’il s’agit de s’adresser dans cette langue à un réseau de circuits électroniques…
Et pourtant, oui : il est aujourd’hui possible de passer automatiquement d’une demande exprimée en langue naturelle à un code source informatique. Et oui: dans certaines conditions, cela peut permettre de faciliter et d’accélérer encore la production de logiciels. Mais cela n’est pas sans risque4…
- C: Central ; F: Floating Point ; G: Graphical ; N : Neural ; PU : Processing Unit ↩︎
- Hofstadter D.R., Gödel, Escher, Bach : les brins d’une guirlande éternelle, Paris, Dunod, 2008 (édition originale, New York, 1979). ↩︎
- https://arxiv.org/pdf/2203.07814 ↩︎
- https://cmi-2i2a.univ-avignon.fr/index.php/2024/12/12/copilot-est-il-un-bon-copilote/ ↩︎