Archives de catégorie : Divers

Ordinateurs sans microprocesseurs

microproAvant l’apparition des microprocesseurs, les ordinateurs étaient réalisés uniquement à partir de deux sortes de « briques de construction », les portes logiques et les bistables (eux-mêmes constitués de portes logiques). Les premiers microprocesseurs, apparus dans les années 1970, comportaient des milliers de portes logiques et de bistables rassemblés sur une même puce qui valait tout de même près de 200 dollars de l’époque, ce qui représente (compte tenu de l’inflation) de l’ordre de 1000 dollars actuels.

Depuis cette époque, tous les ordinateurs commercialisés comportent des microprocesseurs. Mais il existe quelques passionnés qui construisent eux-mêmes des ordinateurs « à l’ancienne », sans microprocesseur. Pourquoi se lancent-ils dans un tel projet ? Par défit intellectuel, par passion, pour comprendre et faire comprendre le fonctionnement d’un ordinateur en s’appuyant sur un système à dimension humaine, pour revisiter un pan entier de l’histoire de l’informatique… Fabriquer un ordinateur de toute pièce est une démarche d’ingénierie dans laquelle il faut faire preuve d’une grande exigence intellectuelle pour décomposer de manière simple et efficace un système complexe en parties plus simples dont les rôles sont clairement spécifiés. Et une fois que la partie physique est terminée, il reste à l’exploiter en réalisant des programmes, qui ne sont rien d’autre que des systèmes complexes constitués de « briques logicielles » plus simples. Quiconque parvient à ce stade a les idées parfaitement claires sur tous les concepts sous-jacents.

Si tous les ordinateurs « faits mains » dont j’ai trouvé des descriptions sur le WEB m’ont impressionnés, j’ai été vraiment bluffé par certaines réalisations particulièrement élégantes, telle que « The Anitra Computer », un ordinateur 8 bits pouvant adresser 32K octets de mémoire réalisé par un thésard du MIT à titre de loisir ! Cet ordinateur a été conçu de manière à simplifier au maximum son circuit électronique et à minimiser le nombre de composants utilisés. Le langage machine de cet ordinateur ne comporte que deux instructions placées dans 16 blocs de 8 instructions consécutives. L’une permet de transférer une valeur d’une adresse A vers une adresse B, et l’autre additionne une valeur située à une adresse A et une autre située à une adresse B, place le résultat à l’adresse B, et réalise un saut en avant jusqu’au début du bloc suivant s’il y a un débordement arithmétique (retenue). L’ensemble du programme est constitué d’une séquence de 16 blocs d’instructions qui est répétée indéfiniment. A première vue, la taille du programme est très limitée, mais elle est suffisante pour réaliser un interpréteur capable d’exécuter un programme plus long – et écrit dans un langage de plus haut niveau – situé dans le reste de la mémoire.

Dans le même esprit, Jack Eisenmann a conçu et réalisé un ordinateur 8 bits adressant 64K de mémoire appelé « DUO COMPACT » dont le langage machine ne comporte qu’une seule instruction : NOR A B C D, où A, B, C et D sont des adresses mémoire, qui effectue une opération logique OU / NON entre les valeurs pointées par A et B, place le résultat dans B, puis branche en C si le résultat est 0 ou en D sinon. Cette seule instruction permet de simuler toutes les instructions d’un microprocesseur classique. L’auteur a réalisé un programme calculant une racine carrée et même un petit jeu vidéo de plateforme s’exécutant en mode texte sur un écran à cristaux liquides acheté dans le commerce.

Dans une autre optique, un ingénieur électronicien nommé Dennis Kuschel a réalisé un ordinateur 8 bits complètement câblé avec des circuits logiques TTL (technologie datant des années 1960) nommé « MyCPU ». Il supporte le jeu d’instructions du microprocesseur 6502 qui équipait l’Apple II. Dennis a également réalisé un contrôleur vidéo permettant à cet ordinateur de réaliser des affichages graphiques sur écran, une carte lui permettant d’utiliser une mémoire de masse, et une carte réseau lui permettant de se connecter à Internet. C’est un travail absolument énorme qui relève de l’exploit.

Pour découvrir d’autres exemple de réalisations extraordinaires, vous pouvez consulter le site Home build computers web ring.

Scrivener, un traitement de texte non linéaire.

machchine-a-ecrirePour rédiger un document scientifique de quelques pages, l’idéal est de disposer d’un traitement de texte permettant un formatage immédiat dans un style agréable à lire, ainsi que la création, l’insertion et la modification intuitive, rapide et confortable de figures, dessins, équations, et courbes ayant un aspect professionnel, sobre et esthétique.

J’avoue n’avoir jamais trouvé un logiciel, ni même une combinaison de plusieurs logiciels, qui réponde à ces critères au niveau d’exigence correspondant à mes attentes, mais c’est un sujet que je ne développerai pas dans ce billet. Aujourd’hui, je vous présente un traitement de texte dédié à la conception et la réalisation de documents comportant des dizaines, voire des centaines de pages recelant des milliers d’informations, de concepts, d’idées, de descriptions, etc.

De tels documents sont constitués de très nombreuses briques documentaires, entendez par là de petits morceaux de textes à différents stades de maturité, allant d’une simple idée ou observation jusqu’à une partie finalisée du document en cours de réalisation. La force de Scrivener est de permettre d’organiser ces briques documentaires dans une structure arborescente, c’est à dire constituée de dossiers pouvant contenir des briques documentaires et des dossiers pouvant eux-même avoir une structure arborescente.

Chaque élément (brique documentaire ou dossier) peut être facilement déplacé à l’aide de la souris. On peut lui associer des notes, commentaires, étiquettes, un résumé, une couleur. Il est possible de sélectionner un ou plusieurs dossiers et/ou briques documentaires dont les contenus s’affichent les uns à la suite des autres sous la forme d’un document continu pouvant être lu et modifié. Cette « vue » particulière d’une partie du contenu en cours de rédaction est préservée lorsque le l’utilisateur quitte l’application.

Cette fonctionnalité, qui change complètement la manière de travailler, n’existe pas (jusqu’à plus ample informé) dans les traitements de textes classiques tels que Word et OpenOffice. Ce qui s’en rapproche le plus dans Word est la possibilité de « replier » des chapitres et sections pour ne rendre visibles que certaines parties du document. Mais la « vue » ainsi créée est malheureusement perdue lorsqu’on quitte l’application. Par ailleurs, Word permet de visualiser l’arborescence des sections d’un document, mais la réorganisation de ces sections ne peut se faire qu’avec des « copier / coller » laborieux.

Scrivener permet de produire le document final sous différents formats, tels que pdf, word, et les deux principaux formats de livres électroniques, Epub et Kindle. C’est lors de cette étape dite de « compilation » qu’est réalisée la mise en forme définitive d’après un modèle définit par l’utilisateur.

En revanche, il faut bien admettre que les possibilités offertes par Scrivener pour l’édition de chaque brique documentaire sont très limitées au regard de celles de Word ou même d’OpenOffice. Scrivener est encore loin de répondre complètement à mes besoins en matière de rédaction de documents scientifiques, mais c’est ce que j’ai trouvé de mieux pour la prise de notes, le suivi, et la rédaction progressive de rapports dans le cadre de projets de recherche. Il est à mon avis tout aussi adapté à la réalisation de supports de cours et autres documents pédagogiques, ainsi que de mémoires et rapports d’étudiants.

Une machine de Turing

mt-all-1000J’ai enfin terminé cette réalisation qui m’a occupé pendant de nombreuses soirées cet hiver. Son originalité réside dans l’utilisation d’une même brique de construction (constituée d’une bascule D et de quelques portes NAND) pour élaborer toutes les parties de la machine : bande, tête de lecture/écriture, automate de contrôle… La finalité est essentiellement pédagogique.

Une présentation plus détaillée est proposée sur ce site.