Histoire de la programmation 2/4 : Les langages historiques
Dans mon travail personnel précédent, j’ai parlé de l’histoire des ordinateurs, des origines jusqu’aux ordinateurs personnels d’aujourd’hui.
Avec la deuxième génération de grands ordinateurs (1960), j’avais vu que deux langages étaient apparus à cette époque : Fortran et Cobol.
De même, l’invention des micro-ordinateurs (1970), combinée à l’utilisation du Basic a permis d’imaginer plein de nouveaux logiciels.
Les machines et les langages de programmation évoluent en même temps, au fil de l’inventivité des ingénieurs et des informaticiens.
Fortran :
Le Fortran (Formula Translator) est le premier langage de programmation évolué de l’histoire de l’informatique. Créé en 1957 par John Backus chez IBM pour simplifier le dialogue avec la machine et le rendre plus proche du langage humain.
Il est très souvent utilisé pour faire faire à la machine des calculs compliqués dans les domaines scientifiques.
* euclid.f (FORTRAN 77) * Find greatest common divisor using the Euclidean algorithm PROGRAM EUCLID PRINT *, 'A?' READ *, NA IF (NA.LE.0) THEN PRINT *, 'A must be a positive integer.' STOP END IF PRINT *, 'B?' READ *, NB IF (NB.LE.0) THEN PRINT *, 'B must be a positive integer.' STOP END IF PRINT *, 'The GCD of', NA, ' and', NB, ' is', NGCD(NA, NB), '.' STOP END FUNCTION NGCD(NA, NB) IA = NA IB = NB 1 IF (IB.NE.0) THEN ITEMP = IA IA = IB IB = MOD(ITEMP, IB) GOTO 1 END IF NGCD = IA RETURN END
Je profite de ce premier exemple (en fortran de 1977) pour expliquer différents aspects du langage de programmation :
- Utiliser des mots clés pour structurer le programme et donner des instructions à l’ordinateur : je les ai coloriés en bleu (PROGRAM , FUNCTION, THEN, etc.).
- Mettre les données qu’on manipule dans des variables avec un nom. Je les ai coloriés en orange.( NA, NB, ITEMP , etc.).
- Permettre de saisir des valeurs fixes dans le code. Je les ai coloriées en vert. (‘A?’, ‘B must be a positive integer.’, etc.)
- Permettre de créer des sous-programmes et de les appeler depuis le code principal. Ici il y a le sous-programme NGCD qui est appelé depuis le programme principal EUCLID.
Cobol :
Cobol est un langage de programmation créé en 1959. Le but était de créer un langage naturel humain, avec des phrases complètes rédigées en anglais, sans oublier le point à la fin de la phrase !
Cobol est un langage bavard. Le langage Cobol était de loin le langage le plus employé dans les domaines de la gestion et de la comptabilité jusque dans les années 1980, et reste toujours utilisé en particulier dans les banques. C’est en partie l’existence de programmes anciens dans ce langage qui a fait craindre le bogue de l’an 2000.
Voici un exemple de petit programme où j’ai colorié avec la même logique que pour le programme Fortran.
$ SET SOURCEFORMAT"FREE" IDENTIFICATION DIVISION. PROGRAM-ID. Multiplier. AUTHOR. Michael Coughlan. * Example program using ACCEPT, DISPLAY and MULTIPLY to * get two single digit numbers from the user and multiply them together DATA DIVISION. WORKING-STORAGE SECTION. 01 Num1 PIC 9 VALUE ZEROS. 01 Num2 PIC 9 VALUE ZEROS. 01 Result PIC 99 VALUE ZEROS. PROCEDURE DIVISION. DISPLAY "Enter first number (1 digit) : " WITH NO ADVANCING. ACCEPT Num1. DISPLAY "Enter second number (1 digit) : " WITH NO ADVANCING. ACCEPT Num2. MULTIPLY Num1 BY Num2 GIVING Result. DISPLAY "Result is = ", Result. STOP RUN.
Pour l’histoire familiale, ma grand-mère paternelle a appris le cobol dans les années 70 et a programmé pendant 2-3 années ! L’ordinateur était un ordinateur de troisième génération dans une administration dont j’ai parlé dans mon précédent Trape (comme sur la photo à coté.).
Basic :
Basic est un langage de programmation, inventé en 1964. Il a été rendu célèbre car un interpréteur Basic équipait tous les premiers ordinateurs personnels dans les années 70. Comme son nom l’indique, il a été conçu pour être facilement et rapidement appris par un débutant.
Ce langage est encore utilisé de nos jours.
10 INPUT "What is your name: "; U$ 20 PRINT "Hello "; U$ 30 INPUT "How many stars do you want: "; N 40 S$ = "" 50 FOR I = 1 TO N 60 S$ = S$ + "*" 70 NEXT I 80 PRINT S$ 90 INPUT "Do you want more stars? "; A$ 100 IF LEN(A$) = 0 THEN GOTO 90 110 A$ = LEFT$(A$, 1) 120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30 130 PRINT "Goodbye "; U$ 140 END
En Basic toutes les lignes ont un numéro (rouge); Le mot GOTO permet d’aller directement à la ligne qui a ce numéro. Si vous allez voir l’exemple Fortran il y avait aussi un GOTO, je vous laisse le trouver 😉
Pour un autre clin d’œil à l’histoire familiale, c’est en basic que mon père a commencé à programmer quand il était en 2ème année de lycée. Les ordinateurs étaient un TO7-70 et un TRS-80, comme sur les photos ci-dessous.
Dans mon précédent Trape, j’ai expliqué que ces ordinateurs étaient au début de la micro informatique. Bien loin du PC de gamer que j’ai construit pour mon Trape !