| 
 Introduction 
Simula-67, premier langage avec la notion d'objet, est l'œuvre des Norvégiens Dahl et 
Nygaard et de leur équipe du NCC à Oslo. Toutefois, leur histoire du langage ne fait qu'une 
trop rapide allusion au fait que The Control Data projects started in 1967 and 
were carried out in Paris under the direction of Jacques Newey
[Nygaard 78]1 
et ignore même le compilateur de Jean Ichbiah alors que ces deux compilateurs (CDC 6000 
et CII 10070, tous deux construits à Paris) ont été achevés avant celui écrit en Norvège.
 
1. Les origines de Simula-67 
Vers 1963, alors que la majorité des programmeurs travaillent encore en 
assembleur2 ou en Fortran, le groupe de travail 
WG2.1 de l'IFIP prépare déja la succession d'Algol 60. Les deux principaux candidats 
ont été Algol W, défini par N. Wirth3 et Algol X, défini par 
E. van Wijngaarden, qui sera finalement choisi comme le successeur officiel 
d'Algol 60, X prenant la valeur 684. 
Mais d'autres langages importants sont aussi en cours de définition comme par exemple des 
choses aussi différentes que PL/1 (qui sera annoncé en même temps que l'IBM/360 en 1964)
 et SNOBOL5. C'est aussi en 1963 que 
 Ole-Johan Dahl et Kristen Nygaard démarrent, au Norwegian Computing Center, 
 la définition de Simula 1 (un véritable langage de simulation, basé sur 
 Algol 60[Dahl 66], en opposition à GPSS qui était 
 plutôt un modèle de simulation) et l'écriture de son compilateur sur UNIVAC 1107. 
 Dès 1965, les auteurs prirent conscience que Simula 1 pouvait être considéré 
 comme un general purpose language et réfléchirent à une revision de ce langage en 
 clarifiant leur notion de processus. Mais le déclic est probablement la rencontre avec 
 Tonny Hoare et ses records6. 
 Les Norvégiens étendent ce concept aux processus (et non plus aux seules données), 
 inventent le concept de classe et surtout ceux de préfixe et de virtuel7
  et définissent ainsi le premier langage de manipulation d'objets bien avant la lettre. 
  Simula II devient alors Simula 67 ; il est officiellement défini 
  dans [Dahl 68].
 
2. Simula 67 et Control Data Europ 
Fort du succès de son contrat avec UNIVAC pour Simula l, et conscient qu'un langage 
comme Simula 67 devait être implémenté sur les ordinateurs les plus puissants 
d'alors (IBM, Univac et Control Data8), 
le NCC prend des contacts avec ces constructeurs et un accord est signé entre le NCC et 
Control Data le 23 mai 1987 : Control Data fera (en 
Europe9 avec l'aide du NCC) l'implémentation 
sur la série 6000 et l'Université d'Oslo celle sur les 3000. 
Control Data Corporation demande alors à Control Data 
France10 de créer une stucture pour le 
développement de ce compilateur. Paris embauche ainsi Jacques Newey11
 qui dès juin 1967 suit les travaux du Simula 67 Standards Group
  et monte à l'automne le French Software Development Department12. 
  Le travail sur Simula 67 démarre alors. 
3. La réalisation du compilateur Simula 67 pour les 6000 
Après une phase d'initiation (tant au langage, qu'aux machines de la série 6000 et au 
compilateu Algol 60, voire à l'anglais que nous ne maitrisions pas suffisemment !), 
la coopération avec Oslo démarre (séminaire sur l'implémentation13, 
séjour de quelques mois de l'une d'entre nous, etc.).
Dès le début 68, des choix importants sont faits : le compilateur sera basé sur 
le compilateur Algol 60 dont on gardera la maximum de choses au niveau compilation 
mais on réécrira complètement le run time system puisque la gestion de la mémoire 
de Simula 67 est fondamentalemen différente de celle d'Algol 60. Et comme 
corollaire : on travaillera en assembleur. Ces choix avaien du bon (on partait de 
quelque chose d'existant14 
ce qui nous permit de démarrer très vite) et du moins bon (la sémantique de Simula 67 
différait beaucoup de celle d'Algol 60 et il aurait san doute mieux valu partir de zéro 
pour cette phase). 
Nous n'avions pas grand chose pour réussir ce travail : peu de nous 
savaient ce qu'était un compilateur, Simula 67 était particulièrement complexe 
(le listing final devait faire dans les 200 000 lignes), nous n'avions aucune aide 
matérielle15 , Mai 68 nous a beaucoup perturbés, nous 
étions plutô isolés tant vis-à-vis de Control Data (où nos problèmes n'intéressaient pas grand 
monde, mais il fallait que nous suivions les procédures rigoureuses d'industrialisation d'un 
produit), d'Oslo16  de nême que du milieu 
universitaire français qui ignorait complètement Simula 6717 , etc. 
Malgré tou ça, 6000 Simula 67 passait les tests d'acceptation avec succès fin 1969, et toute la 
documentation était livrée quelques semaines plus tard, soit moins de deux ans après le vrai 
démarrage. C'était donc le premier compilateur Simula 67 et qui plus est un 
compilateur commercial (et non un prototype) Il sera suivi par celui de la CIl (Juin 1971) 
puis par celui des Norvégiens pour CDC 3000. 
4. L'après développement 
Après quelque semaines de mises au point diverses, démarra la période de 
maintenance (nous ne nous sommes pratiquement pas occupés des installations sur sites), 
assurée par Evelyne Midrouillel et un nouveau membre (J.P. Bernoux). Les autres 
membres de l'équipe furent mis sur de nouveaux projets18, 
mais nous avons toujours gardé un œil sur Simula 67, faisant quelques 
conférences ou
séminaires dans quelques universités ou à l'IRIA (voir 
[André 71a,b], [Midrouillet 71]). 
Mais nous n'avions pas vraiment à nous servir de Simula 67 pour une grosse application.
L'occasion nous en fût proposée en 1970 lorsque Control Data Switzerland répondit à 
l'appel d'offre d'une banque qui désirait équiper son siège d'un ordinateur central où seraient 
reliées toutes les agences par le biais de concentrateurs. On fit appel à nous pour simuler la 
proposition et vérifier que les temps de réponse seraient raisonnables. Deux d'entre nous 
passèrent ainsi près de trois mois à Zürich (avec M. Berney de CDC) et poussèrent 
Simula 67 dans ses retranchements, prouvant que l'on pouvait faire une très grosse 
simulation en Simula 67 [André 71c]. 
Ce travail fut décisif dans le choix de la proposition de Control Data Corporation par la 
banque19. 
5. Conclusion 
Simula 67 n'a pas eu le succès auquel il pouvait prétendre20. 
Je vois, personnellement, plusieurs raisons à celà : 
- Les milieux universitaires ou de la recherche en général étaient assez mal 
informés de ce langage qui avait pourtant tant de nouveautés et de qualité :
- son nom était mal choisi, on le prenait trop pour un langage de 
simulation alors que c'était un general purpose language ;
 - aucune publication de haut niveau n'a été faite par les auteurs qui 
n'ont publié que des Reports au NCC dont la diffusion restait confidentielle. 
Seuls Ichbiah et Morse ont fait un vrai article sur ce langage 
[Ichbiah 69]. Quant à nous à Control Data, nous n'avons pas fait 
assez de « publicité » pour ce langage dans les milieux académiques et nous 
n'étions pas assez médiatiques, mais était-ce notre rôle à nous « industriels » ?
 - le choix de l'implémentation de Simula 67 sur les 6600 de 
Control Data s'est avéré une erreur car ces machines ont été assez peu répandues dans le 
monde universitaire21. Par ailleurs ces 
compilateurs, écrits en 1968-70, bien que spécifiés dans un sous-ensemble de 
Simula 67 n'étaient pas portables ;
 - basé sur Algol 60, Simula 67 en gardait la lourdeur 
(exécution des boucles, appels par noms, etc.) et le compilateur ne pouvait pas produire de 
code vraiment efficace22 ;
 - à la même période, les chercheurs et enseignants étaient plus intéressés 
par Algol 68 et un peu plus tard la mode passa à Pascal avec sa simplicité naïve.
 
  
- Les utilisateurs industriels ne voyaient guère l'intérêt de 
Simula 67 (si d'aventure ils le connaissaient) comme langage général et étaient 
plus attirés par Fortran, voire PL/1.
 - Enfin, pour le développement de logiciels, la notion de langage 
d'implémentation commençait à peine à paraître23 
et Simula 67 n'était pas encore épuré pour jouer ce rôle24.
  
Je pense malgré tout que Simula 67 était un bon langage et qu'il 
était bon de rappeler le développement parisien de ce produit et qu'indirectement il est ainsi 
à l'origine d'autres produits à connnotation française (comme Ada ou Eiffel) ou de la 
qualification de certains ingénieurs25. 
Remerciements 
J'aurais aimé signer ce papier avec Jacques Newey ou mes ex-collègues, mais je n'ai pas 
retrouvé leur trace. Qu'ils m'en excusent. Et qu'ils soient remerciés de m'avoir permis de 
vivre avec eux ce que je considére comme une œuvre de pionnier. . .  
  
 | 
- 
[André 71a] Jacques ANDRÉ, Introduction à Simula-67 (exposé fait au séminaire de 
programmation de l'Université de Toulouse le 29 Janvier 1971), Note interne ESDD, 
24 pages.
 - 
[André 71b] Jacques ANDRÉ, Simulation d'un réseau de transmission 
(exposé fait au séminaire de programmation de l'Université de Toulouse le 29 janvier 1971), Note interne ESDD, 17 pages.
 - [André 71c] Jacques ANDRÉ et Françoise DU TRÉMOLET DE LACHEISSERlE, « Le quasi-parallélisme
 en Simula-67 », Séminaire d'informatique de l'IRIA, 1971, p. 69-91.
 - [Control Data 69] Control Data Corporation, 6000 Simula-67 Reference Manual, 
publication numéro 602348000, 1969.
 - [Control Data 70] Control Data Corporation, 
6000 Simula-67 Internal Maintenance Specifications, C083*-E013*3, 1970.
 - [DahI66] O.J. DAHL & K. NYGAARD, 
« SIMULA, An Algol Based Simulation Language », 
Comunications of the ACM, Sept. 1966.
 - [Dahl 68] O.J. DAHL, B. MYHRHAUG & 
K. NYGAARD, Simula-67 Common Base, Norwegian Computing Center, 
Oslo, 1968.
 - [Ichbiah 69] Jean D. ICHBIAH et S.P. MORSE, « General concepts of the Simula-67 
Programing Language », Compagnie Internationale pour l'Informatique, 1969. 
Paru dans Annual review of Automatic Programming, 1972.
 - [MidrouiIlet 71] Evelyne MIDROUILLET, 
«  Simulation d'un système en Simula-67 », 
Séminaire d'informatique de l'IR1A, 26 mars 1971.
 - [Myhrhaug 69] B. MYHRHAUG & O.J. DAHL, 
Simula-67 Implementation Guide, NCC publ. noS-9, 1969.
 - [Noodt 68] T. NOODT, CDC 3000 Simula-67 Central Run Time System, Publ. no R230, Université d'Oslo, juin 1968.
 - [Nygaard 78] Kristen NYGAARD & Ole-Johan DAHL, 
« The Development of the SIMULA Languages », 
History of Programming Languages, numéro spécial de Sigplan Notices, 
vol. no 8, Août 1978, p. 245-272.
 - [Vaucher79] Jean VAUCHER, « BETA : 
un successeur de Simula pour la programmation de systèmes », BIGRE, 
no 15, juin 1979, p. 4-10.
  
 
Notes 
- 
 Les références entre crochets renvoient à la bibliographie en fin d'article.
  Elle ne comprend que les titres liés à Simula. Les autres références seront données en 
  bas de page comme cela se fait habituellement en sciences humaines.
 
- 
Cobol n'était guère utilisé alors !
 
- 
Niklaus WIRTH, A proposaI for a Report on a successor of Algol 60, 
Mathematisch Centrum, Amsterdam, MR 75, 1965.
 
- On trouvera quelques éléments sur l'histoire de ce langage, 
notamment en France, dans Laurent TRILLJNG, « Algol 68, une culture 
informatique perdue ? », in Philippe CHATELJN (éditeur), 
Colloque sur l' histoire de l'informatique en France, Grenoble, 3-5 mai 1988, 
tome 1,447-460. [ACONIT]
 
- 
Ralph E. GRISWOLD, « A History of the SNOBOL Programming Languages », 
History of Prograrruning Languages, numéro spécial de Sigplan Notices, vol. 13 no 8, Août 1978,
p. 275-308.
 
- Concept qui date de 1965 (voir Algol bulletin no 21) mais qui sera surtout 
connu plus tard 
par l'article: C.A.R. HOARE, « Record handling », dans 
Programming languages (F. Genuys ed.), Academic Press, 1968, p. 291-347.
 
-  Simula 67 est aussi le premier langage muni de type 
abstrait ; en effet les textes sont définis avec toutes les propriétés d'encapsulation et 
de protection voulues, avant donc que le concept ne soit à la mode plus tard. La notion de 
paquetage du langage Ada est très inspirée de celle de classe (Jean Ichbiah est l'un des 
pionniers de Simula 67 en France – voir ce texte, passim) et on retrouve 
même dans Ada un exemple de paquetage reprenant les principales spécifications de la notion 
de text de Simula 67.
 
- 0n trouvera dans David E. LUNDSTROM, 
A Few Good Men from Univac, The MIT Press Series in the History of Computing, 
1987, une histoire de Control Data Corporation et son importance, grâce aux 6600, 
dans les années qui suivirent 1965.
 
- Deux raisons à celà je pense: 1) Proximité d'Oslo et 2) pour les 
Américains, des choses aussi bizarres qu'Algol ne pouvaient être faites qu'en Europe. 
Par ailleurs, la livraison d'une 6000 à une grosse société de service en Suisse 
(où Nygaard avait fait connaître ce futur langage) était liée à la promesse d'y disposer de 
Simula 67 !
 Le compilateur CII 10070 démarra à Louveciennes en Juin 1968, 
mais nous l'ignorions (voir note 17 plus bas). 
Les contrats d'implémentation sur IBM 360/370 et UNIVAC 1100 ne furent 
signés qu'en 1969.
 
- Ce choix est probablement lié au fait que c'était le pays européen 
où Control Data avait le plus d'installations. Par ailleurs, les milieux universitaires et 
certaines entreprises comme la Bull (qui disposait dès  964 d'un compilateur Algol sur 
son Gamma 60) étaient bien au courant des problèmes de compilation.
 
- Qui travaillait à la Bull dans l'équipe de développement 
de logiciels pour le Gamma 30 (sous la direction de M. Sallé).
 
- Ce département, bien que relevant de Control Data France 
pour les questions administratives telles que salaires et remboursements des frais de mission, 
était rattaché en fait au Research and Development Department, lui même directement 
attaché  à la direction de Control Data Corporation à Minneapolis. Les bureaux ont 
d'ailleurs souvent 
été dans des locaux différents de ceux de Control Data France (du moins des
technico-commerciaux). En fait, outre celle pour le développement de Simula 67, 
une 
seconde équipe a été créée en même temps, qui s'est d'abord occupée d'analyse des concepts des 
systèmes opératoires. Fin 87, le FSDD comprenait, outre Jacques Newey, pour 
Simula 67 : 
Evelyne Midrouillet (Centralienne, venue de la Bull – elle fût la chef de projet du 
compilateur
 Simula 67), Françoise du Trémolet de Lacheisserie (Polytechnique féminine, venue 
 du CEA),
  Jacques Fama (ENSIMAG) et moi-même (3e cycle à Nancy, avec
   Claude Pair, sur un 
  compilateur Algol 60 pour IBM 1620 ; puis quelques mois au CNRS). 
  La seconde équipe 
  comprenait Henri Beauchataud (ENSIMAG), Jean Gilles-Garcia et David Slosberg (ces 
  deux derniers venant aussi de la Bull), Début 1968 rejoignait l'équipe David Moss, un 
  Anlais ayant travaillé sur le compilateur Algol 60 pour la série 3000.
 
- Où il nous fut remis une version « secrète » et 
provisoire de l'Implementation guide 
[Myhrhaug 69] sans lequel nous aurions jamais pu faire ce 
compilateur.
 
- Et ce quelque chose était très bon : le compilateur de CDC 6600 avait 
été porté de celui de la série 3000, lui même basé sur le travail de Peter Naur 
« The design of the GIER Algol compiler »,
Nordisk Tidsskift fot Informajons Behandling (BIT), 1963, p. 124-140. 
Les 9 passes initiales de Naur avaient été réduites, par un mécanisme de coroutines, à 4 (ce mécanisme a d'ailleurs servi 
d'exemple dans le Manuel du langage algorithmique Algol 68 publié par le 
Groupe Algol de l'Afcet chez Hermann, 1975), tous les mécanismes de pile étaient codés 
par des macros, le code était très propre et remarquablement documenté, tant en ligne que 
dans des documents dits IMS (InternaI Maintenance Specification). Du vrai travail de 
professionnel !
 
- Nous perforions nous mêmes nos cartes, nous ne disposions que 
d'un peu de place à la Sema où se trouvait une 6600 (Control Data France n'en 
disposait par pour elle même !) où nous passions nos programmes (par contre, je n'ai 
jamais vu un centre où les listings de sortie étaient disponibles aussi rapidement).
 
- Avec qui les contacts n'étaient quand même ni faciles ni 
fréquents. Avec le temps ils devinrent de plus en plus  rares. L'une d'entre nous ayant 
séjourné séjourné à Oslo, j'ai eu toutefois quelques échanges d'informations, dans les deux 
sens, avec T. Noodt et notamment sur le run time system 
[Noodt 68].
 
- À l'exception du groupe Algol de l'Afcet dont je faisais partie. 
Par contre, c'est tout à fait par hasard qu'un soir d'élection en 1969, j'ai rencontré, chez des 
amis communs, un type qui m'apprit que lui aussi faisait de la compilation, que lui aussi 
justement écrivait un compilateur pour Simula 67 ! Il s'agissait de Jean Ichbiah qui 
démarrait donc le compilateur pour la CII-1070. Comme nous étions en avance sur lui, 
nous lui avons notamment fourni tous nos programmes de test et de quality assurance.
 
- D'une part l'implémentation d'Algol sur des machines 
pipelines prototypes (Star 100 et la série, jamais commercialisée, PL5O), ou la 
réécriture de compilateurs Algol pour les séries 3000 et 6000. À partir de cette 
époque, le FSDD grossit,
embaucha des anglais et s'appela European Software Development Department, 
ouvrit un bureau à Londres, s'attaqua, avec une équipe internationale d'une trentaine de 
personnes à la compilation de PL/I, etc.
 
- 
Hélas, car plus tard elle cassa le contrat à cause de délais non respectés, ce qui fut un peu le 
début des problèmes financiers de Control Data Corporation.
 
- Même s'il y a eu des passionnés de Simula-67, dont par exemple 
Jean Vaucher, Jean Ichbiah, Bertrand Meyer (Simula 67, qu'il a beaucoup défendu, a 
profondément marqué son langage Eiffel), etc.
 
- Avec deux exceptions, l'Institut de Programmation à Paris qui 
avait accès au 6600 du centre de recherche nucléaire de Jussieu et l'Université de 
Montréal où Jean Vaucher a joué un grand rôle de promoteur de Simula 67. 
Il faudra, en fait, attendre le compilateur de Jean Ichbiah sur 10070 pour voir 
apparaître un vrai enseignement de Simula 67 (en 1973, en DEA à l'Université de 
Rennes notamment).
 
- Jean Ichbiah m'a récemment confirmé que Simula a influencé Ada positivement – les paquetages – et négativement en ce qu'Ada a cherché 
(et réussi) à éviter les inefficacités de Simula.
 
- Il est intéressant de signaler que je me suis retrouvé avec 
Jean Ichbiah, vers 1972, lors de réunions, dans le cadre des accords Unidata 
(CDC + Cii + ICL), pour le choix d'un langage commun d'implémentation de systèmes. 
Ça n'a pas abouti. Control Data a alors adopté Sympl (que nous avons optimisé dans le 
bureau londonien de l'ESDD) et Jean Ichbiah a développé LIS avant de définir Ada. . .
 
- Le langage Beta, beaucoup plus tard, est allé dans ce 
sens. Voir, en français, [Vaucher 79].
 
- Quant à l'ESDD, il fut victime du compilateur PL/1 et des 
cnnuis financiers de Control Data Corporation qui fit dissoudre
ce département définitivement en 1975, alors que plusieurs d'entre nous l'avaient 
déja quitté.
 
 
 |