Inventé en 1964 pour que tous les étudiants d'une université puissent programmer, BASIC est devenu dans les années 1980 le langage de tous les micro-ordinateurs familiaux : on l'avait sous les doigts dès l'allumage. Des millions de personnes y ont écrit leurs premières lignes de code, souvent recopiées depuis un magazine. Cinq planches pour découvrir ses numéros de ligne, son GOTO tant critiqué, sa façon de calculer, ses petits programmes célèbres, puis pour exécuter de vrais programmes BASIC.
Au début des années 1960, programmer un ordinateur demande de porter un paquet de cartes perforées au centre de calcul, puis d'attendre ses résultats des heures, voire un jour. À Dartmouth College, aux États-Unis, deux professeurs de mathématiques, John Kemeny et Thomas Kurtz, veulent que tous leurs étudiants, y compris en lettres, puissent programmer. Ils conçoivent un système à temps partagé, où un seul ordinateur sert à tour de rôle de nombreux terminaux, et un langage simple, BASIC. Le 1er mai 1964, vers 4 heures du matin, les deux premiers programmes BASIC s'exécutent en même temps sur l'ordinateur GE-225 de l'université. Kemeny et Kurtz ne déposent aucun brevet : le langage se répand librement.
Sur un terminal des années 1960, il n'y a pas d'éditeur de texte à l'écran : on tape une ligne après l'autre sur un téléscripteur. BASIC trouve une solution simple : chaque ligne commence par un numéro. Taper 25 PRINT X insère la ligne entre 20 et 30, retaper un numéro remplace la ligne, et taper un numéro seul l'efface. On numérote de 10 en 10 pour pouvoir glisser des lignes plus tard ; quand il n'y a plus de place, la commande RENUM renumérote tout et corrige les renvois. Tapez des lignes, puis renumérotez.
GOTO 30 saute à la ligne 30. Le temps partagé de Dartmouth était aussi révolutionnaire que le langage : la réponse arrivait en quelques secondes, ce qui invitait à essayer, se tromper et corriger, une façon de programmer très moderne. BASIC était interprété : chaque ligne est lue et exécutée directement, sans compilation préalable, ce qui le rendait idéal pour apprendre, au prix d'une certaine lenteur. Le premier BASIC de Dartmouth, lui, était en fait compilé, mais assez vite pour que l'utilisateur ne s'en aperçoive pas.Dans les premiers BASIC, la seule façon de répéter ou de choisir est de sauter d'une ligne à une autre : GOTO 40, ou IF ... THEN 80. Dès 1968, Edsger Dijkstra dénonce, dans un article resté célèbre, les programmes où les sauts s'entrecroisent : ils deviennent un « plat de spaghettis » impossible à relire. Les BASIC suivants ajoutent des structures (WHILE ... WEND, puis DO ... LOOP et des blocs IF sur plusieurs lignes). Comparez deux programmes qui cherchent les nombres premiers jusqu'à 30 : la commande TRON affiche le numéro de chaque ligne exécutée.
Pour économiser la mémoire, les BASIC de Microsoft rangent les nombres réels sur 4 octets, au format MBF (Microsoft Binary Format) : un octet d'exposant et 24 bits de mantisse, soit environ 7 chiffres significatifs. Les entiers (variables suivies de %) tiennent sur 2 octets, de −32 768 à 32 767. Comme le nombre est stocké en binaire, 0,1 ne tombe pas juste : PRINT arrondit à 7 chiffres pour l'affichage, mais les petites erreurs s'accumulent. Tapez une expression.
S = 1 peut être faux alors que PRINT S affiche 1 ! C'est pourquoi on ne compare jamais deux réels avec =, mais leur écart à une petite tolérance. Le format MBF a été remplacé par la norme IEEE 754 (1985), que suivent tous les processeurs actuels ; QuickBASIC l'adopte en 1987. Les nombres de plus de 7 chiffres sont rangés en double précision (8 octets, environ 16 chiffres), que ce petit interpréteur ne reproduit pas.Sur le Commodore 64, une seule ligne de BASIC dessine un labyrinthe infini : 10 PRINT CHR$(205.5+RND(1)); : GOTO 10. Elle affiche au hasard l'un des deux caractères diagonaux du Commodore, ╱ ou ╲. Ce programme est si célèbre qu'un livre entier lui a été consacré en 2012, 10 PRINT. Voici sa version pour GW-BASIC, avec les caractères / et \. Le hasard de l'ordinateur n'en est pas vraiment un : RND calcule une suite de nombres pseudo-aléatoires à partir d'une graine fixée par RANDOMIZE.
RANDOMIZE, chaque exécution donne la même suite, ce qui est pratique pour chercher une erreur ; dans les jeux, on utilisait souvent RANDOMIZE TIMER, l'heure servant de graine. Ces petits programmes étaient publiés en listings dans les magazines (en France, Hebdogiciel, Tilt, Jeux et Stratégie) et recopiés à la main, ligne par ligne, par des milliers de lecteurs.Voici un petit interpréteur BASIC, écrit pour cette page, qui reproduit le comportement de GW-BASIC, le BASIC des compatibles PC (1983) : mêmes calculs en simple précision MBF, même générateur aléatoire, même présentation de PRINT. Il accepte les lignes numérotées, PRINT (avec ;, ,, TAB, SPC), LET, IF ... THEN ... ELSE, GOTO, GOSUB / RETURN, FOR ... NEXT, WHILE ... WEND, ON ... GOTO, DIM, READ / DATA / RESTORE, SWAP, RANDOMIZE, TRON, les fonctions numériques et les fonctions de chaînes (LEFT$, MID$, CHR$, STRING$…). Chaque exemple a aussi été exécuté par PC-BASIC : les sorties sont comparées caractère par caractère.
FOR I = 1 TO 10, IF ... THEN, PRINT. Le point-virgule colle les affichages, la virgule les aligne sur des colonnes de 14 caractères, et un nombre positif est toujours précédé d'une espace (la place du signe) et suivi d'une autre. Les variables n'ont pas besoin d'être déclarées : leur nom donne leur type (A$ pour une chaîne, A% pour un entier, A pour un réel). Les erreurs ont gardé leurs messages en anglais, comme dans GW-BASIC : Syntax error in 40. La saisie au clavier (INPUT) n'est pas disponible ici ; les données passent par READ et DATA. Essayez de changer la graine de l'exemple 6 ou le nombre de l'exemple 4.En 1985, le plan Informatique pour tous installe environ 120 000 micro-ordinateurs, surtout des Thomson MO5 et TO7/70, dans les écoles, collèges et lycées français ; on y programme en BASIC et en LOGO. Aujourd'hui, Scratch et Python ont pris le relais.
Apple II, Commodore 64, ZX Spectrum, Amstrad CPC, Oric, MSX : tous démarrent sur un interpréteur BASIC. Microsoft, fondé en 1975 pour vendre l'Altair BASIC de Bill Gates et Paul Allen, en a fourni la plupart.
Des milliers de jeux ont été écrits en BASIC, souvent publiés en listings. QBasic, livré avec MS-DOS 5 en 1991, contenait deux jeux d'exemple restés célèbres, Gorillas et Nibbles, que beaucoup ont modifiés pour apprendre.
Visual Basic (1991) permet de dessiner une fenêtre à la souris et d'y attacher du code : des milliers d'applications de gestion sont ainsi développées. VBA, son cousin intégré à Excel, Word et Access depuis 1993, automatise encore aujourd'hui d'innombrables tableaux de calcul.
Les calculatrices graphiques de Texas Instruments et de Casio se programment dans des dialectes de BASIC : pour de nombreux lycéens, c'est le premier contact avec la programmation.
Visual Basic .NET (2002) reste utilisé en entreprise : Visual Basic est 7e du classement TIOBE d'octobre 2026. Microsoft a annoncé en 2020 qu'il n'évoluerait plus comme langage. Des passionnés font vivre QB64, FreeBASIC et les BASIC des machines anciennes.
Les exemples, les traces TRON, la renumérotation et les 514 calculs de la planche 3 ont été exécutés par PC-BASIC 2.0, qui reproduit GW-BASIC jusque dans ses arrondis, au moment de la fabrication de la page. Les calculs en simple précision de cette page transcrivent en JavaScript ses algorithmes, et votre navigateur refait toutes les comparaisons. La durée sur IBM PC est une estimation (environ 1 000 instructions BASIC par seconde).