Triceraprog
La programmation depuis le Crétacé

Articles de la catégorie Langages.

  • 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


  • Le BASIC du VG5000µ, démarrage ()

    Lorsqu'on allume un ordinateur personnel dans les années 80, il y a de bonnes chances de se retrouver dans un environnement BASIC. La machine présente, après quelques lignes d'introduction, une invite de commande à partir de laquelle l'utilisateur peut diriger les opérations. Ces opérations sont alors de deux types : lancer un programme, ou bien programmer (voire lancer un programme pour programmer).

    Il y a plusieurs exceptions à ce schéma. Le TO7, par exemple, a besoin d'une cartouche pour démarrer son environnement ; celui livré avec la machine est cependant un BASIC. Le Jupiter Ace quant à lui démarre avec un environnement en FORTH.

    Le VG5000µ fait parti de la catégorie des ordinateurs avec BASIC intégré. Dès l'allumage, on peut se lancer dans de l'expérimentation ou de la programmation.

    Démarrage du VG5000µ avec extention mémoire

    Dire qu'un ordinateur fonctionne avec BASIC n'est qu'une partie de la définition. Il n'y a pas un BASIC, mais plusieurs dialectes du même langage. Si les instructions principales restent les mêmes et fidèles au BASIC tel que créé en 1964, chaque machine possède ses particularités, même sur des versions produites par la même entreprise.

    Le dialecte du VG 5000 BASIC est assez classique. Les structures de contrôles IF/FOR/GOTO/GOSUB sont là, ainsi que les plus avancées ON GOTO et ON GOSUB. Des fonctions mathématiques classiques ainsi que de manipulations de chaînes de caractères sont présentes. Les fonctions d'éditions AUTO, mais surtout RENUM, sont toujours les bienvenues.

    Question périphériques, des commandes sont disponibles pour la manipulation des fichiers sur K7 (le VG 5000 n'a pas eu droit à son lecteur de disquette), le son, deux manettes et l'affichage. Nous verrons cela plus en détails plus tard.

    La manuel du VG5000µ est assez court avec sa centaine de pages. Comme il se doit pour un manuel d'époque, la partie programmation occupe la majeure partie de l'ouvrage en commençant dès la page 13 et continuant jusqu'à la presque fin. La programmation y est envisagé en BASIC, et seules quelques références à l'assembleur sont présentes.

    Je vous laisse avec le début du Chapitre 11, long de deux pages, expliquant la démarche d'écriture d'un programme.

    Extrait du manuel VG5000µ