Sylvain Cherrier et Claude Micouin

Simulateur pédagogique de microprocesseur : LittleThinker

Publié le mai 2003

Informatiques individuelle et professionnelle sont sous le contrôle quasi total d’une seule entreprise, Microsoft. Les produits de cette
entreprise respectent peu les normes, utilisent des formats
propriétaires (1), et la démarche de l’entreprise elle-même
est très agressive (2). Par réaction, un nombre croissant de
bénévoles conçoivent des logiciels libres, trés
souvent gratuits. Les réalisations sont parfois très
concurentielles et professionnelles, certains projets sont
ambitieux (GNU, OpenOffice, Gnome et Linux...) et d’autres
beaucoup plus modestes comme ce petit logiciel libre que le
concepteur nous présente ici :

"Enseignant en BTS informatique de gestion, j’ai la charge d’un point du référentiel qui concerne le matériel informatique, notamment les travaux pratiques. Trouver des travaux pratiques démontrant les
fonctionnalités d’un microprocesseur n’est pas aisé, surtout
avec des étudiants qui ne connaissent que l’interface graphique
(ce qui est très éloigné du fonctionnement réel d’un
ordinateur). Les démarches habituelles pour traiter ce point
sont soit la simulation sur papier (plan de l’architecture du
microprocesseur, et simulation de l’éxécution une à une des
instructions d’un programme sur ce plan), soit la programmation
en assembleur (langage très proche du microprocesseur). A la
première démarche, on peut reprocher sa lourdeur et sa
consommation de papier, à la seconde le risque de rejet par
l’étudiant, dû à la complexité de mise en place de
l’environnement du programme (3).

C’est ce constat qui m’a poussé à concevoir LittleThinker, un petit simulateur de micro-processeur très simplifié. L’objectif est d’offrir une simulation visuelle des zones du processeur mises en jeu par un petit programme que l’étudiant doit réaliser. LittleThinker est constitué d’un jeu réduit d’éléments que l’on trouve habituellement dans un microprocesseur (registres, accumulateur, compteur ordinal,
registre d’état). Il offre une petite mémoire de 50 cases, dans
lesquelles on peut écrire des données ou des commandes. Ces
commandes sont tirées d’un jeu d’instructions conçu pour
LittleThinker, et compris par lui. L’étudiant dispose du
descriptif de chacune des commandes, et doit réaliser des
exercices, en concevant un programme. Il saisit ensuite ce
programme et peut en lancer l’éxecution. Little Thinker obéit
aux instructions, et met en évidence les zones qui travaillent
dans le microprocesseur, pas à pas, visuellement.

J’ai testé ce projet avec des classes de TS. Il me semble que les
étudiants ont assez bien intégré le fonctionnement de leur
machine. Le projet (c’est la version 0.1) comporte un certain
nombre de lacunes, de bogues : On ne peut pas arrêter le
déroulement d’un programme, on ne peut pas régler le
cadencement de l’horloge (c’est pourtant un point majeur, car la
lenteur est un atout au démarrage de la séquence afin
d’apréhender le comportement de la machine, mais cela devient
vite irritant pour les longs programmes), l’affichage n’est pas
réaliste, les registres sont de taille infinie (ou pas loin) et
en décimal. Mais ce projet est libre (au sens GNU). Vous pouvez
vous en servir, vous pouvez le modifier, l’améliorer, voire
même le vendre.. Vous ne pouvez simplement pas le refermer,
c’est tout. Il appartient à tous...

Bien qu’on me l’ai demandé, je n’ai pas
voulu utiliser la démarche de Microsoft, en ce sens que le
programme est disponible
pour toute plateforme. Je n’utilise que
GNU/Linux en ce qui me concerne, et j’encourage tout le monde à
faire de même. Mais cela irait contre la liberté que je
défends, que de vous obliger à utiliser GNU/Linux pour
bénéficier de LittleThinker. J’ai donc développé
LittleThinker en, il vous suffit de disposer du JRE ou du JDK (4)
pour faire tourner mon projet.

 Le programme, les sources du
programme, des copies d’écrans, la documentation du langage de
programmation, et des exercices sont gratuitement et librement
accessibles sur http://sylvain.cherrier.free.fr. Vous pouvez tout prendre, tout modifier, et même
me tenir au courant de vos expériences pédagogiques , ou/et des
améliorations que vous apportez au produit.

 

  • (1) Word par exemple utilise un
    format de stockage propriétaire, non normalisé, et s’éloigne
    volontairement du format RTF, standard celui-là, qui permet
    l’échange avec d’autres logiciels.
  • (2) Il suffit pour s’en convaincre de lire
    l’ouvrage ’Le hold-up planétaire, la face cachée de
    Microsoft’, de Roberto di Cosmo.
  • (3) L’assembleur sur PC demande avant toute
    programmation un ensemble de déclarations sur l’architecture du
    programme que l’on va écrire, ce qui fait appel à des notions
    qui dépassent le cadre et le temps défini pour ce point du
    référentiel.
  • (4) le JRE (Java Runtime Environment)
    permet l’exécution d’un programme Java. Le JDK (Java Development
    Kit) permet quant à lui d’exécuter ET développer des
    programmes Java. Ils sont librement accessibles sur le site de
    Sun. D’autres implémentations de Java existent..."
Dans la même rubrique

Logiciels libres et alternatifs

Voir les autres articles de cette rubrique