24) Programmer notre Machine de Turing.

Pratiquement tout, et même bien plus, a été décrit, précisé, expliqué sur l’Internet, aussi ce chapitre peut ressembler à du remplissage pour ajouter des page à ce roman pour le « gonfler » artificiellement et le vendre plus cher. Rassurez-vous, je ne vais expliciter ici que le minimum minimorum. Le juste ce qu’il faut pour attirer votre attention sur quelques points particuliers fondamentaux.

La structure des programmes.

Chaque transition, avec un nombre maximum de 11 dont au moins une doit intégrer une commande de FIN, constitue une INSTRUCTION « triple » de type SI / ALORS FAIRE symbolisé sur la Fig.121 qui reprend la présentation des organigrammes « ancien ». De par sa conception et de son fonctionnement de base, lors d’un cycle d’HORLOGE au moins un des trois tests sera effectif. Donc, l’une des trois comparaisons sera VRAIe et l’une des trois lignes d’instructions sera réalisée par la machine. On peut constater que le déroulement d’un programme est rigoureusement analogue à celui d’un processeur actuel, si ce composant est intégré sur une électronique d’architecture « Von NEUMANN ». Ces électroniques fonctionnent en boucle infinies et ne s’arrêtent jamais. (Tout au moins dans la mesure où l’on ne fait pas appel à des mises en veille par « interruptions ».) Ce sera exactement le cas sur notre ordinateur électromécanique si l’on oublie dans le programme une instruction de FIN. Noter au passage qu’il ne suffit pas d’un trou sur la dernière colonne de la MATRICE pour que la machine revienne au repos. Encore faut-il que dans les sauts de programme à un moment donné on « branche » sur la bonne TRANSITION. Il ne sera pas toujours facile de faire la différence entre un programme « infini » et un algorithme qui conduit bien à un arrêt de la machine, mais sur un nombre « faramineux » de cycles d’HORLOGE. Aussi, il est fortement conseillé de commencer par évaluer l’algorithme en soumettant à la machine une donnée présentant un faible nombre de BITs. Puis, la grille ayant montré sa validité présumée, ensuite passer à des données plus cossues pouvant aller jusqu’à 55 BITs ! (Présumé, car un programme mal agencé peut « tourner » sur certaines combinaisons de données et pas sur d’autres. Par exemple s’il n’y a que des « 1 » la ligne FIN n’est jamais validée.)

La structure des instructions.

Chaque ligne, avec un nombre maximum de 33 dont au moins une doit intégrer une commande de FIN, constitue une INSTRUCTION de type ÉCRIRE, puis DÉPLACER, puis TRANSITER. Ces instructions élémentaires se succèderont dans cet ordre immuable et ne seront réalisées que si elles sont validées dans la MATRICE. Compte tenu du nombre extrêmement restreint d’instructions que l’on peut loger dans la Mémoire Non Volatile constituée par la MATRICE, il incombera au programmeur d’optimiser à outrance son algorithme pour qu’il puisse « entrer » dans la faible place disponible. Les contraintes de programmation sont précisées sur la mini fiche dédiée Utilisation de la machine. (7/8).

La suite est ici : 24 bis) Les technologies de grand-père..