Intermédiaire·3 min·23 août 2026

Thoreau BASIC : un interprète des années 80 sur ta machine moderne

🎧 Résumé audio0:00 / 0:00
Un développeur a ressuscité BASIC en version bare metal : ça tourne sur du silicium 2024 comme sur du Intel 8088.
Thoreau BASIC : un interprète des années 80 sur ta machine moderne

Pourquoi ça compte pour toi

Tu cherches à comprendre comment marchent les langages anciens, ou tu veux bidouiller du retro-computing sur ta machine actuelle ? Thoreau BASIC te montre que GW-BASIC n'est pas mort — il est juste devenu une abstraction sur du matériel 40 fois plus puissant. C'est aussi un cas d'école : comment écrire un interprète qui relie les deux univers (bare metal UEFI et Windows).

Ce qu'il faut retenir

  • 1.Interprète GW-BASIC compatible qui démarre directement sur firmware UEFI ou Windows
  • 2.Prend en charge graphismes natifs (PSET, LINE, CIRCLE, palettes 16 et 24 bits) et disque via Simple File System
  • 3.V1.1 : 25× plus rapide grâce à la tokenisation par ligne et au cache de variables ; Mandelbrot passe de 230s à <10s
  • 4.Tableaux de milliards d'éléments, pointeurs 64-bit, fenêtres texte indépendantes, gestion d'erreurs classique

Tu galères avec le jargon ?

Lis la version réécrite en mode débutant — toutes les idées, sans le jargon.

Pourquoi un interprète BASIC en 2026 ?

Thoreau BASIC n'est pas de la nostalgie creuse. C'est un pari sur la simplicité : tu écris une boucle graphique en 10 lignes, aucune dépendance externe, zéro compilation, et ça démarre sur du bare metal en 2 secondes.

Comparée aux environnements modernes (Python + PyGame, JavaScript + Canvas), BASIC ici c'est : pas de runtime géant, pas de virtualisation, pas de gestionnaire de paquets qui explose. Juste du code qui parle directement au framebuffer et aux pointeurs mémoire.

Ce qui change avec la v1.1

Le vrai tournant, c'est la performance. Avant, les programmes gourmands en calcul rampaient. Maintenant :

  • Tokenisation par ligne : quand tu charges un programme, chaque ligne est pré-compilée en bytecode
  • Évaluateur d'expression par précédence : les maths complexes ne traînent plus
  • Cache de slots de variables : les recherches de x ou myarray[i] deviennent O(1)

Résultat ? Conway's Life tourne en interactif. Le Mandelbrot (classique pour stresser les interprètes) passe de 230 secondes à moins de 10. Lunar Lander tient ses 100 fps.

Les fonctionnalités qui changent la donne

Graphismes natifs — Tu peux charger des BMP en mémoire (LOADBMP) et les afficher avec transparence (BITBLT + color key). C'est rudimentaire comparé à OpenGL, mais pour du rétro-gaming ou du prototypage visuel, c'est largement suffisant.

Fenêtres texteWINDOW @n te permet d'avoir 2-3 consoles indépendantes à l'écran avec leurs propres couleurs et curseurs. Idéal pour afficher stats + logs + contrôles sur le même écran.

Gestion d'erreursON ERROR GOTO, RESUME, ERL (ligne d'erreur), ERR (code d'erreur). Les vieux programmeurs reconnaîtront le modèle ; les jeunes découvriront que c'est franchement plus lisible que try/catch en Python.

Disque via UEFISAVE, LOAD, MERGE, KILL. Tout passe par le Simple File System du firmware, donc aucune couche OS, zéro dépendance à Windows ou un bootloader custom.

Les limites honnêtes

C'est un interprète, donc pas de JIT. Les performances restent 100× derrière du C compilé. Si tu veux faire une démo Nvidia CUDA ou du 3D vrai, oublie. Mais pour du tile-based graphics, du calcul itératif, du prototypage : zéro problème.

Le projet est encore en développement (v1.1.3), donc ne l'intègre pas à une chaîne critique. Regarde la section "Development log" : les bugs (MID$ assignment, ERL storage, INPUT backspace) se corrigent régulièrement.

Cas d'usage réels

Retro-gaming — Développer sur du vrai bare metal avec un environnement haut-niveau. Tes ROMs tiennent leurs 60 fps.

Éducation — Montrer aux étudiants comment un interprète fonctionne (tokenisation, AST, boucle d'exécution) sans la complexité d'un compilateur moderne.

Prototypage graphique — Valider une idée de visualisation avant de passer à WebGL ou Three.js.

Archéologie logicielle — Ton vieux programme GW-BASIC des années 90 ? Relance-le. L'auteur assure la compatibilité.

Et concrètement pour toi ?

Choisis ton profil — la lecture de l'article change selon qui tu es.

🔭 Curieux

Pour toi, comprends que BASIC n'est pas un fossile : c'est une preuve que les idées simples et robustes survivent en se réinventant. Regarde aussi comment un seul dev peut ramener à la vie un langage entier — ça dit quelque chose sur le pouvoir des outils bien pensés.

Approfondir avec un guide

📊 Cours en bourse

Newsletters Noésis

3 minutes d'IA dans ta boîte mail, chaque matin.

Rejoins les francophones qui comprennent, essaient et progressent avec l'IA. Choisis ce que tu veux recevoir. Désabonnement en 1 clic.

Explorer les thèmes de cet article :