Triceraprog
La programmation depuis le Crétacé

Les bases du BASIC ()

Le BASIC est LE langage de programmation phare de l’époque de l'informatique personnelle des années 1980. Quasi tous les ordinateurs de la génération dite « 8 bits » démarrent sous un environnement immédiatement programmable en BASIC. Les magasines spécialisés enseignent le BASIC et la majorité des programmes diffusés par ce moyen sont en BASIC, au moins dans un premier temps et lorsqu'il y a une dimension pédagogique. On trouve aussi de nombreux livres ayant pour contenu des programmes en BASIC à recopier sur sa machine.

Au moment de cette diffusion massive (toute proportion gardée, la micro informatique reste un objet de curiosité), le BASIC à déjà quelques années d'activité, sa création datant du milieu des années 60.

À sa création, le BASIC se situe dans la classe des langages de programmation à vocation mathématiques. C'est un langage destiné à résoudre des problèmes numériques. L'autre grande classe de langages de programmation à cette époque étant ceux plutôt destinés au données d'entreprises : gestion de stock, gestion de personnel,...

C'est aussi un langage interactif : il est possible d'entrer des commandes pour les voir s'exécuter immédiatement, ainsi que des programmes pour stocker des suites d'instructions à exécuter plus tard. Cela peut sembler naturel en 2017, mais à cette époque, beaucoup d'ordinateurs exécutent exclusivement des programmes stockés, sur des cartes perforées par exemple (BASIC peut d'ailleurs être aussi utilisé de cette manière, mais perd alors son côté interactif).

Dernier point de contexte : le BASIC est crée 10 ans avant l'émergence de la micro informatique personnelle.

Couverture du livre 40 Programmes de Jeux en BASIC

À quoi ça ressemble ?

Voici un programme tiré du manuel de BASIC de 1964

10 PRINT "A", "B", "C", "GCD"
20 READ A, B, C
30 LET X = A
40 LET Y = B
50 GOSUB 200
60 LET X = G
70 LET Y = C
80 GOSUB 200
90 PRINT A, B, C, G
100 GO TO 20
110 DATA 60, 90, 120
120 DATA 38456, 64872, 98765
130 DATA 32, 384, 72
200 LET Q = INT(X/Y)
210 LET R = X - Q*Y
220 IF R = 0 THEN 300
230 LET X = Y
240 LET Y = R
250 GO TO 200
300 LET G = Y
310 RETURN
999 END

Qui affiche le plus grand commun diviseur (PGCD) d'une série de nombres, groupés par trois.

A              B              C              GCD
 60             90             120            30
 38456          64872          98765          1
 32             384            72             8

Un programme en BASIC est exécuté par numéro de ligne croissante, en débutant par le numéro le plus bas. Il est donc assez aisé, lorsque l'on connaît la signification des instructions, de suivre le déroulement.

C'est une des forces du BASIC, l'écriture et la lecture d'un programme est très simple. L'exécution séquentielle permet de comprendre les programmes et de la mettre au point sans de grandes connaissances.

Devenant un standard de fait, les programmes en BASIC sont assez faciles à porter d'une machine à une autre. Le programme ci-dessus, par exemple, fonctionne tel quel sur un VG5000µ. L'affichage 40 colonnes fait que la sortie texte devrait être un peu adaptée, mais ça fonctionne. Sur un MO5, le même programme demande une retouche mineure : enlever le mot clé LET.

Dans sa forme de 1964, le BASIC est très limité. Il n'y a pas par exemple pas d'instruction pour accéder au matériel de la machine, ni à son environnement. Les commandes pour sauver et rappeler un programme ne peuvent être entrées qu'en mode direct. Le scénario typique est celui d'un étudiant qui s'installe sur un des 35 terminaux de la machine, reprend un travail en cours ou en débute un autre, note ses résultats puis laisse la place à quelqu'un d'autre.

D'autres limitations : les sous-programmes, appelés par GOSUB, ne peuvent pas eux-même appeler d'autres sous-programmes. Cela limite fortement la structuration des programmes. Le nombre de données introduites par DATA est assez limité, ainsi que le nombre de boucles FOR, d'éléments de tableaux...

L'évolution de BASIC lui enlèvera peu à peu ces limitations. Sur les ordinateurs des années 80, le BASIC s'est enrichi d'instructions pour accéder au matériel, dessiner à l'écran, jouer de la musique, demander des données à l'utilisateur,... Il restera cependant notoirement lent, extrêmement lent.

La descendance

L'offre des ordinateurs a évolué et ceux-ci n'ont plus été livré de base avec un environnement en BASIC. D'ailleurs de plus en plus sans environnement de programmation du tout.

Mais du fait de sa simplicité et du nombre de personnes qui ont été exposé à ce langage de programmation, il est resté très longtemps populaire et a évolué en intégrant de nouveaux concepts, comme la programmation objet, les exceptions. Il a servi et sert toujours dans le Web, ou pour étendre des applications comme LibreOffice.

Quelques mots-clé d'un BASIC IBM