26) Réaliser une Machine de Turing en moins de deux heures !

Chaque fois que l’on désire tester un algorithme sur la machine, il faut obligatoirement réaliser une feuille perforée. C’est à la fois la consommation d’une page imprimée, et un travail fastidieux pour réaliser les nombreuses ouvertures circulaires. Dès que notre prototype sera réputé utilisable, nous allons forcément désirer le tester et le valider sur plusieurs programmes. Pour éviter une perte de temps et de papier inutile, on sera bien tenté de soumettre à la mécanique des algorithmes récupérés sur Internet qui sont supposés corrects. Force est de constater que ce n’est pas gravé dans le marbre, et j’ai du refaire « pour rien » trois feuilles perforées. Aussi, j’en suis rapidement arrivé à la conclusion, qu’avant de réaliser une feuille de programme ajourée, il serait plus sage de tester « en temps réel » la séquence d’expérimentation.
Suite à diverses manipulations, je me suis vite rendu compte que la méthode papier, crayon, gomme était d’une inefficacité patente. D’où l’idée de concrétiser une vraie Machine de Turing avec du papier plastifié de récupération. Représentée sur la Fig.128 cette version animée donne pleine satisfaction et évite ainsi bien des déconvenues. La « puissance » de cet exemplaire est limitée à un OCTET soit huit BITs. On sera limité pour la richesse des données, mais d’un autre coté le nombre de « cycles HORLOGE » croit rapidement avec la taille de la donnée traitée. Aussi, ces huit BITs seront généralement suffisants pour évaluer le comportement d’un algorithme ; qu’il soit trouvé sur la toile, ou de votre fait.
Sur cette photographie on trouve en 1 les huit BITs de l’octet. Ces pions virtuels se déplacent verticalement pour pouvoir adopter les trois positions « B« , « 0 » et « 1« . En 2 se trouve la bande de papier qui se translate horizontalement pour positionner la tête de LECTURE / ÉCRITURE symbolisée en 3 sous le BIT de notre choix. Enfin en 4 le disque qui tourne mémorise l’ÉTAT machine du moment. (Ici il est en position n°9.)
REMARQUE : Sur cette Fig.128 l’image a été complétée par un croquis gris représentant le coté de la bande 2 qui est hors du cadre de la photographie. En effet, la bande est symétrique par rapport à 3. On notera au passage, que la bande de papier linéaire encombre bien plus l’environnement que son homologue circulaire. Ce concept rectiligne aboutit à des prototypes bien plus larges que l’option « barillet ».
Curieusement, il semble que l’indication du déplacement de la bande qui matérialise la tête de LECTURE / ÉCRITURE soit inversée, c’est à dire que pour un déplacement à Droite la flèche est orientée vers la Gauche et pour la Gauche elle est dirigée vers la droite. Ce n’est pas du tout contradictoire. Dans le concept énoncé par Turing, c’est la bande de papier qui se déplace, option que j’ai adoptée sur le prototype. Quand un mouvement à Gauche est programmé, le plateau tourne pour faire défiler les pions vers la gauche, et réciproquement. Sur l’exemplaire papier de notre machine, c’est la bande qui symbolise la tête de LECTURE / ÉCRITURE. Du coup, si l’algorithme respecte la description initiale, on doit inverser le sens de la translation. Noter que parmi les algorithmes qui m’ont obligé à refaire la feuille perforée, certains étaient faux car pour G et D l’auteur faisait allusion au déplacement de la tête de LECTURE / ÉCRITURE et non de la bande de papier. (Donc, si vous utilisez des logiciels trouvés sur Internet, méfiez-vous, car ce type d’inversion me semble fréquent … et non précisé !)

La suite est ici : 27) Deux exemples de programme..