7) Derniers petits exercices pour achever votre formation.

Dans ce chapitre ultime de votre formation, vous allez passer votre permis de conduire une Machine de Turing virtuelle et obtenir votre habilitation à rédiger et modifier des algorithmes. Ce long préambule théâtral ne fait qu’introduire l’exploration des programmes qui sont disponibles dans l’EEPROM et ainsi se faire un petit plaisir avant de se quitter, ou plus exactement en arriver au chapitre de réalisation matérielle de la « petite chose verte » qui a absolument tout d’une grande !

MANIPULATIONS :
1) RESET, puis charger l’emplacement n°2. Passer en OPTIONS, et « n » pour annuler l’option qui consiste à ignorer des lignes non vides et inutilisées au cours d’un RUN. Puis lettre « q » et dans le MENU de BASE « r » pour déclencher l’automatisme. Avec « l » vous analysez le programme et vous comprendrez immédiatement que la ligne 25 ne sera jamais invoquée. À titre d’expérience vous validez l’option de PAS à PAS, vous testez à nouveau ce programme qui ne fait que faire tourner la came des transitions par incrémentations successives. Enfin vous terminez par l’option « a« .
2) Charger l’emplacement n°3. Touche « a » pour vérifier que le BARILLET est vierge. Vous prenez en main la mini-fiche du Programme Utilisateur 11. Imposer « r » pour observer le résultat. Puis trois ou quatre fois « & » pour dégager les données de la tête de L/E. Enfin, dans les options vous validez le mode graphique et recommencez l’exercice. Bravo, vous êtes un opérateur Morse confirmé !
3) Charger maintenant le Programme Utilisateur 54 en emplacement n°4. Il consiste à créer un programme avec un minimum d’instructions qui conduise à un nombre de cycles d’HORLOGE maximal. La tête de L/E « en standard » peut se trouver à plusieurs « B » à gauche de la donnée constituée de BITs à « 1« . Le programme va remplacer tous ces « 1 » par des « 0 » mais en partant alternativement des extrémités vers le centre obligeant ainsi à balayer « factoriellement » la zone des données. Tester en mode graphique et en PAS à PAS en commençant par une donnée de taille réduite. Par exemple [11111]. Puis, avec l’option « i » remplir le barillet avec des « 1« . (La tête de L/E peut se trouver n’importe où.) Recommencer l’exécution en PAS à PAS avec répétition, puis passer en mode aveugle. On verra visuellement le balayage systématique de la zone des données puis la fin indiquera 1654 cycles horloge pour mettre à zéro les 55 BITs ce qui sur la machine imposerait une heure et vingt minutes. Ici le mode « NON graphique » me semble plus pertinent.
4) Dans l’exercice précédent, la remarque sonore pour la ligne non utilisée est assez « agacive » et ne se justifie qu’en développement d’algorithme. Annuler avec « n » cette petite lourdeur.
5) Transférer l’emplacement n°8 qui correspond au Programme Utilisateur 28 de réalisation d’une frise. C’est un a algorithme sans fin bien adapté à un fonctionnement en mode PAS à PAS avec répétition. Dans ce but, « p« , puis « l » pour ne pas lister les lignes, et surtout « v » pour visualiser le BARILLET. Adopter l’option graphique et utiliser « f » pour valider l’option qui prévient l’opérateur que la machine va tourner pour l’éternité. Dans le MENU de BASE conditionnez le plateau comme montré sur la Fig.33 et activer l’exécution. (Utiliser la touche « V » en répétition.) On observe qu’après avoir fait « un tour de plateau » la frise se superpose et la configuration ne change plus.

MANIPULATIONS (Suite) :
6) Avec l’emplacement n°9, on dispose du Programme Utilisateur 34 de construction d’un mur entre deux limites. Ce programme est bien adapté à un fonctionnement en mode PAS à PAS avec des « V« , en mode graphique et sans listage. Charger l’algorithme, et conditionner les options et le plateau de la machine conformément aux informations de la mini-fiche. La Fig.34 présente l’allure du plateau de la machine avant de déclencher le RUN. Analyser le listage pour en déduire la morphologie de cet algorithme et établir la relation avec le comportement de la machine.


7) Transférer l’emplacement n°11, pour avoir le Programme Utilisateur 29 qui duplique une chaîne BINAIRE. Il est typique d’un algorithme dont le nombre de cycles d’HORLOGE augmente de façon significative avec la taille des données. Tester avec la taille maximale de 27 BITs. (Car deux de plus par rapport à la fiche signalétique sont possibles.) L’exécution, conseillée vivement en mode aveugle avec « a« , impose 1543 cycles d’HORLOGE et plus d’une heure sur la Machine.


8) Le Programme Utilisateur 52 de l’emplacement 12 qui construit la suite des puissances de deux est assez pertinent pour observer en mode PAS à PAS avec répétition le déroulement d’un processus. Passer en mode graphique et listage pour surveiller l’évolution de l’HORLOGE. Dans les options, « f » pour suspendre l’avertissement actuellement non souhaité. Initialiser le plateau avec « i« , « o« , trois fois 20, puis 1. En répétition laisser fonctionner et observer les changements des pions sur le plateau virtuel. Quand vous en aurez « assez observé », sortir avec « q » et dans les options imposer « a » confirmé avec « o » et avec « b » placer une butée à 1200 cycles d’HORLOGE.
La machine est alors dans la configuration de BARILLET montrée sur la Fig.36 :


Le programme a déjà écrit les quatre premiers éléments de la suite. Pour passer à l’élément n+1 consulter le bas de la fiche. Sur la Fig.36 la zone jaune gauche est celle qui va être balayée pour construire la zone violette de construction de n+1. Revenir dans les options et annuler la borne avec « b » suivi de 1. Relancer RUN : conformément à la fiche du programme le résultat « diverge » et après 1698 cycles il y a sortie du déroulement du programme et retour au MENU de BASE.
9) Avec l’emplacement 13, donc le Programme Utilisateur 18 on va se faire plaisir et réaliser la Conjecture de SYRACUSE. On peut se permettre sur la machine virtuelle de soumettre à l’algorithme la configuration la plus « musclée » possible de la Fig.37 que l’on obtient avec « i« , « o« , 10, 43, 10, et une suite de 34 BITs tous à « 1« .


On déclenche un RUN en mode aveugle, et en 13396 cycles d’HORLOGE qui prennent environ 2,5 secondes, le processus se termine correctement à la valeur prévue de un. Sur le prototype électromécanique il faudrait pas moins de 13 Heures et 20 minutes ! On ne peut pas choisir une valeur initiale plus grande, car le plateau de la machine avec ses 56 pions n’a pas assez de BITs pour effectuer le traitement. Pour le vérifier, on ajoute un « 1 » en poids fort : « f« , 9 puis « 1« . On relance l’exécution, et il ne se passe plus rien, alors que la LED bleue est allumée prouvant que le microcontrôleur travaille à sa cadence la plus rapide. Frapper un « q » pour stopper l’évolution. Le BARILLET présente alors un aspect tel que celui de la Fig.38 avec une durée calculée de plusieurs jours sur la machine matérielle. En fait, l’algorithme se trouvant en présence d’une donnée altérée diverge et tourne sans fin. Il est facile quand on estime avoir saturé le plateau d’imposer un listage avec ‘l‘ pour


observer le comportement de la machine. Elle ne fait plus que provoquer une rotation à gauche du plateau et reste en permanence sur la transition n°6. La raison est évidente, et pour s’en convaincre Lister l’algorithme. En ligne 16 et en ligne 17 les lectures de « 0 » et de « 1 » ne font que rechercher un « B » pour alors sauter en transition n°1. Hors le plateau est saturé et ne comporte strictement aucun BIT à l’état « B« . La machine va dont faire tourner le plateau à l’infini, tout au moins tant qu’il y aura de l’énergie ou qu’elle ne tombera pas en panne. On est en présence d’un mouvement perpétuel … virtuel !
10) Avec l’emplacement 14 qui préserve le Programme Utilisateur 12 on est en présence d’un programme typiquement « ordinateur » avec du transcodage. Dans cet algorithme on transpose en BINAIRE PUR un Entier codé en UNAIRE. C’est l’occasion pour celles et ceux qui veulent un peu explorer la base 2 de mettre à contribution la petite machine de Turing. Charger cet emplacement, et pour commencer configurer le plateau en prenant le premier exemple de la mini-fiche :


11) Lister le programme. Visiblement Nulentout s’est trompé quand il a saisi les instructions. S’il l’avait testé il s’en serait aperçu. Du reste, frappez un « r« . Le résultat BINAIRE est correct, mais ça râle durdur. Vous pouvez observer que dès que l’erreur a été détectée, il y a eu sortie inconditionnelle du RUN assorti d’un texte d’erreur. On corrige avec « m« , 30, « f » et « r » pour voir. Cette fois tout est conforme. La mini-fiche annonce 65 cycles, mais la tête était sous la donnée.
12) Expérimentons pour finir le dernier emplacement n°15 relatif au Programme Utilisateur 53. Il recherche le PGCD entre deux nombres UNAIRES. Proposer 9 pour X et 36 pour Y :


Résultat en 1838 cycles soit environ 2 HEURES 31 Minutes sur la machine réelle.

Un petit complément sur le mode Machine ÉTENDUE.

Dans cette ultime série de manipulations, nous allons aborder un petit détail qui ne pouvait être expérimenté dans les chapitres relatifs à l’option de Machine ÉTENDUE, car on aurait perdu les deux derniers programmes qui n’avaient pas encore été explorés. Pour se retrouver dans le contexte approprié, on va rapidement recréer un programme ÉTENDU :
1) RESET, puis « q » suivi de « e » et confirmation avec « o« .
2) Lettre « q » pour revenir au MENU de BASE.
3) Commande « c » pour charger le long programme et « x » pour le référencer correctement.
4) Caractère « s » pour sauvegarder, ordre confirmé par « o« .
5) On suppose ici que l’algorithme est achevé, et qu’au final vous désirez maintenant récupérer les deux emplacements : Commande « g » dans le Menu de BASE. Elle est refusée puisqu’en mode ÉTENDU cette lettre n’est pas dans la liste des directives autorisées.
6) Annuler l’option Machine Étendue, puis, revenir dans le MENU de BASE. Touche « g » suivie de 14. L’emplacement n°15 n’est pas libéré. Donc recommencer avec « g » suivi de 15.
Avec cette dernière petite expérience, on peut considérer que globalement vous avez une bonne connaissance du logiciel qui anime la petite unité électronique. Dans le dossier nommé <Fiches de PROGRAMMES> pour disposerez d’un nombre important d’algorithmes que vous pourrez proposer au petit simulateur, et avec les données de votre choix. Avec l’option PAS à PAS vous pourrez en observer le comportement et en déduire la « pertinence » des instructions. Il ne reste plus qu’à réaliser la petite machine, la programmer en interne et la mettre en service. C’est précisément l’objet des chapitres qui vont suivre.

La suite est ici.