Cours Ge Ne Ral
Karl Tombre
École des Mines de Nancy
Version 1.0
Octobre 1999
1 Un peu d’histoire
Le langage C++ a deux grands ancêtres :
– Simula, dont la première version a été conçue en 1967. C’est le premier langage qui introduit les principaux concepts de la programmation objet. Probablement parce qu’il était en avance sur son temps, il n’a pas connu à l’époque le succès qu’il aurait mérité, mais il a eu cependant une influence considérable sur l’évolution de la programmation objet.
Développé par une équipe de chercheurs norvégiens, Simula-67 est le successeur de Simula I, luimême inspiré d’Algol 60. Conçu d’abord à des fins de modélisation de systèmes physiques, en recherche nucléaire notamment, Simula I est devenu un langage spécialisé pour traiter des problèmes de simulation. Ses concepteurs faisaient aussi partie du groupe de travail I FIP 1 qui poursuivait les travaux ayant donné naissance à Algol 60. Simula-67 est avec Pascal et Algol 68 un des trois langages issus des différentes voies explorées au sein de ce groupe. Son nom fut changé en Simula en 1986.
Comme son prédécesseur Simula I, Simula permet de traiter les problèmes de simulation. En particulier, un objet est considéré comme un programme actif autonome, pouvant communiquer et se synchroniser avec d’autres objets. C’est aussi un langage de programmation général, reprenant les constructions de la programmation modulaire introduites par Algol 60. Il y ajoute les notions de classe, d’héritage et autorise le masquage des méthodes, ce qui en fait un véritable langage à objets.
– Le langage C a été conçu en 1972 aux laboratoires Bell Labs. C’est un langage structuré et modulaire, dans la philosophie générale de la famille Algol. Mais c’est aussi un langage proche du système, qui a notamment permis l’écriture et le portage du système Unix. Par conséquent, la programmation orientée système s’effectue de manière particulièrement aisée en C, et on peut en particulier accéder
directement