Le statut et l’importance des services logiciels [2] : le statut ontologique du logiciel

par Jean-Luc Dormoy

Pour Turing, face à un problème immensément complexe comme celui de construire une machine intelligente, tout est question de logiciel – c’est un premier pas vers le fait de donner un sens précis au terme d’intelligence[1]. On sait bien d’ailleurs que le logiciel qui permettra (un jour, nous le supposons possible) de répondre à la question sera d’une complexité bien supérieure à celle de la machine matérielle permettant de l’exécuter.

En outre, et ceci est très important à comprendre, ce logiciel existe en soi, indépendamment de la machine qui l’exécute. L’informatique développée depuis l’époque de Turing a su proposer de nombreuses machines, des ordinateurs, mais toutes équivalentes en principe, même si leurs performances sont très dissemblables. Elle a même su empiler des machines virtuelles ou autres virtualisateurs, au-dessus de machines réelles pour permettre d’exécuter un logiciel adapté à une machine d’un certain type sur une machine d’un autre type et pour faire circuler aujourd’hui les services logiciels d’une machine à l’autre sur l’Internet. Enfin, les ordinateurs d’aujourd’hui sont mis en œuvre principalement comme des machines électroniques sur un support à base de silicium. Mais on pourrait aussi bien le faire avec des machines à base de tuyaux où circulerait de l’eau – comme des horloges à eau sophistiquées. Les performances seraient bien sûr moindres – et une loi de Moore difficile à mettre en œuvre ! – mais dans le principe cela ne changerait rien au logiciel.

Le logiciel est donc bien un objet indépendant, existant en soi. Cela est souvent difficilement compris dans les débats autour des conceptions opposant idéalisme et matérialisme. Nous l’affirmons : on peut conduire une étude parfaitement scientifique d’un objet totalement immatériel, indépendamment de son substrat. Bien sûr, ce « verbe » devient action par l’intermédiaire de l’ordinateur, qui est un objet matériel – et c’est peut-être sous cette forme qu’apparaît de la façon la plus frappante l’importance fondamentale de sa découverte. Mais ce n’est pas en examinant le comportement physique d’une machine universelle exécutant un logiciel que l’on se donnera le meilleur moyen de comprendre ce logiciel. Il faudrait en fait le reconstituer – ce que fait le reverse engineering utilisé pour reconstruire un logiciel dans sa version en langage source plus compréhensible pour l’être humain à partir de son code exécutable – on n’a d’ailleurs pas besoin de l’exécuter dans ce cas – ou ce que font partiellement les méthodes analysant les manifestations électromagnétiques d’une carte à puce en fonctionnement pour casser une clé de sécurité. Dans un cas comme dans l’autre, la tâche est particulièrement difficile, ou à but très partiel.

Non, le meilleur moyen d’étudier un logiciel est d’étudier le logiciel à partir de son énoncé. Bien sûr le « faire tourner » constitue un moyen de cette étude, pour regarder les résultats qu’il produit selon les données qui y sont entrées, un peu comme dans une étude de psychologie comportementale. L’avantage pour le logiciel est que l’on peut examiner les états intermédiaires de la mémoire tout en suivant les processus de calcul en cours.

Plusieurs disciplines structurent l’étude du logiciel en soi, par exemple l’algorithmique, les langages, l’étude des processus (synchrone et asynchrone), le traitement des données. D’autres traitent de l’application du logiciel à des domaines connexes, comme la vision par ordinateur ou la recherche d’information. Ces diverses sous-disciplines de la « science du calcul » (de l’anglais computing science) indiquent l’autonomie épistémique du domaine du logiciel. Et non, ce n’est pas du domaine de l’idéalisme, mais relève bien d’une démarche scientifique « matérialiste », même si le « matériau » est « immatériel ».

Kurt Gödel avec un jardinier inconnu

Kurt Gödel avec un jardinier inconnu

Un autre élément à porter au crédit d’une preuve ontologique de l’existence en soi du logiciel est qu’on peut le voir comme un objet mathématique. Nous ne pensons pas que le logiciel se résume à cela – c’est aussi un objet économique, psychologique, social, physique, etc. Mais d’un point de vue théorique, logique – au sens profond de la logique comme branche des mathématiques – un logiciel constitue une preuve constructive d’un théorème mathématique[2]. Bien sûr, en adoptant ce point de vue, on fait entrer ce débat sur la « réalité » du logiciel dans les discussions philosophiques non tranchées au sujet des mathématiques entre le platonisme, qu’avait d’ailleurs adopté Gödel pour les mathématiques dans leur ensemble et plus particulièrement les axiomes relatifs à ses fondements, et des visions plus matérialistes réductionnistes – tout in fine doit s’expliquer en termes de lois physiques élémentaires[3]. D’ailleurs sans aller plus loin dans cette discussion, nous ne pensons pas que matérialisme et affirmation de l’existence du logiciel comme objet en soi soient contradictoires.

Enfin, c’est cette conception qui nous conduit à parler de la découverte de l’ordinateur, et pas de son invention. L’ordinateur est en effet le résultat d’un théorème mathématique d’existence d’un objet, la machine universelle. Cette preuve est en outre constructive (intuitionniste, pour les lecteurs quelque peu mathématiciens), la meilleure preuve étant… qu’on construit des ordinateurs[4] !


[1] Pour la robotique, que Turing n’a donc pas abordée, l’intelligence vient aussi des capteurs, actionneurs, de la forme, etc., du robot, c’est-à-dire de son corps, lié à son intelligence, et au monde. On parle ainsi en robotique d’intelligence située.

[2] Pour faire simple et métaphorique, le logiciel constitue la preuve d’un théorème reliant ses données d’entrée et son résultat et spécifiant leur relation logique.

[3] On trouvera sur un autre sujet – l’existence de mécanismes de l’esprit de façon indépendante du substrat leur donnant existence, à savoir le cerveau – une discussion similaire dans le beau livre de débat entre Jean-Pierre Changeux et Alain Connes, Matière à pensée.

[4] Encore que les ordinateurs concrets diffèrent de l’ordinateur théorique de Turing en ce qu’ils ont une mémoire finie – la machine de Turing a une mémoire aussi grande que l’exigent les calculs, c’est-à-dire potentiellement infinie.

Licence Creative Commons
Moore’s Law and the Future of [Technology] Economy de Jean-Luc Dormoy est mis à disposition selon les termes de la licence Creative Commons Attribution – Pas d’Utilisation Commerciale – Partage à l’Identique 3.0 non transposé.
Basé(e) sur une oeuvre à mooreslawblog.com.