RECHERCHE :
Bienvenue sur le site de Michel VOLLE
Powered by picosearch  


Vous êtes libre de copier, distribuer et/ou modifier les documents de ce site, à la seule condition de citer la source.
 GNU Free Documentation License.

Histoire des langages de programmation

Tout programme est écrit dans un langage [1] 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 [2]. 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 [3] au PARC de Xerox, 1980), C++ (créé par Bjarne Stroustrup[4] aux Bell Labs, 1983) ou Java (créé par Scott McNealy[5] 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


[1] Pour une critique de la notion de langage, voir Vocabulaire de l'informatique

[2] Jean E. Sammet, Programming Languages : History and Fundamentals, Prentice-Hall 1969, p. vi.

[3] Michael Hiltzik, Dealers of Lightning, Harper Business, 1999.

[4] Bjarne Stroustrup, The Design and Evolution of C++, Addison Wesley, 1999.

[5] Richard Stiller et Jos Marlowe, Asunder, Briarwood, 1999.