Un siècle après la mort de Leibniz en 1716, que reste-t-il de la métaphore de la pensée comme machine à calculer que le grand esprit universel avait commencé à esquisser? À vrai dire, elle semble avoir sombré dans l’oubli pendant le 18e siècle. Ce n’est qu’au 19e siècle que cette métaphore connaîtra un regain d’intérêt. Encore faut-il nuancer nos propos, car nous verrons que la pensée se trouve à nouveau dissocier de la machine à calculer, alors que revient en force la métaphore de la pensée comme calcul mathématique, avec George Boole et Gottlob Frege, deux mathématiciens philosophes que nous étudierons bientôt. Il ne faudrait pas pour autant en déduire que l’évolution de la machine à calculer stagne. Au contraire, elle a connu au 19e siècle quelques innovations techniques qui seront aux fondements de l’invention des ordinateurs modernes. Et ces innovations, nous les devons à Charles Babbage.
L’intérêt de ce regard sur l’œuvre de Babbage est de mettre en valeur les nombreuses innovations conceptuelles qu’il voulait apporter à la machine à calculer. Nous réaliserons que ces innovations reposent essentiellement sur des analogies entre domaines d’expériences concrètes. Dans le cas de la première machine, ce sera le domaine d’expériences exaspérantes du calcul manuel des tables à mesurer. Dans le cas de la seconde machine, c’est l’observation du métier à tisser Jacquard. Ces analogies permettent à ce moment la distinction de concepts qui n’existaient pas auparavant.
La première machine à calculer que Babbage a voulu construire était une machine numérique, par opposition à une machine analogique. Le terme « analogique » doit être compris ici encore une fois au sens grec de proportion mathématique, ce même sens que Leibniz employait lorsqu’il parlait d’analogie. Je commence par expliquer ce qu’est un outil de mesure analogique, dont l’exemple sera le thermomètre. Le thermomètre est un outil dont la variation de mesure (la hauteur du mercure) est en parfaite corrélation continue avec la variation de ce qui est mesuré (la température ambiante). Évidemment, il faut reconnaître que la variation que rend visible l’outil de mesure n’a de sens que pour ceux qui se servent de ces outils de mesure. Ce sont leurs analogies entre deux domaines d’expériences qui donne un sens à la mesure analogique.
Dans le cas d’une machine à calculer analogique telle qu’elle pouvait exister à l’époque de Babbage, il faut comprendre que l’analogie est posée entre la variation des cadrans (affichant des valeurs numériques) produite par le mécanisme de la machine et la variation des valeurs numériques (sur papier) obtenues par une technique de calcul d’une fonction mathématique. Il y a une correspondance continue entre les deux domaines, si bien que chaque machine contient un agencement déterminé d’engrenages qui ne permet de calculer par son mouvement continu qu’une seule forme d’équations mathématiques. Pour résoudre une autre forme d’équations mathématiques, il faut concevoir un nouvel agencement d’engrenages.
Le génie de Babbage est d’avoir dans un premier temps envisagé une nouvelle méthode de calcul des fonctions continues pour sa machine à calculer. Il n’était plus question de se limiter à la corrélation continue entre un engrenage et une équation mathématique, mais plutôt de se servir du même engrenage pour calculer une équation polynomiale qui peut approximer avec un degré de précision désiré un grand nombre de fonctions mathématiques continues ( Note 7). L’intérêt pour les fonctions polynomiales provient essentiellement du type de problèmes que voulait résoudre Babbage. En effet, il était complètement exaspéré de constater que l’inexactitude des tables logarithmiques et astronomiques employées par la marine anglaise provenait essentiellement des erreurs humaines de calcul. Il cherchait à automatiser le calcul des tables de calculs pour enfin le débarrasser des erreurs d’inattention.
La méthode de calcul par fonction polynomiale que voulait introduire Babbage dans sa machine était numérique au sens où la variation n’est plus conçue comme le mouvement continue des engrenages mais plutôt comme l’ajout successif de petites variations ayant une valeur numérique constante. La variation continue est décomposée en petites variations de même longueur, et c’est en ce sens que nous parlons d’un calcul discret et numérique. Le prochain tableau illustre le calcul des variations discrètes pour l’équation équation polynomiale 41 + N +N2. Il existe une méthode très simple fondée sur le calcul de la dérivée seconde (dans ce cas-ci) permettant de calculer la valeur de l’équation à N+1 si on connaît le résultat à N. Le tableau suivant illustre cette méthode dite différentielle :
N | 41 + N + N2 | D1 | D2 |
---|---|---|---|
0 |
41 |
||
1 |
43 |
2 |
|
2 |
47 |
4 |
2 |
3 |
53 |
6 |
2 |
4 |
61 |
8 |
2 |
... |
... |
... |
... |
et ainsi de suite. On voit clairement que la variation D2 est constante lorsque la variation ∆ de N est constante (D2=2 si ∆N=1). Ainsi le calcul du résultat numérique de l’équation peut-il être obtenu par une méthode mécanique qui n’est pas analogique, car la variation du calcul n’est plus directement proportionnelle au mouvement continu des engrenages, mais plutôt discrète, étape par étape, fondée sur l’ajout répété d’une valeur numérique constante à des valeurs numériques déjà calculées par la machine lors d’une étape précédente. C’est essentiellement ce calcul que Babbage souhaitait voir exécuter par sa « machine à différences » (difference engine). Il espérait ainsi lui faire résoudre toutes les équations polynomiales de degré 6 de forme
a + bN +cN2 + dN3 + eN4 + fN5 + gN6.
Mais la première machine de Babbage n’a jamais été construite… par Babbage. Non pas qu’elle ne pouvait être construite, puisqu’un Suédois du nom de Pehr Georg Scheutz s’était inspiré des idées de Babbage pour construire avec succès un prototype en 1834. L’insuccès de Babbage est plutôt imputable à son inconstance, mais aussi et peut-être surtout à une nouvelle idée de machine à calculer qui rendait à ses yeux sa machine à différences complètement obsolète avant même d’avoir vu l’existence.
La méthode de calcul numérique de la machine à différences convenait parfaitement au calcul de la fonction polynomiale. Ainsi le mécanisme de la machine à différences pouvait-il calculer n’importe quelle fonction polynomiale (de degré 6 maximum), mais il ne pouvait calculer que des fonctions polynomiales. Le second « coup de génie » de Babbage est d’avoir imaginé un mécanisme véritablement universel, au sens où elle pouvait calculer de manière numérique n’importe quelle fonction. L’idée était de fournir à la machine non seulement les valeurs numériques à calculer, mais aussi les instructions pour le calcul à exécuter. C’est ainsi que la machine analytique (Analytical Engine) de Babbage est devenue l’ancêtre des ordinateurs modernes.
Pour les besoins de la présente thèse, il est particulièrement intéressant de savoir que la principale source d’inspiration de Babbage est une analogie entre le métier à tisser de Jacquard inventé en 1805 et sa machine analytique dont les premiers plans remontent à 1833. Babbage explique lui-même dans son autobiographie comment il a été inspiré. Sachons tout d’abord que Babbage distingue deux parties essentielles dans la machine à tisser Jacquard, le « magasin » (the store)et le « module » (the mill). Dans le magasin se trouvent en réserve toutes les bobines de fils qui serviront à tisser les étoffes. Le « module » est la véritable innovation de cette machine. Il permet de lire des cartes perforées sur lesquels sont indiquées des instructions permettant d’exécuter un patron particulier. Ainsi, la machine à tisser peut exécuter n’importe quelle patron, il suffit de lui faire lire la carte perforée appropriée. Autrement dit, une machine n’est jamais condamnée à tisser toujours le même patron. Voici ce qu’en dit Babbage.
It is known as a fact that the Jacquard loom is capable of weaving any design that the imagination of man may conceive… holes [are punched] in a set of pasteboard cards in such a matter that when these cards are placed in a Jacquard loom, it will then weave… the exact pattern designed by the artist.
The analogy of the Analytical Engine with this well-known process is nearly perfect.
The Analytical Engine consists of two parts : –
1st. The store in which the variables to be operated upon, as well as all those quantities which have arisen from the results of other operations, are placed.
2nd. The mill into which the quantities about to be operated upon are always brought. (Cité dans Goldstine 1972, pp. 20-21)
Suivant l’analogie, le module de la machine analytique lit des cartes perforées qui contiennent les instructions des opérations mécaniques à effectuer sur les valeurs numériques. La machine analytique est une machine universelle au sens où son mécanisme peut imiter le mécanisme de tout autre machine digitale. Il suffit de trouver la bonne séquence d’instructions de calcul numérique et de la traduire sur une carte perforée. Lorsque cette carte sera lue par le module, la machine analytique reproduira le « patron de calcul » et obtiendra les mêmes résultats que la machine imitée. Comme le dit si bien son indispensable collaboratrice, Ada Lovelace : « We may say most aptly that the Analytical Engine weaves algebraical patterns just as the Jacquard-loom weaves flowers and leaves. » (Citée dans Goldstine 1972, p. 22.)
Mais si les instructions sur carte perforée du métier à tisser guidaient la manipulation de fils, les instructions de la machine analytique guident la manipulation de valeurs numériques. Mais quelle forme prendront ces valeurs numériques? Comment stocker des valeurs numériques? Babbage comprend qu’il peut utiliser des cartes perforées pour emmagasiner non seulement les instructions du « patron de calcul », mais aussi des valeurs numériques. Voilà qui est fort inventif!
Under this arrangement, when any [algebraical] formula is required to be computed a set of operations cards must be strung together, which contain the series of operations and the order in which they occur. Another set of cards must then be strung together, to call in the variables into the mill, in the order in which they are required to be acted upon. Each operation will require three other cards, two represent the variables and constants and their numerical values upon which the previous operation card is to act, and one to indicate the variable on which the arithmetical result of this operation is to be placed.
The Analytical Engine is therefore a machine of the most general nature. Whatever formula it is required to develop, the law of its development must be communicated to it by two sets of cards. When these have been placed, the engine is special for that particular formula. (Cité dans Goldstine 1972, p.21-22)
C’est donc d’une manière très concrète que Babbage comprend pour la première fois qu’il est possible de stocker les données numériques et les instructions numériques en utilisant la méthode commune de la carte perforée. C’est en quelque sorte une contrainte technologique qui l’oblige à utiliser le même outil de stockage. Ainsi apparaît le stockage sous une même forme concrète de données et d’instructions numériques. Cette innovation fait de la machine analytique la première machine à calculer programmable. Cependant, cette idée de programme pour machine universelle, Babbage n’a jamais su la faire aboutir. Elle réapparaîtra dans toute sa splendeur dans les travaux de 1936 d’Alan Turing. Mais retenons que ce qu’aujourd’hui nous appelons « programme informatique » n’est finalement qu’un « patron de calcul » analogue à ceux de la machine analytique de Babbage.
Babbage était si proche de construire le premier ordinateur au monde, comment a-t-il pu échouer? Peut-être souffrait-il du même empressement procrastinatoire que Leibniz? Voici du moins comment Lord Moulton a le regret de constater son échec :
When he died a few years later, not only had he constructed no machine, but the verdict of a jury of kind and sympathetic scientific men who were deputed to pronounce upon what he had left behind him, either in papers or mechanism, was that everything was too incomplete to be capable of being put to any useful purpose. (Cité dans Goldstine 1972, p.24)