Podcast : Parler aux machines

Dis-leur !

Podcasts

Parler aux machines

Port USB bleu posé sur une table. Une bouche et une angle y sont ajoutés, comme un sticker.
© Aurore VALEX
Visuel : Parler aux machines

Le mot langage est utilisé couramment pour décrire la façon de programmer les ordinateurs. On dit souvent qu’un langage sert à indiquer à une machine ce qu’elle doit faire. Mais cela n’explique ni la variété de ces langages ni comment ils ont évolué ! Alors, attachez vos ceintures, on va mener l’enquête. Pourquoi existe-t-il plusieurs langages informatiques ?

[Musique jingle]

On souhaite tous les jours que nos machines réalisent des tâches précises : chercher une page Internet, effectuer une addition dans une colonne Excel, diffuser le dernier son de Booba… 

Pour chacune de nos demandes, on veut obtenir un résultat s’il existe et on veut obtenir le bon. Et pour deux instructions identiques, on veut obtenir le même résultat ! Pour résoudre ces problèmes, la machine a besoin de méthodes systématiques conduisant à coup sûr au résultat : des algorithmes. 

Un algorithme est une suite de tâches élémentaires qui s’enchaînent selon des règles précises, sans place pour l’interprétation personnelle. Il permet d’ordonner les tâches pour résoudre un problème. Un algorithme doit permettre à la machine de produire un résultat en un nombre fini d’étapes, quelles que soient ses entrées. Cela revient à dire qu’il doit forcément terminer à un moment ou un autre. Il n’y a pas que les machines qui ont besoin d’un algorithme pour bien travailler ! Vous aussi vous utilisez des algorithmes dans la vie de tous les jours. Si vous décidez de vous frotter à la confection de macarons, il vous faudra suivre correctement la recette. 

D’abord allumer le four. Puis, tamiser le sucre, le cacao et la poudre d’amande, puis battre les œufs en neige… [Son de batteur électrique]

Ordonner vos tâches pour que la machine puisse les effectuer, c’est bien. Mais ce n’est pas fini. Il faut encore qu’elle vous comprenne ! C’est le rôle du langage de programmation. Il s’agit d’un code de communication entre un·e humain·e et une machine. Ce n’est qu’une fois traduit dans un langage de programmation, qu’un algorithme devient un programme informatique réalisable par une machine. 

Écrire des mots doux à sa machine

Il est possible d’écrire des programmes de plusieurs façons, dans plusieurs langages. Celui que comprend la machine, un ordinateur, une tablette ou un robot, c’est le langage machine. Celui-ci est interprété par le processeur de l’ordinateur. Le nombre et la nature des instructions demandées dépendent du type de processeur utilisé. Elles sont en nombre limité : le déplacement d’un nombre, l’addition ou la soustraction, la comparaison de deux valeurs, le saut vers une autre instruction… 

[Son Langage machine] 101100100000… C’est à cela que ressemble un texte, une image, un son, une vidéo pour un ordinateur. Les instructions traduites par le processeur ne disent pas grand-chose à un être humain : c’est juste une suite de 0 et de 1. Il est très compliqué d’écrire des programmes en langage machine. À l’origine de l’informatique, c’était pourtant le seul moyen de communiquer avec un ordinateur. Aujourd’hui un langage de programmation se développe souvent en s’affranchissant des contraintes de la machine. C’est donc aux chercheurs, aux chercheuses et aux ingénieur·es créateurs et créatrices de ces langages de prévoir la traduction des programmes pour humain·es en des programmes pour machines.

L’histoire de la programmation et des langages informatiques est déjà très riche. On considère que c’est la comtesse Ada Lovelace qui en 1842 crée les tout premiers programmes informatiques. Les premiers langages eux n’apparaissent qu’autour de 1950, comme le célèbre Fortran. L’avènement de la programmation structurée vers 1970 permet la création de programmes traitant des tâches plus diverses et plus complexes. La miniaturisation des ordinateurs et la généralisation des interfaces graphiques ont largement contribué à la démocratisation de l’utilisation de l’ordinateur. Vos smartphones exécutent aujourd’hui des programmes informatiques en permanence. On est bien loin des cartes perforées en carton des années 1940 !

Les langages informatiques répondent aux mêmes règles que les langages écrits : ils sont définis par une syntaxe, une grammaire et une sémantique. Programmer sans fautes est difficile. Pas simplement parce qu’il faut respecter les règles propres au langage informatique. Programmer, c’est prévoir précisément ce qui peut se passer lorsque l’on demande à l’ordinateur d’exécuter une tâche, et il est facile d’oublier certains cas. 

Créer des nouveaux langages de programmation

La recherche sur les langages de programmation travaille aujourd’hui à développer des programmes complexes et plus sûrs, évitant les bugs. Mais aussi de créer des langages dédiés à certaines applications (le traitement de grandes masses de données par exemple). Créer de nouveaux langages de programmation consiste à formaliser une idée pour répondre à des besoins particuliers. À chaque besoin son langage. La réalisation d’un site Web fait appel aux HTML et CSS. Le langage Java est adapté au développement d’une application mobile sur Android. Inventé au début des années 1970, le C est toujours l’un des langages les plus utilisés. Il a même inspiré de nombreux langages plus modernes qui ont repris une syntaxe et une logique similaire. 

Le langage Python est de plus en plus populaire. Placé sous une licence libre, il est conçu pour offrir des outils de haut niveau et une syntaxe simple à utiliser. Il est enseigné dès le lycée car il permet une initiation plutôt facile aux concepts de base de la programmation.

Avec autant de langages informatiques différents, pas facile de savoir lequel choisir en LV2…

Aurore VALEX


Pour aller plus loin

Pourquoi créer des nouveaux langages de programmation ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *