• Aucun résultat trouvé

La programmatique comportementale de la machine de Turing

Dans le document The DART-Europe E-theses Portal (Page 26-30)

L’axiomatique (qui remonte au moins à Euclide) désigne des propositions non démon-trables permettant de fonder une logique mathématique. Dès le xviiie siècle, Leibniz in-terroge la valeur d’un énoncé mathématique. En imaginant une machine capable de ma-nipuler des symboles, il pose les bases de ce que serait un « langage formel », c’est-à-dire une syntaxe articulée à un vocabulaire symbolique univoque. Tout système formel com-porte des thèses, dont certaines sont posées « par principe » (les axiomes) et d’autres comme des énoncés à démontrer. Au début des années 30, Kurt Gödel démontre que tout système formel comporte au moins une thèse qui n’est pas démontrable dans ce système (à l’exception des axiomes qui sont là par principe). Cette démonstration lui permet d’établir que tout système formel est « incomplet » : c’est le théorème

d’incom-34 L. Moholy-Nagy, « Nouvelle méthode d’approche – Le design pour la vie » [ 1947 ], trad. de l’anglais par J. Kempf et G. Dallez, dans : Peinture Photographie Film et autres écrits sur la photographie [ 1993 ], Paris, Folio, 2007, p. 269.

26 plétude. Dans cette mise en doute de la faculté des mathématiques à parvenir à une valeur de vérité universelle, Gödel nous intéresse parce qu’il désespère d’avance tout

« programmeur » de parvenir à réaliser un système formel parfaitement automatisé (un programme) : il y aura toujours une thèse (un bug) qui ne pourra pas être démontrable (envisagée) au sein de ce système.

À la suite de Gödel, Alan Turing va formaliser sa « Machine universelle », qui démontre l’incomplétude résidant dans tout énoncé mathématique. Dans son article « Théorie des nombres calculables, suivi d’une application au problème de la décision 35 », il se de-mande s’il existe une méthode calculable pour savoir si une proposition mathématique peut être démontrable. Turing parvient à rendre visible le fait qu’il existe toujours une thèse indémontrable au sein d’un système : il formalise la démonstration de Gödel sur le principe d’incomplétude. Ainsi, la « machine de Turing » démontre « l’indécidabilité 36 » de l’arrêt d’une autre machine du même type. Il n’y a pas de fonction permettant de savoir si une autre Machine de Turing est ou n’est pas éteinte. Ce problème de logique va se résoudre par des opérations de type binaire (oui/non).

Un homme en train de calculer la valeur d’un nombre réel peut être comparé à une « machine » susceptible de se trouver dans un nombre ini d’états [ … ] La machine est alimentée avec une « bande » (analogue au papier

qu’utilise l’homme), divisée en sections (appelées « cases »), dans cha-cune desquelles peut être inscrit un « symbole 37 » [ … ] le seul dont la machine est pour ainsi dire « directement consciente 38 ».

Concrètement, la Machine de Turingse compose d’un « ruban » contenant des cases dans lesquelles une « tête de lecture / écriture » se déplace de droite à gauche, et inscri-vant des symboles alphabétiques. Avec Turing, on passe de la calculabilité (ce qui peut être calculé) au calcul (comment calculer effectivement quelque chose). Grâce à un

« registre », la machine peut mémoriser des « états », dont un « spécial » qui indique son démarrage. La machine peut, sur un temps inini, inscrire sur le ruban un nombre réel tel que pi. Le mode d’écriture de la Machine de Turing est constitué d’un ensemble de

« symboles » délimités, qui, agencés dans un certain ordre, permettent à la machine de fonctionner en autonomie. Elle garde trace de ses anciennes interventions ain de conti-nuer sa route implacable selon un mode séquentiel (lecture linéaire et totale de gauche à droite). Ain de gagner de la place sur le ruban, les symboles peuvent aussi pointer vers

35 A. Turing, « On Computable Numbers, with an Application to the Entscheidungsproblem » [ 1936 ], trad.

de l’anglais par J.-Y. Girard, dans : La Machine de Turing, Paris, Seuil, coll. Points Science, 1999.

36 Ibid., p. 96 : « Nous pouvons maintenant prouver que le problème de la décision n’a pas de solution. »

37 Ibid., p. 77 : « Le symbole est déini comme un ensemble de points [imprimés] dans la case, à savoir l’ensemble des points noircis par l’encre imprimée. [ … ] Dans les langues européennes, chaque mot est traité comme un symbole [ notion de ‹ reconnaissance immédiate › ]. »

38 Ibid., p. 51.

Élément historique 1

27

Fig. 2

des « tables abrégées 39 », des abréviations d’opérations récurrentes. La variable est un symbole qui renvoie à un ensemble de symboles. Cependant, la variable est plus qu’une abréviation (quelque chose qui redirige toujours vers un même terme). La variable a la possibilité de renvoyer, comme son nom l’indique, à quelque chose qui peut varier. Par exemple, comme le dit Turing, la variable peut pointer vers un « traitement » (« process »), vers une opération de calcul. Elle sert à accomplir une tâche précise. En écrivant ligne par ligne (case par case) des résultats d’opérations, la Machine de Turing s’apparente struc-turellement à un ordinateur. Comme la machine de Turing peut exécuter n’importe quel calcul, elle va être capable de simuler une autre Machine de Turing. La machine « univer-selle » peut simuler n’importe quelle machine tout en restant elle-même. Chaque ma-chine universelle peut donc, sous réserve de disponibilité matérielle du ruban, contenir toutes les autres machines 40. Cette possibilité de pouvoir simultanément calculer plu-sieurs choses et de les imbriquer sur le mode des « variables 41 » est à la base des langages numériques, ceux qui quittent le support papier :

Un langage de programmation est un langage qui est destiné à l’expres-sion de programmes informatiques, et qui est capable d’exprimer n’im-porte quel programme informatique. Ceci n’est pas une déinition loue.

Il y a une manière théorique et précise de déterminer si un langage infor-matique peut être utilisé pour exprimer n’importe quel programme, c’est de montrer qu’il est équivalent à une machine de Turing universelle 42.

Un système formel est donc constitué d’axiomes (les points de départ) et de programmes (les thèses démontrables au sein du système), c’est un mélange de règles et d’expressions de cette règle (les expressions « en actes »). Ce que nous apprennent Gödel et Turing, c’est qu’en tant que langage informatique, tout pro-gramme est voué à l’incomplétude : il inira par « planter » [ Fig. 2 ]. S’il n’est pas possible de concevoir un langage complet, il est malgré tout possible de gérer et

39 A. Turing, ibid., p. 57 : « Une table type [ skeleton table ] fait intervenir des lettres majuscules et des lettres grecques minuscules, qui sont les unes et les autres des ‹ variables › [ … ] Il faut noter que les tables types ne sont rien de plus que des abréviations qui n’ont rien d’essentiel. »

40 A. Turing, ibid., p. 66 : « Il est possible d’inventer une u-machine [ machine universelle ] utilisable pour calculer n’importe quelle séquence calculable. Si on fournit à cette machine une bande au début de laquelle est inscrite la [ référence ] d’une machine m à calculer quelconque, la u-machine calcule alors la séquence que m calculerait si elle était construite. »

41 En informatique, une variable se déinit par un nom, un type, un emplacement mémoire, un contenu, et une portée. Elle renvoie un résultat pouvant être afiché sur écran, ou soumet ce résultat à un autre traitement. Ce qui va permettre d’imbriquer les variables entre elles, c’est la « fonction ». En informatique, une fonction désigne une série d’instructions regroupées dans une même entité. En « code orienté objet », orienté objet, une fonction s’appelle « méthode », et peut prendre un caractère public, privé ou semi-privé.

42 B. J. Maclennan, « What is a programming language? », dans : Principles of Programming Languages, Oxford University Press, 1999 : « A programming language is a language that is intended for the expression of computer programs and that is capable of expressing any computer program. This is not a vague notion.

There is a precice theorical way of determining whether a computer language can be used to express any program, namely, by showing that is equivalent to a universal Turing machine. » Traduction de l’auteur.

« comme nous pourrions penser », la fiction technique de vannevar bush

28 d’anticiper les bugs (erreurs) par l’ajout d’autres programmes. C’est là que le concept de machine prend son sens : elle est ce qui marche et se complète seule.

Cette façon de faire des programmes se donne ainsi comme impossible horizon de résoudre l’incomplétude par l’automatisation [ Fig. 3 ]. La « machine universelle » de Turing joue comme modèle de programme informatique, un modèle de papier ramené à l’inini déroulé d’un ruban inscriptible. Séquentielle et linéaire, elle ne peut pas ne pas calculer. La machine est de type « procédural », au sens où elle fait strictement ce qui lui est assigné. Calculer, c’est symboliser, c’est effectuer des opérations sur des entités « discrètes » (au sens mathématiques du terme) pou-vant se ranger dans des cases. Se pose alors la question du choix :

Pour certains besoins, nous devons utiliser des machines [à choix] dont le comportement ne dépend que partiellement de la coniguration (d’où la notion de comportements possibles) : lorsqu’une telle machine atteint une coniguration ambiguë, un opérateur extérieur doit intervenir et faire un choix arbitraire pour que la machine puisse continuer son travail 43.

L’utilisation (dans la traduction française) du mot « comportement » traduit la volonté de laisser de côté tout ce qui serait non déini, « ambigu ». L’humain ne conduit pas la machine mais se contente de « faire un choix arbitraire ». Ce choix n’est pas tout à fait un choix, au sens où choisir, au sens fort, consiste à distinguer consciemment entre deux situations différentes. L’arbitraire est le contraire du choix. Si l’humain n’était pas intel-ligent, il ne serait pas en mesure de faire des choix. Le choix humain, celui de l’intelli-gence, repose sur des principes situés en dehors du formalisme du calcul, au-delà du computationnel. Le programme pose un double choix à l’être humain : celui de pouvoir choisir un système qui se tromperait le moins possible, et celui de changer de système si ce dernier ne correspond pas à la première exigence. L’humain doit toujours être capable de changer de système si celui-ci devient instable et incohérent. Il n’y a pas de choix dans le calcul, ce qui explique qu’il n’y a pas lieu de parler ou de s’inquiéter d’objets ou de sys-tèmes dits « intelligents ». Ce qui va caractériser l’humain par rapport à la machine dans le « test de Turing », c’est sa faculté à simuler l’autre comme humain. Plus précisément, l’autre m’apparaît comme un être intelligent si je ne suis pas en mesure d’établir une dif-férence entre lui et une machine. La faculté de penser se déplace dans une imitation sym-bolique de la pensée.

43 A. Turing, op. cit., p. 52. Texte original : « For some purposes we might use machines (choice machines or c-machines) whose motion is only partially determined by the coniguration (hence the use of the word

“possible”). When such a machine reaches one of these ambiguous conigurations, it cannot go on until some arbitrary choice has been made by an external operator. »

Fig. 3

Élément historique 1

De par ses « calculateurs universels programmables », Alan Turing est ainsi communé- 29

ment reconnu comme ayant conçu la structure de base de l’ordinateur tel qu’il existe encore aujourd’hui. Ce qui est notable dans le texte de Turing, c’est que sa machine an-nonciatrice des programmes informatiques est avant tout, comme le dit Jean-Yves Girard, une « machine de papier 44 », une tentative de donner forme à un théorème par le re-cours à des objets concrets (le ruban, etc.). L’intérêt du texte réside dans cette maté-rialité conceptuelle, qui ne s’apparente pas au typologies du mythe platonicien ou de la métaphore cartésienne du morceau de cire. De ce point de vue, cet objet paradoxal jeté dans le texte en quelques paragraphes fait écho à ce qu’écrira Vannevar Bush quelques années plus tard.

Dans le document The DART-Europe E-theses Portal (Page 26-30)