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
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): . Je me limite aux programmes sans entrées. Il est facile
d'écrire un programme
capable de simuler un interprète FORTRAN sur un nombre
fini d'étapes. Il ne suffit plus alors que d'écrire une
routine qui va zigzaguer sur toutes les exécutions finies
de tous les programmes. Par exemple en appliquant
(destructivement) sur les programmes, générés avec , 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 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, entrées, entrées infinies et
générables, etc. Par exemple parmi les programmes
FORTRAN à entrée figure un simulateur d'un
déployeur des programmes LISP ayant pour entrée les
segments initiaux des nombres réels. , 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 se déploie sur tous
les langages de programmation possibles découle de
la thèse de Church.