Histoire des langages de programmation
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
15 seulement é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 extrêmement 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 qui soient encore plus commodes pour le programmeur.
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 donc adapté aux besoins des scientifiques, mais il était
incommode pour les travaux peu mathématiques et notamment pour programmer les
logiciels de gestion. Algol a été développé en 1958 par un consortium européen
pour concurrencer Fortran : IBM considérait Fortran comme un langage
« propriétaire » qui devait être utilisé uniquement sur ses
machines.
Le
Cobol (« Common Business Oriented Language », développé en 1959
par un consortium comprenant le Department of Defense) répondit à ce dernier
besoin. 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
sont écrits dans ce langage souple, dont l'utilisation est 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é, est 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 est souvent utilisé en intelligence
artificielle. Scheme est, parmi les dialectes de LISP, celui qui a 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, sont 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 est 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,
petits programmes rassemblant un petit nombre de données et de traitements et
qui communiquent entre eux par 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 comporte les mêmes risques que C.
Les
programmes peuvent s'articuler autour d'un «
bus » qui assure notamment le routage des messages, et qui soulage d'autant
l'écriture de chaque programme : on parle alors d'EAI (« Enterprise
Application Integration ») ou encore de « middleware » ; nous y reviendrons
lorsque nous évoquerons la structure de la plate-forme informatique.
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 » en fait, 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 très 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 qu'un bricoleur bien équipé peut réaliser à
domicile (éventuellement très réussi) et la construction d'une
automobile, qui suppose la maîtrise d'un ensemble de techniques
spécialisées et des mises au point dont seule une grosse entreprise
peut être capable.
22 novembre 2002
|