Histoire des langages de programmation
19 décembre 2003
Tout programme est écrit dans
un langage
qui, traduit par un compilateur ou interprété, pourra ensuite être exécuté
automatiquement par l’ordinateur. Dès 1967 on dénombrait 120 langages, dont
seuls 15 étaient vraiment utilisés .
Les programmeurs (que l'on appelle parfois «
développeurs », le mot programmeur ayant été jugé péjoratif, voir « Qualité
du langage ») utilisent encore aujourd’hui des langages créés
dans les années 50, période d'intense innovation.
Certains langages ont été conçus
pour le calcul scientifique, d’autres pour la gestion des entreprises,
d’autres enfin pour la formalisation du raisonnement ou le calcul algébrique.
Il existe aussi des langages étroitement adaptés à une finalité technique précise.
- * *
- Au tout début,
dans les années 40, les programmeurs devaient écrire dans le langage
machine de l'ordinateur. Son vocabulaire est constitué de nombres binaires
qui représentent les adresses des mémoires et les codes des opérations.
Mais ce langage est très pénible pour le programmeur.
L’assembleur,
conçu en 1950, permet de coder les opérations en utilisant des caractères
alphabétiques (ADD pour l'addition, SUB pour la soustraction etc.) et il
traduit ces codes en langage machine. Néanmoins il était nécessaire de définir
des langages encore plus commodes pour le programmeur, des langages dits
«
de haut niveau » (ils sont relativement faciles à apprendre et à utiliser, mais
leur utilisation par la machine suppose une cascade de traductions).
Le
premier langage « de haut niveau » fut Fortran (« Formula Translation ») conçu
par John Backus à IBM en 1954. Ses instructions ressemblent à des formules
mathématiques et il est bien adapté aux besoins des scientifiques, mais
incommode pour les travaux peu mathématiques et notamment pour programmer des
logiciels de gestion.
IBM considérait Fortran comme un langage « propriétaire » qui devait être
utilisé uniquement sur ses machines. Algol
a été développé en 1958 par un consortium européen pour concurrencer Fortran.
Le
Cobol (« Common Business Oriented Language », développé en 1959
par un consortium comprenant le Department of Defense) était destiné aux
logiciels de gestion. Délibérément « verbeux », le Cobol emploie des mots et
une syntaxe proches de l'anglais courant.
D'autres
langages encore plus commodes furent introduits ensuite : Basic (« Beginner's
All-Purpose Symbolic Instruction Code », 1964) peut être rapidement maîtrisé
par le profane ; il est utilisé dans les écoles, entreprises et ménages.
C (1972) est un langage de haut niveau, mais il peut aussi être utilisé comme
un assembleur car il permet de programmer des instructions au plus près de la
« physique » de la machine. Beaucoup de logiciels pour les entreprises
seront écrits dans ce langage souple dont l'utilisation est pourtant dangereuse pour le
débutant : comme il permet de tout faire, il comporte peu de « garde-fous ».
Pascal
(1970), langage « structuré » conçu de façon à éviter les
erreurs de programmation notamment en encourageant la modularité, sera largement
utilisé par les pédagogues qui veulent donner aux étudiants une première
formation à la programmation.
Certains
langages de haut niveau sont adaptés à des applications précises : APT (« Automatically
Programmed Tools ») pour le contrôle des machines outils numériques,
GPSS (« General Purpose Simulation System ») pour la construction
des modèles de simulation, LISP (« List Processing », créé par
John MacCarthy au MIT en 1959) pour manipuler des symboles et des listes (suites
de symboles) plutôt que des données. LISP sera souvent utilisé en intelligence
artificielle. Scheme est, parmi les dialectes de LISP, celui qui rassemble le plus de
partisans. Perl (créé par Larry Wall en 1987) est un langage de commande
commode dans le monde Unix et pour les serveurs Web.
Les
langages de quatrième génération (4GL), utilisés surtout pour la gestion et
l'interrogation des bases de données, seront encore plus proches du langage
humain. On peut citer Focus, SQL (« Structured Query Language ») et
dBASE.
Les
langages objet (que l'on appelle souvent « langage orientés objet »,
expression inutilement lourde) comme Simula (1969), Smalltalk (créé par
Alan Kay
au PARC de Xerox, 1980), C++ (créé par Bjarne Stroustrup
aux Bell Labs, 1983) ou Java (créé par Scott McNealy
chez Sun, 1995) permettent d'écrire des logiciels fondés sur des objets réutilisables,
programmes rassemblant un petit nombre de données et de traitements et
qui communiquent entre eux par des messages. La logique des langages objet est
proche de celle de la simulation. L'évolution des langages objet est allé vers
la simplicité et la sécurité : Java contient plus de « garde-fous » que
C++, qui présente les mêmes risques que C.
Les
programmes peuvent s'articuler autour d'un «
bus » qui assure notamment le routage des messages et soulage d'autant
l'écriture de chaque programme : on parle alors d'EAI (« Enterprise
Application Integration ») ou encore de « middleware ».
Le
système d'exploitation (ou OS pour «
Operating System ») est
un programme qui assure la mobilisation des ressources physiques de la machine :
allocation du processeur et de la mémoire vive aux divers programmes en cours
d'utilisation, gestion automatique des entrées et sorties vers les
périphériques (disque dur, imprimante, modems, « ports
» de communication),
messages d'erreurs, exécution des tâches de fond, etc. Les fonctions offertes
à un programme développé en 1966 sous l'OS des IBM 360 étaient pratiquement
les mêmes que celles disponibles sous la dernière version OS/390. La première
version d'Unix a été développée en 1969, les bases de données
relationnelles sont nées en 1970.
Linux est une version d'Unix adaptée au PC ; il concurrence fortement Windows,
en particulier sur le marché des serveurs.
Le
mot «
programmation
»
recouvre des activités très diverses : l'utilisateur individuel « programme », même s'il ne s'en rend pas compte, lorsqu'il utilise
Excel et Word ; il peut aussi, s'il a un tempérament de bricoleur, faire de
petits programmes en Pascal ou en Scheme : mais dans la plupart des cas ce
bricolage n'ira pas loin même s'il est ingénieux. Les gros programmes
sont écrits par des équipes de programmeurs spécialisés qui se partagent les
tâches et utilisent souvent des générateurs de code (comme Rational Rose)
pour la partie la plus mécanique du travail d'écriture. La différence entre
le programme individuel et le gros programme est du même ordre que celle qui
existe entre le travail
(éventuellement très réussi) qu'un bricoleur bien équipé peut réaliser à
domicile et la construction d'une
automobile ou d'un avion, qui suppose la maîtrise d'un ensemble de techniques
et des mises au point dont seule une grosse entreprise
peut être capable.
|