A propos de l'utilisation du
mot "langage" en informatique
3 mars 2001
On utilise le terme "langage" pour désigner la
liste des instructions et les règles d'écriture qui permettent de composer un
programme pour ordinateur. Ce langage,
c'est le dispositif de commande des automates.
Il existe une différence importante entre un tel
"langage" et les langages qui nous servent à nous, êtres humains,
pour communiquer ou formuler notre pensée. Un texte énoncé ou écrit par
un être humain est fait pour être compris par celui qui le reçoit ; en outre,
il fait un grand usage des "connotations", ces irradiations de sens
secondaires ou dérivés qui entourent chaque mot et confèrent au texte une
profondeur, un "plein", bien au delà du sens littéral des mots qu'il
contient.
Par contre un programme n'est pas fait pour être lu et
compris : il est incompréhensible, même (après quelques jours) pour celui qui l'a écrit.
Il est fait pour être exécuté à
la lettre par un automate. Les expressions qu'il contient ont toutes un sens et
un seul, car l'automate ne saurait interpréter des connotations et ne peut
exécuter que des instructions non ambiguës.
Il est vrai que les êtres humains, lorsqu'ils doivent
préparer une action, doivent utiliser eux-mêmes un langage précis
et éviter les connotations ; ainsi la technique, la guerre, la science,
utilisent des textes aussi "secs", aussi opératoires qu'un programme
informatique. Parfois ils sont presque aussi incompréhensibles : le mathématicien qui relit une de ses démonstrations après quelques mois
a autant de mal à la comprendre qu'un programmeur qui relit un de ses
programmes. Cependant, même technique, le langage humain est fait pour
être entendu par des êtres humains, et non pour être exécuté par des automates ; les
mathématiciens eux-mêmes ont recours, pour faciliter la lecture, à des
"abus de langage" qui court-circuitent certaines étapes, supposées évidentes, du
raisonnement (cf. l'introduction du traité de Bourbaki). Il ne peut en être ainsi d'un programme
informatique qui doit être parfaitement explicite pour
l'automate.
On a pu, certes, utiliser les mots "grammaire", "syntaxe"
et "vocabulaire" pour
désigner la structure et les composants d'un langage de programmation ; ces
mots sont ici bien à leur place, car les règles formelles de
la programmation s'expriment de façon analogue à celles du langage
humain. Mais cette analogie n'est pas une identité : parler de
"langage" pour désigner le "dispositif de commande des
automates", c'est... un abus de langage qui suscite la confusion, notamment
dans les réflexions sur l'"intelligence" de l'ordinateur.
Il est d'ailleurs intéressant d'examiner le rôle
que joue, dans l'intelligence humaine, l'interaction
entre langage connoté et langage conceptuel.