Histoire de la programmation 1/4 : Des premiers bits au premier langage
Les langages de programmation sont une invention créée par l’humanité. Même s’ils ont été inventés il y a quelques dizaines d’années, il y a eu beaucoup d’évolutions. Je vous invite à parcourir quelques étapes de ces évolutions avec moi.
Bits et langage machine …
Tout au début, les ordinateurs fonctionnent avec des états allumés ou éteints de courants électriques, chargés ou déchargés de mémoires : les bits, 0 ou 1 en langage binaire.
Les premiers informaticiens devaient travailler à ce niveau et saisir de longues séries de 0 et de 1 pour parvenir à leur fin.
Par exemple pour un micro-processeur dans les années 70, le Z80, un programme pour trouver le plus grand nombre d’une série de nombres ressemble au niveau matériel à :
00100001 10100011 01110010 01000110
10010111 00100011 10111110 00110000
00000001 01111110 00010000 11111001
00110010 11110010 01111010
Pas très facile à lire et à écrire, non ?
Ceci est un exemple de langage machine qui à été le pain quotidien de pionniers de l’informatique
Par commodité les informaticiens ont utilisé la base 16 pour représenter les mêmes informations, ce qui donne la représentation suivante du même programme en langage machine :
21 A3 72 46 97 23 BE 30 01 7E 10 F9 32 F2 7A.
Un peu plus facile à lire et à recopier, mais pas forcément à comprendre…
L’assembleur
Pour mieux exprimer ces instructions pour le processeur, les informaticiens ont imaginé l’assembleur, un programme qui transforme des instructions plus lisibles dans ces suites de 0 et de 1.
Ces instructions plus lisibles sont des mnémoniques et ressemblent pour le même programme à :
LD HL,72A3H
LD B,(HL)
SUB A
L1: INC HL
CP (HL)
JR NC,L2
LD A,(HL)
L2: DJNZ L1
LD (7AF2H), A
On appelle mnémoniques ces codes car ils ont une vague ressemblance avec des mots anglais. Ne trouvez-vous pas ?
LD comme Load, SUB comme substract, INC comme increment, JR comme Jump Relative, etc.
La tâche été devenue un peu plus facile pour saisir du code mais encore bien difficile pour concevoir des programmes complexes.
Le premier langage de programmation
L’étape suivante et déterminante sera l’invention des langages de programmation.
Personne ne pensait qu’il serait possible d’inventer des langages de programmation capables de diriger un ordinateur, avant qu’en 1953, John Backus de la société IBM ne se mette à concevoir avec quelques autres ingénieurs le langage Fortran : un langage lisible à l’œil nu, facilement compréhensible, et non une suite de 0 et de 1, ou un jargon insipide comme le langage machine..
C’est un exploit intellectuel d’avoir conçu cette construction abstraite qu’a été ce premier langage de programmation et son implémentation dans un ordinateur : sa simple conception a nécessité 24 années-hommes de travail des meilleurs informaticiens de l’époque.
Je parlerai plus en détail du Fortran dans le prochain post de cette série d’articles !