next up previous contents
Next: L'hypothèse extravagante Up: L'argument du déployeur universel Previous: La sélection ne dépend

L'argument du déployeur universel

Définition Un déployeur universel est un programme qui exécute tous les programmes possibles dans tous les langages de programmation possibles.
L'existence arithmétique d'un tel programme découle du réalisme arithmétique. Il est facile (pour ceux qui apprécie ``tâter la bécanne") d'écrire un programme A en FORTRAN capable de générer et numéroter tous les programmes FORTRAN par ordre de longueur (et par ordre alphabétique ceux de mêmes longueurs): F1, F2, F3, .... Je me limite aux programmes sans entrées. Il est facile d'écrire un programme B capable de simuler un interprète FORTRAN sur un nombre fini d'étapes. Il ne suffit plus alors que d'écrire une routine DU qui va zigzaguer sur toutes les exécutions finies de tous les programmes. Par exemple en appliquant B (destructivement) sur les programmes, générés avec A, dans l'ordre suivant 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, 1, etc.
Il est facile de démontrer que, malgré les limitations apparentes, le déployeur DU se déploie sur tous les programmes, qu'il soit écrit en FORTRAN, LISP, JEU-DE-LA-VIE, etc, et ça qu'il soit à 0 entrée, 1 entrée, n entrées, entrées infinies et générables, etc. Par exemple parmi les programmes FORTRAN à 0 entrée figure un simulateur d'un déployeur des programmes LISP ayant pour entrée les segments initiaux des nombres réels. DU, notre déployeur universel concret se déploie sur tous les programmes possibles, interfacés de toutes les façons possibles, dans tous les environnements digitalisables possibles.
Qu'un tel déployeur DU se déploie sur tous les langages de programmation possibles découle de la thèse de Church.



next up previous contents
Next: L'hypothèse extravagante Up: L'argument du déployeur universel Previous: La sélection ne dépend

Bruno Marchal
Thu Apr 1 00:14:24 CEST 1999