Academia.eduAcademia.edu
Algol in France: From Universal Project to Embedded Culture Pierre Mounier-Kuhn CNRS and Universite Paris-Sorbonne This article focuses on Algol as a research agenda and a decisive step in the building of a new scientific community. It provides an analysis of the main French actors involved in the global Algol endeavor—small groups of computer scientists who participated in its evolution, within academic laboratories, R&D departments of computer companies, user organizations, or learned societies. This article gives an overview of Algol-related events in France, their chronology, and their major actors: the people and main organizations involved as well as the motives and evolutions of their actions. The overall purpose is to understand how the Algol effort contributed to transform computing into a science— or at least an academic discipline. How can we write a local history of a transnational object? A global chronological narrative would fit with a conceptual history of Algol,1 involving, successively, the early definitions of a universal algorithmic language in response to the needs of numerical analysis, which produced Algol 60 in the late 1950s; the collective effort to elaborate on concepts or tools and to understand the logico-mathematical implications of a formal language and expand its field of application, which around 1963 led to a paradigm (arguably the first paradigm in computer science), rich with results and potential; and Algol’s influence on entire families of programming languages, including the edification of Algol 68, a new project that remained lively throughout the 1970s and triggered its share of debates and counterprojects, thus contributing decisively to the transformation of “automatic computing” into “computer science” and “software engineering.”2 Algol is a perfect example of something that “became history” in both senses of the phrase: Algol disappeared from the scene but changed programming forever. What I am writing here instead is a history of Algol in French territory. (A previous article offered a general model of the development of computer science in universities.3) More to the point—because a strictly national framework does not make much sense in this 6 IEEE Annals of the History of Computing case—it is an analysis of the main French actors involved in the global Algol endeavor. That is, small groups of computer scientists who became interested in this project, made it their own, and participated in its evolution.4 This means considering each group with its local, particular rationale, culture, and environment in order to better understand the overall dynamic of the phenomenon and allow comparisons at the European or global scale. This approach through successive monographs requires a few flashbacks, which I hope will not disconcert the reader. We will start with the beginning of the collective project within the French learned society for computing, the Association Française de Calcul (Afcal), together with the policy of national science agencies that supported it. Then, we will review Algol-related activities inside the Bull company, a leading computer manufacturer at that time, and look at the main academic laboratories that were involved in computing, notably at the universities of Grenoble, Paris, and Nancy. Finally, we will set in contrast the fading of Algol from industrial practice in the late 1960s, with the effervescent Algol 68 effort and the new research paths taken beyond Algol by individuals and groups in the next decade. Throughout the narrative, I will pay attention not only to the Algol R&D effort but also to the extent to which this language was used. Three main questions map the following narratives:  Around 1960, the French computing community was merely a village populated by a few hundred people, where Published by the IEEE Computer Society 1058-6180/14/$31.00 c 2014 IEEE   almost everyone knew each other. How did Algol emerge, circulate and spread in this milieu? What respective roles did academic and industrial actors play in the development and promotion of Algol? In the longer term, to what extent did Algol inspire and shape the self-assertion of computer science as an autonomous community? In other words, how did it work, not as a mere programming tool, but as a research program that carried a new paradigm?5 Because we will have to use a few French expressions in this article, it is useful to note at the outset that informatique, coined in 1962, is a polysemic term, best translated as computing—or, in the academic context, as computer science. The Algol Hype Algol was first introduced in June 1959 at the Paris UNESCO International Conference on Information Processing (ICIP),6 where the Algol-IAL (International Algorithmic Language) committee held a meeting and invited computer specialists to join the ACM-GAMM project.7 By November, the German subcommittee of the GAMM organized a preliminary meeting in Paris, attended by 50 representatives from Western Europe, who selected delegates for the International Algol 60 Conference. This conference of 13 delegates met in mid-January 1960, again in Paris, and mapped out an improved version of the language: Algol 60. The rapid translation of the Algol 60 report was the beginning of Algol in France. Learned Societies: Appropriating Algol Such a cooperative project fit perfectly within the purpose of the recently created Afcal, the French founding member of the International Federation for Information Processing (IFIP), whose raison d’^etre was to foster cooperation between computer specialists from various professional backgrounds and to include them in the international computing community. The French version of the Algol 60 report8 had three authors: Bernard Vauquois, the only French coauthor of the original Algol 60 report, then director of the Center for Machine Translation at Grenoble University; François Genuys, a mathematician from IBM; and a young (female) Bull engineer, Jeanne Poyen. Published in the society’s journal, Chiffres, the report reached the 200 members of Afcal, and certainly more people beyond them. Genuys, a pure mathematician hired by IBM France in 1957 to strengthen relations between scientific users and its European Institute for Electronic Computing, had a passion for programming languages ever since he was first exposed to Fortran.9 Within Afcal, he held a monthly seminar on numerical analysis at the Paris Institute of Astrophysics. In 1960, Genuys shifted the focus of the seminar to programming languages. A clear mind and efficient diplomat, Genuys participated in the dissemination of Algol 60 among the French computing scientists.10 He knew the members of the international committee who supervised IBM’s computing institute in Paris and had friendly connections with Adrian van Wiijngaarden, Friedrich Bauer, and other mathematicians involved in Algol, as well as with John Backus at IBM. From 1962 on, he represented Afcal in the committees on programming languages at IFIP (TC2) and at the International Standard Organization (ISO/TC97/SC5), both of which included an Algol working group. In the mid-1960s, he obtained financial support from the North Atlantic Treaty Organization (NATO) Science Committee to organize meetings on programming languages. Genuys’s seminar attracted physicists, astronomers, logicians, and mathematicians with an interest in programming. Like the computer itself, Algol served as a common topic, problem, project, and playground that gathered people from various countries and professional environments. If Algol was hardly mentioned in Afcal’s first congress (Grenoble, 1960), it jumped to the forefront in the following years. As of 1963, Algol was a main topic in about 10 percent of the talks given at Afcal congresses. (Afcal changed its name to Afcalti, then Afiro, then Afcet, when it merged with similar societies devoted to operations research and then control and command. The title of its journal also changed accordingly). Algol emerged similarly in the society’s journal, Chiffres. Algol was criticized as soon as it was introduced. At the 1961 Afcal Congress, a chief programmer at Esso claimed that Algol might interest users if the Algol committee devoted as much care to improving Algol’s user friendliness as it had to cultivating its logical rigor. He also stressed that the efficiency of compilers was less important than their speed and would become even less important as computer prices dropped. In 1963, another Algol October–December 2014 7 Algol in France: From Universal Project to Embedded Culture objector, from CNRS, explained that the Babel tower of programming languages, however inelegant, answered practical concerns, and that developing metacompilers to produce programs more easily was more useful than creating “an Esperanto of computing.” Nevertheless, a working group on Algol was created within Afcalti (TI was added for traitement de l’information, stressing the society’s mission to cover all fields of information processing). It was initially an informal group, gathering “a few passionates who were sensitive, like me, to the language’s beauty and even more to its recursivity.”11 Chaired until 1967 by Louis Bolliet (Grenoble University), it provided a meeting point for French Algolists as well as a connection with sister societies abroad or with the IFIP TC2 committee on programming languages. In addition to learned societies, international organizations dealing with industrial issues were also concerned. In April 1960, 20 companies created the European Computer Manufacturers Association (ECMA). It aimed to encourage the adoption of standard procedures and hardware by manufacturers and to avoid duplication of language studies. One of its three technical committees worked on “common programming languages.” Soon after, Algol, Cobol, and Fortran each had its own specific committee. Science Policy: Supporting the Algol Effort Beginning in 1963, three agencies devoted to science policy launched programs to support research in numerical analysis and software development: the National Center for Scientific Research (Centre National de la Recherche  Scientifique [CNRS]), the Delegation Generale a la Recherche Scientifique et Technique (DGRST, an agency inspired by the American NSF and the British NRDC), and the military Direction des Recherches et Moyens d’Essais (DRME, an agency inspired by the American ARPA). The fact that several leaders of the young French computing profession were members of these bodies’ committees favored such a coordinated action. In fact they had been lobbying for it, and the government had just been made sensitive to a “technology gap” in this sector by the alarming situation of Bull. We will focus on CNRS, which particularly committed its action to Algol. Within the CNRS, in 1963 the Applied Mathematics Committee wrote a position report asserting, for the first time, the importance of research on information processing, “whether numeric or non-numeric.” Among 8 IEEE Annals of the History of Computing the major research themes, it identified programming languages and the elaboration of “standard programs in Algol,” inspired by ACM’s choice of Algol as the language for the publication of algorithms. Coincidentally, the CNRS was setting up a new research grant procedure, the cooperative research programs (recherches cooperatives sur programme [RCP]), to support priority topics by facilitating collaboration between different teams and to foster nascent scientific communities. Algol was immediately chosen in 1963 as the  theme of RCP 30 (“Etudes d’analyse numerique et de programmation”), supervised by Jean Kuntzmann (Grenoble). RCP 30 coordinated and sponsored the various works that were being conducted in several academic laboratories. It awarded modest grants that allowed grantees to rent small machines or computer hours, travel to seminars and meetings, or pay a few doctoral students and programmers. The most committed teams were from universities where mathematics held a strong stand. The outcome was the collective publication of a textbook giving hundreds of tested procedures and algorithms to solve equations that were currently used in research.12 This was in line with the ambition of the Algol project: developing sound, practical algorithms and studying algorithms as particular mathematical objects. The RCP 30 budget de facto supported academics who were committed not only to numerical analysis but also to basic research in programming. Team Spirits and Local Rationales Algol was appropriated by actors in the computer industry and in the academic world, not only as a programming tool, but also as a political instrument, as a strategic ally to push their respective power and epistemic agendas. Bull: Adopting Algol to Catch Up with IBM As a vendor of punched card machines, the Compagnie des Machines Bull had a long history of assisting its clients.13 When it shipped its first electronic calculator in 1952 and its first stored program computer in 1956 (the Gamma ET), it also provided crude programming tools.43 In 1958, a year after a Gamma ET had been installed at the Grenoble University Computing Institute (Institut de Mathematiques Appliquees de Grenoble [IMAG]), the laboratory signed a contract with Bull, committing itself to designing better programming tools, including an assembler. IMAG and other academic teams kindled good contacts with Bull’s scientific service bureau (Centre National  de Calcul Electronique [CNCE]), which had about 50 employees (more staff than any academic computing laboratory could boast around 1960). Henri Leroy, a polytechnician who had designed the arithmetic unit of the Gamma 60 and soon turned to software, headed Bull’s programming staff. Both he and his assistant, François Salle, along with other analysts at CNCE, were engineers with strong mathematical training—a mathematical culture that was at the roots of Algol and made them receptive to this innovation as soon as they were exposed to it. One can sum up as follows the de facto division of labor that came into being at the time:    The Bull R&D department developed a computer, including basic software. Academic computer scientists acquired the computer and improved the software. Clients and Bull’s marketing department, particularly the CNCE service bureau, designed application programs. User groups fostered close cooperation between client programmers, Bull R&D, and academic computer scientists.15 In the late 1950s, Bull developed a large computer, the Gamma 60. Because of mismanagement of this enormous project and lack of experience regarding the resources and time needed for software development, the first Gamma 60s were shipped with only a primitive version of an operating system. The machine was not yet on the market when CNCE chief programmers, who were to write application programs for the new machine, realized that no team in the R&D department was really responsible for developing basic software, and persuaded management to assign them to this task. Only in 1960, with the Algol meetings in Paris and a conference given at Bull by Alan Perlis from the Carnegie Institute of Technology, did Bull programmers discover the world of high-level languages and compilers. To catch up on lost time, a vast programming effort was undertaken to create software for the existing machines and for those under development. Algol became central in Bull’s strategy (more precisely in the basic software team’s strategy) because the company considered Fortran an IBM product. Indeed, the seemingly IBM-independent character of Algol became central in Bull’s strategy because the company considered Fortran an IBM product. Algol appealed to Bull, as it appealed to academic teaching staff, which viewed its machine-independent design as an attribute that could unlock programming tools from hardware specificities. Within Bull, Jeanne Poyen, who had participated in translating the Algol 60 report, now led a team that specified a scientific dialect, AP3, that combined Algol’s mathematical rigor with practical functionalities. Two universities equipped with Gamma ETs became software partners of Bull. In Lille, an APB (Auto-Programmation Bull) symbolic language was developed, combining the Algol approach and Bull’s AP2 assembler features.16 It was used on the Gamma ET, and it spread through this machine’s user group and then was adapted to the faculty’s new IBM 1620. In October 1961, Bull granted a contract to IMAG for various language studies, particularly to write an Algol compiler for Gamma 60. The latter never became operational because IMAG finally chose an IBM 7044 instead. Nevertheless, the collaboration between Bull and the Grenoble computer scientists evolved into a durable relationship. It was inside Bull that an Algol compiler, offering a large subset of the language, was developed and completed for the Gamma 60 in December 1962—the first Algol compiler made in France.17 It was used immediately by Bull’s circuit designers to improve their CAD algorithms. Although it aimed to counteract IBM on the large mainframe market for scientific users, it did not become popular among Bull’s clients because Algol was unfit for commercial data processing and left much to be desired for I/O control. Algol spurred the creation of a series of subsets and variants.18 The 114-page Cours de Programmation Algol [Algol Programming Course] for Gamma 60 and RCA 301 (built October–December 2014 9 Algol in France: From Universal Project to Embedded Culture under license by Bull) was published by the company’s school in 1963. Overall, Algol was central in the software culture of many Bull programmers in the mid-1960s.19 In her 1963 book, Poyen wrote that Algol 60 was a base and model for future universal languages that would evolve through international meetings and give birth to new programming methods.20 Salle and Leroy participated in Afcalti’s Algol committee. Bull’s takeover by General Electric in 1964 did not hamper the company’s interest in Algol, which it still deemed essential for the European scientific market. When GE introduced its large GE600 systems, the Paris team developed an Algol compiler, written in Algol and simulated on a Gamma 60, which it implemented at GE in Phoenix, Arizona.21 That was necessary to convince one of BullGE’s first GE600 clients, ASEA in Sweden, which requested the delivery of its machine with an Algol ready to use. IMAG: From Numerical Analysis to Software Engineering The University of Grenoble included a faculty of science and a number of engineering schools, which required the appointment of a professor of applied mathematics. Jean Kuntzmann had been trained as an algebraist, but after World War II he turned to “more useful mathematics,” teaching numerical analysis, creating a computing service, and assembling a research team on these topics. Scientific expertise and advanced equipment attracted R&D contracts from clients outside the university, which in turn brought not only money, but new problems, good reputation, and a broadening professional network, generating a virtuous circle of resource reinvestment. IMAG had six research staff in 1958 and employed 53 by 1963. This growth was observed in other French universities, which became strongholds of computer science, but Grenoble remained prominent in software R&D.3 Grenoble was the only French university that had established frequent contact with the German numerical analysis and computing community. Kuntzmann had taken part in the large Darmstadt computer conference organized in 1955 by Alwin Walther.22 Two years later, a smaller Germanic-French group gathered in Munich to discuss training in applied mathematics and computing and to compare local and national experiences. Kuntzmann’s report advocated the development of education in the promising branch 10 IEEE Annals of the History of Computing of algorithmics.23 Thus, a connection was established with some of the Germanspeaking numerical analysts who were weaving the “Algol conspiracy,” as it became known in the local folklore.24 The connection was reinforced with the arrival of Bernard Vauquois. Trained as an astrophysicist in Paris, Vauquois had learned to program on an IBM 650 at IBM France’s scientific service bureau and developed an interest in mathematical logic. In 1959, Kuntzmann invited him to join the faculty at the University of Grenoble, where he created a Center for Machine Translation with CNRS and military funding. Thus Vauquois was perhaps the first French academic to be interested in computer programming as well as logic and formal linguistics. This explains his early participation in the Algol 60 committee and the prompt adoption of Algol by IMAG. Although Vauquois soon turned most of his attention to the machine translation of natural languages, which sparked his interest in the similitude between translating and compiling processes, he still held a chair in “electronic computing”, and participated in Algol meetings and doctoral juries on programming languages. Algol Compilers Algol became the central topic of two research efforts in Grenoble: one to write numerical analysis programs in this language—sponsored by the CNRS with RCP30, of which we have already given a glimpse— and the other to develop compilers. In October 1961, Kuntzmann assigned Louis Bolliet, an electrical engineer who had become his assistant, the task of creating a research group on languages and programming systems as well as designing Algol compilers for the most common computers then used in France. This ambitious enterprise involved elaborating most of the theoretical bases of this new field, producing complex pieces of software that could work efficiently, while implementing the entirety of Algol as specified in the definition reports, with its full potential … and problems. The uncompromising intellectual ambition reflected the mathematical culture of Kuntzmann’s and Vauquois’ circle, whereas Bolliet’s education as an engineer meant that attention was given to deadlines and practical results. The stress was put on the completeness of the compiled language, on the systematic use of recursive procedures, and on the immediate integration in the machines’ operating systems. The practical constraints were considerable. It took more than a year for a trained, high-level programmer to write out a compiler and then punch it on cards or paper tapes to test it. One main problem was packing relatively large programs on the small memory of second-generation computers. A programmer could spend an hour trying to dispense with a single word in a set of instructions! Despite initial expectations, it was impossible to reuse a compiler designed for a specific computer on another computer. Thus, for each machine model, one had to write a compiler from scratch. Only the grammars could be reused. In 1962, Bolliet’s group spawned several teams, each specialized in a different machine, and created a seminar that reviewed the state of the art in this field. Such a targeted research enterprise propelled Grenoble to the vanguard of French programming. Inspired by recent work on syntactic analysis (parsing) and drawing from previous experience on compilers for other languages, the group chose an approach based on memory stacks. In February 1963, IMAG organized a conference on Algol, supported by DGRST. It drew about 100 participants from the academic world and industry. Bolliet’s team presented its first results, spurring emulation in other faculties. Three months later, in a keynote lecture at the third conference of the French Computing Society, Bolliet gave a detailed overview of compiler techniques, presenting particularly the works of Edgar Irons, Heinz Rutishauser, Alan Perlis, Andrei Ershov, Bruce Arden, Friedrich Bauer, Klaus Samelson, Albert Grau, and Edsger Dijkstra.25 This gives us a glimpse of the discussions that went on at the Grenoble seminar. Because they started their work relatively late, the French could draw ideas from these Algol pioneers’ early experiments and choose from among a variety of approaches. A regular flow of theses, papers, and of course, operational compilers followed. Although no Grenoblois (and few French) contributed to the Algol Bulletin in the 1960s, results began to be published in conference proceedings and in the journals of the ACM and various French societies. The main efforts at Grenoble focused on writing internal reports and doctoral dissertations. The first dissertation on this topic in Grenoble was defended in 1963 by Jean-Loup Baer, who compared Cobol to Algol and A regular flow of theses, papers, and of course, operational compilers followed the Grenoble seminar. criticized the former’s lack of formal definition. As a study in programming, not in applied mathematics despite its official classification, this work may be considered one of the first doctoral dissertations in computer science in France. A prominent result of this research enterprise was Jean-Claude Boussard’s doctoral work. In collaboration with the whole Bolliet team and IBM France, Boussard produced an Algol 60 compiler fully integrated with the IBM 7090 and 7044 operating systems. It was put to use in January 1964 in several computing centers and soon distributed through the Share user group. It was also the first doctorat  d’Etat in computer science (the highest degree in French universities at the time, the equivalent of today’s European habilitation), allowing its possessor to run for professorship. Boussard immediately seconded Bolliet in the programming and software course. His bibliography shows that he (and certainly the rest of the group) was aware of Andrei Ershov’s work in the USSR, of Noam Chomsky’s study of the formal properties of grammars, and of the publications of various authors presented in Bolliet’s survey at the Toulouse conference. Bolliet himself wrote his dissertation on the notation and translation process of symbolic languages for a doc defended in 1967. torat d’Etat On the industrial side, Bull subcontracted to IMAG the development of Algol and Cobol compilers (the former lagged, the latter was duly delivered) and of various scientific programs for the Gamma 60.26 Designing compilers under contract became a specialty of IMAG, which developed Algol compilers for the machines of different manufacturers. While gaining revenue, the Grenoble laboratory also took care to draw intellectual challenges and doctoral research topics from these tasks. Working on such a variety of October–December 2014 11 Algol in France: From Universal Project to Embedded Culture Figure 1. The first French book on Algol.27 The publisher took great care of the book’s typography and had special characters designed for printing Algol formulas by the famous Swiss typograph Adrian Frutiger, who named this alphabet “Algol.” Figure 2. Algol alphabet by Adrian Frutiger (1964) (H. Sterer and P. Stamm, Adrian Frutiger, Caractères. L’Oeuvre Complète [Adrian Frutiger € ser, 2009, p. 161). Typefaces: The Complete Works], Birkhau machines, from minicomputers to large mainframes, gave IMAG the opportunity to explore different practices, technical compromises, and software styles. IMAG published the first French Algol manual in 1964 (Figures 1 and 2).27 Bolliet’s coauthors were numerical analysts, and the book was explicitly aimed at practitioners of scientific calculation, much like the collection of programs produced in RCP 30 under Kuntzmann’s direction. Nevertheless, Vauquois’s preface highlighted that Algol was the first attempt to apply the theories of automata and formal language to programming, offering new possibilities to study and develop languages. 12 IEEE Annals of the History of Computing The Grenoble men began to preach the Algol gospel, influencing computer specialists in other universities. For example, Bolliet gave a seminar in 1964 in Rennes, persuading the audience to adopt the Algol 60 agenda. The team gained attention at an international level. An Austrian student, Georg Werner from Vienna, came to Grenoble to write his dissertation on Algol syntax and compilation (1964); he taught at IMAG and then became a professor at Lille. An Englishman, Michael Griffiths, initially trained at Oxford University, was invited by Bolliet to work in Grenoble. He later took a chair in Nantes. Grenoble computer scientists became a strong local community with an international identity. Having become a star in the global Algol constellation, Grenoble was put in charge of organizing the sixth meeting of the IFIP’s working group on Algol. The group met in October 1965 in St-Pierre-de-Chartreuse, a nearby mountain village. The Algol insider history recalls that three reports describing more or less complete languages were among the contributions, featuring a new technique for language design and definition. One of the participants at this meeting recalled in his memoirs, “We had a draft of an excellent and realistic language design which was published in June 1966 […] in the Communications of the ACM. It was implemented on the IBM/360 and given the title Algol W by its many happy users. It was not only a worthy successor of Algol 60, it was even a worthy predecessor of Pascal.”28 At the same meeting, “the Algol committee had placed before it a short, incomplete and rather incomprehensible document describing a different, more ambitious and, to me, a far less attractive language,” which eventually became Algol 68. Yet other participants enthusiastically embraced this new Algol project, including a number of Grenoble people. The next year saw a NATO summer school on programming languages and compilers, organized in another nearby ski resort, Villard-de-Lans.29 In addition to the intellectual challenges of the meeting, this conference brought a new international opening to IMAG. One participant was Pierre Robert (from University of Montreal), who soon invited junior computer scientists from Grenoble to teach and pursue their postdoctoral research in Montreal. His computer department was launching a research project on operating systems and welcomed the talents trained in Grenoble. Also invited to Montreal were several Swiss scholars from Geneva and Lausanne, who developed exchanges with Rennes and Grenoble. In the mid-1960s, Bolliet’s team broadened its research scope to systems, a natural extension of compiler work. It developed Diamag, an Algol conversational system implemented on the faculty’s IBM 7044, allowing for the simultaneous access of 32 users. This was the first operating system developed in a French university.30 The Diamag project allowed researchers to test novel concepts on IMAG’s mainframe and satellite computers. It trained several doctoral students who devoted their theses to various aspects of the system and produced a number of publications, contributing to the growing flow of Algol literature.31 Meanwhile, Bolliet spent a semester at IBM in New York with a group in charge of developing a new programming language (PL/1). This experience, added to the Diamag achievement, helped French IBMers convince their hierarchy to found a joint scientific center at Grenoble University in 1967. Reflections on compilers and programming languages were at the root of this new team’s culture, but other research directions were pursued, particularly virtual machines and virtual memory concepts. Algol, however, remained essential in IMAG’s programming courses until the mid-1970s, as it was in most other French universities (Figure 3). Toulouse: Software Engineering, Local Style In Toulouse, mathematics was not as predominant as in Grenoble, Nancy, or Paris, so computer scientists were more oriented toward hardware and system development. The investment in Algol served mainly practical purposes: to teach students programming and develop software for scientific and technical use. At the science faculty as well as in the university engineering school, Algol 60 became the standard tool for teaching and describing algorithms in computer science courses. In 1965, the computing center received a small CAE 510 computer, and developed for it an Algol compiler and an interpreter, along with a time-sharing system that allowed up to 16 students to work on 16 different programs (Figure 3). The training was completed with practice on the Algol batch compiler of the faculty’s IBM 7044. Fortran was considered “obvious” and was only taught by an assistant in laboratory exercises, along with vari- Figure 3. Students learning to program on an Algol time-sharing system in Toulouse. The picture shows 13 students, six of whom are women. (“Utilisation d’un ordinateur en temps  ” [Using a Time-Sharing Computer], partage Nucleus, vol. 7, no. 6, 1966, p. 7). ous assemblers. As for Cobol, students knew no more than its name.32 In the late 1960s, advanced students at the engineering school devoted two-thirds of their research time to projects, developing parts of a PL/1 system or the Algol 60 compiler for the university’s new SDS Sigma 7 (CII 10.070), under contract with the Plan Calcul’s national champion CII. Paris: From Programming to Computer Science The Institut Blaise Pascal (IBP) in Paris was the CNRS’s main computing laboratory.33 Its director also held a chair in numerical analysis at the Sorbonne University since 1959. In the early 1960s, Algol became an important part of the IBP computer scientists’ agenda. The chief of the computing center, Louis Nolin, an astute philosopher interested in mathematical logic, undertook theoretical research aimed at a more rigorous definition of the Algol syntax, including applications for the compilation and translation of Algol into various machine codes. Nolin’s vita is interesting in that it exemplifies how, in the early 1960s, computer practitioners came in contact with mathematical logic. In November 1961, Nolin gave a lecture at Genuys’ Afcal seminar on symbolic languages, which he published later.34 He recommended building programming languages by following the axiomatic method established in mathematics, as exemplified by Algol. Moreover, Nolin explained that actual problems in designing algorithms would be better approached in the light of the reflections on computability produced by October–December 2014 13 Algol in France: From Universal Project to Embedded Culture logicians since the 1930s. In the realm of French computer scientists, this was one of the first mentions of the work done 30 years earlier by Alan Turing, Alonzo Church, and others. Maurice Nivat, a young mathematician, assisted Nolin in this research.35 Andre Lentin, an algebraist with a strong interest in linguistics, worked on extending Algol to nonnumerical data processing. In 1963, a newcomer in this circle, Marcel-Paul € tzenberger, broadened the perspectives Schu € tzenberger was an of Algol decisively. Schu algebraist whose encounter with linguist Noam Chomsky at MIT led him to write a seminal paper on the algebraic theory of languages, which also provided a powerful tool to describe programming languages.36 € tzenberger’s high intellectual standards Schu attracted researchers who were interested in context-free grammars, automata, and compilers. Working on Algol made IBP researchers € tzenberger’s cross-disciplireceptive to Schu nary explorations because the Backus Normal Form, elaborated on in 1959 to formally describe Algol and other languages, appeared to be equivalent to Chomsky’s “context-free” notation. That Algol served as a melting pot for various intellectual concerns is obvious in the studies carried out by Nivat and Nolin at the time.37 In Michael Mahoney’s words, € tzenberger brought “the agenda of Schu semantics” to the Paris group, while the collaboration with the Nolin team at IBP may have contributed to the introduction of the concept of push-down automata in the pub€ tzenlished version of the Chomsky-Schu berger paper.38 Coincidentally, this team was reinforced with the arrival of several young researchers spun off from a CNRS-Army machine translation project which had just been terminated. Another newcomer, Jacques Arsac, was an astrophysicist turned numerical analyst and programmer. In charge of the Paris observatory’s IBM computers, he had developed an Algol compiler and a Fortran syntax analyzer and presented them at Genuys’s seminar.39 Arsac was invited to teach at IBP and soon to direct the Institute of Programming, created in 1963 for training computer users at all levels. A nonhuman carrier of Algol into this institute was the Elliott 803 computer, which came with a remarkable Algol 60 compiler designed by Tony Hoare in Great Britain (Figure 5).40 In 1965, Arsac was elected full professor at the University of Paris with a chair of “programming”, one of the first chairs in 14 IEEE Annals of the History of Computing computer science in France. The term “science” is somewhat anachronic here: until then, Arsac had not published anything on Algol because he considered his present scientific profile was in numerical analysis, whereas programming was just a matter of technical training. The most visible outcome of the IBP’s work on Algol was a treatise written by IBP’s four leading computer scientists (Figure 4).41 Published a year after the Grenoble manual, it carried something of a Parisian reply emphasizing the need for a more theoretical approach. More exactly, it was two books in one. The part written by Arsac aligned with his concern about the education of programmers. In contrast, the other three authors—all of whom were mainly interested in the algebraic and linguistics implications of Algol—focused their presentation on semantics, not merely syntax, the latter being implicitly the case in the Grenoble publication. The fact that two of the four authors  were graduates of the highly purist Ecole Nor male Superieure in Paris was a step toward legitimizing “computing science” in French academia. IBP’s annual reports show that, throughout the 1960s, Algol and Fortran were the main languages used and taught, with compilers written for internal use on the Institute’s many computers. When IBP developed a time-sharing system for its new IBM/360-40 in 1966, Algol was chosen as the normal programming language for its users, who would type their programs and see them automatically corrected online by a syntax analyzer. In addition to letting researchers experiment with Algol and software development, using Algol with a syntax analyzer made direct access to the computer more user friendly, so IBP computer scientists could devote more time to their own research instead of serving the computer center’s clients. The choice of Algol was also justified by the growing array of algorithms and procedures written in Algol. Yet, by the late 1960s, Algol was no longer taught to scientific users from disciplines other than computer science. For them, Fortran and PL/1 had become the main computer languages. Together, they remained prominent at the master’s level in the IP as well as in the more technically oriented programmers’ curricula.42 (See the “Programming Languages in Use” sidebar for more details.) Although the IBP teams had been immersed in the Algol experience, they were not as involved in the Algol project as their Figure 4. Algol, Theory and Practice, the Paris Algol treatise, by four IBP members.41 Grenoble or Nancy colleagues (only four doctoral dissertations mentioning Algol in their titles were defended in Paris before 1970), and they soon moved to new research directions. Arsac had become a leading specialist in programming languages, which made him a frequent member of doctoral juries in Grenoble and other universities. From 1964, he broadened his scope to operating systems, on which he wrote a book published in 1968. He was also a member of the IFIP Education Committee (TC3) and contributed to laying out IFIP’s first computer science curriculum. This array of activities made him realize that computing was an autonomous discipline, “the science of information processing,” distinct from mathematics and deserving full academic recognition.43 Arsac devoted the rest of his professional life to propagating this conviction while pursuing his own research on algorithmics, languages, and software reliability. A junction point between numerical analysis and programming, algorithmics was becoming a cornerstone of computer science—a direct consequence of the Algol project. Nivat, relying on his own experience and influenced by the work of Donald Knuth, started to teach a course on mathematics and algorithmics in 1967. From that point on, the path chosen by the group that formed Figure 5. The right programming spirit. In 1967, the Institute for Programming (IP) was about to move to the new science faculty at Orsay, south of Paris, with its NCR-Elliott 4130 computer.  rix and Obe  lix, whose adventures in Britain Aste had just appeared, inspired this cartoon by an IP lecturer. Insiders could recognize the silhouettes of an assistant carrying the 4130 and of Jacques Arsac with a flask of “Algol,” indispensable to giving students the true programming spirit. (Drawing by Bernard Robinet, Progrès et Science, special issue on the Institut de Programmation, 1967). € tzenberger, Nivat, and Nolin led around Schu them to participate in the transnational construction of a theoretical computer science. Newcomer Universities: Nancy and Rennes Grenoble and Paris were soon followed by Nancy. In the capital of Lorraine, a professor of applied mathematics, Jean Legras, had created a small computing laboratory. At the end of 1962, he returned from a seminar in Grenoble with a copy of the Algol 60 report and news of Bolliet’s endeavor to develop compilers. This coincided with the arrival in Nancy of a budding mathematician, Claude Pair, who was looking for a topic for his doctoral dissertation but was interested neither in the abstract Bourbaki views nor in numerical analysis. Pair eagerly took on the idea of designing a complete Algol compiler and found four junior researchers to work with him. Their driving force was the intellectual challenge: developing compilation methods, searching universality, and testing ideas on October–December 2014 15 Algol in France: From Universal Project to Embedded Culture Programming Languages in Use In the late 1960s, the great majority of French computer users were still programming in autocode or assembler. Only a quarter of them programmed in Fortran or Cobol; PL/1 and Algol remained marginal and represented “less than 5% of the languages employed,” according to a 1970 survey.1 Reference 1. G. Cristini and A. de Lamazière, “Le parc français” [The French Computer Park], 0.1. Informatique-Mensuel, Sept. 1970, p. 58. recursivity and on the stack principle. Pair and his coworkers educated themselves in this field by reading the Communications of the ACM and the Algol Bulletin and by attending seminars in Grenoble and Paris. The laboratory’s aging IBM 650 did not have enough memory to support such a compiler, but the team made a deal with the local IBM agency, which allowed them to use a small IBM 1620 at night. They presented the 1620 Algol compiler at a conference in Mannheim, making clear that it was “still needing further testing.”44 It never became fully operational because the university chose to buy another computer. Algol nevertheless remained central in the Nancy computer culture. It was taught and used as a standard programming language at the same level as Fortran throughout the decade. At least one-tenth of the doctoral dissertations in computing defended at Nancy between 1964 and 1975 involved Algolrelated problems. The Nancy researchers cooperated with the Grenoble laboratory, where they could use IMAG’s powerful IBM computers. Studying Algol 60 and its properties, promises, and shortcomings led scholars to explore various branches of mathematics, which could provide models and help formalize concepts. From 1963 on, Legras’s seminar program broadened to include programming languages, metacompilers, mathematical logic, formal grammars, trees, and graph theory.45 Pair’s doctoral dissertation (1965) was devoted to the stack concept and its application to syntax analysis. After becoming a professor, Pair was able to attract more students and explore new research directions, particularly graph theory, which looked to be a promising way to foster progress in algorithmics. This trend toward theory, which characterized most computer laboratories as computing evolved from a practice to a discipline, was particularly strong in Nancy 16 IEEE Annals of the History of Computing for three reasons. First, like Paris, Nancy was a stronghold of pure mathematics, and even those who were not in the Bourbaki line were stimulated by this intellectual environment and willing to assert the mathematical legitimacy of their field. Second, a team of theoretical linguists settled in Nancy, using Legras’s computers and favoring discussions on formalization. Third, the university’s computing center possessed only small computers in the 1960s; hence, unlike their colleagues in other universities, the Nancy computer scientists had little incentive to develop operating systems and preferred to reinvest their compiler experience into other investigations. The topics of the doctoral dissertations that were supervised by Pair over two decades can be classified into three categories. About half focused on computer applications to other fields, such as medical databanks or linguistics. The other half can be divided into two quarters: one addressed problems with compiler or metacompiler design, program development methodology, and other software engineering topics, and the other concentrated on theoretical computer science, a field in which Nancy researchers rivaled the Paris team. Pair himself participated in the IFIP working group devoted to the “Formal Description of Programming Concepts.” Until the late 1960s, the few academic centers that had pioneered computer science, mainly at Grenoble, Toulouse, Paris, Lille and Nancy, grew internally, with staffs reaching up to 150 people. From 1967 on, the centers sent some of their junior researchers and assistants to other French universities, which were now implementing courses in programming and computer science. Consequently, many computer scientists who had been immersed in Algol projects at the time of their doctorates became professors in different French universities and engineering schools, where they brought the Algol culture. In Rennes, computer science bloomed suddenly in 1970 as a result of local initiatives combined with political decisions. No fewer than eight software specialists who had earned doctorates in Grenoble, Paris, or Nancy spent a few years teaching in Montreal, then returned to France where they filled positions at the University of Rennes. Their main common project, under Jean-Pierre Verjus’ leadership, was the development of an operating system written in Algol 68 for the university’s CII-SDS Sigma 7 computer. They took on the challenge of designing an Algol 68 compiler, the topic of five doctoral dissertations. Having become operational by the mid-1970s, the Rennes compiler was brought to similar machines at other universities and remained widely used until the 1980s. Metamorphoses and Offsprings Predictably, Algol’s decline is less documented than its development. Nevertheless, this part of Algol’s history provides a good opportunity to observe how an object that was once central and inspirational becomes just another part of the cultural background of a profession. Algol Fading at Bull-GE and in the Plan Calcul From 1963 to 1967, a small team at Bull headed by Henri Leroy conducted various Algol projects, only to see them destroyed by GE management decisions or as the consequence of choices made within Bull. A major problem was whether to adopt a high-level language to write the next-generation operating system. “Finally we decided to use both an assembler and a high-level language for implementation. The language chosen in 1968 was ‘Q’, a dialect of Algol, which did not puzzle us as several Bull engineers had participated in the Algol 60 compiler for the GE 635 in Phoenix and in Sweden. The Q language was finally abandoned in 1970 for HPL, a dialect of PL/1, with which over 85% of GCOS64 was eventually coded.”46 Leroy progressively left the industry to teach computer science at the University of Namur, Belgium. There he kept using Algol, which he considered “an excellent language for teaching—much better than Pascal, for instance,” because Pascal does not allow arrays with dynamic bounds, which he saw as an intolerable restriction for most practical applications.47 Meanwhile, Salle and others left Bull for CII, the newly founded “national champion” of the Plan Calcul. The beginning of the Plan Calcul in 1967 was a corporate battle, the outcome of which left no room for Algol projects. Two companies, the Society of Electronics and Automation (Societe d’electronique et d’automatisme [SEA]) and the European Society of Information Processing (Societe europeenne de traitement de l’information [SETI]), had developed computers inspired by Algol concepts, which all fell on the losing side. SEA was created in 1948 by an electrical engineer and mathematician, François-Henri Raymond.48 In 1960 it had developed a programming language comparable to Basic for its CAB500 computer.49 By 1963, Raymond’s team began to explore non-Von Neumann architectures based on the stack principle, particularly the CAB 1500, an Algol stack machine, a prototype of which was built in 1966. This visionary company had only a small share of the market, but it played an important part in the education of computer engineers and scientists as well as in the conceptual progress in this field. SETI, created in 1963, had hired ex-Bull engineers who designed an Algol-inspired language for the small PB250 computers that SETI was producing under Packard-Bell license. Then they developed a novel computer, Pallas, which came about in 1965 with a complete catalog of programming tools and compilers. Algol was particularly important in this stack machine. Its chief designer had fallen for the Burroughs B5000 and wrote a book on this kind of architecture.50 SETI sold only a dozen Pallas to French universities and research centers. Both SETI and SEA were dismantled and absorbed to form the new national champion International Informatics Company (Compagnie internationale pour l’informatique [CII]). The product strategy was now defined by CAE, a subsidiary of Thomson-CSF that sold computers under license from TRW and Scientific Data Systems. CAE’s core expertise was in real-time systems, with a strong priority given to systems reliability. In addition, the Plan Calcul commissioned CII to focus on commercial mainframes, with only marginal attention to the scientific market, which was the realm of Algol. Thus, Algol held but a lowly position within the Plan Calcul. Since 1965, the DGRST “Languages and Programming” chapter had shifted to PL/1 compilers and communications software. Moreover, although CII planned to have Algol compilers on its machines, Algol developments were delayed when the company had to cut costs in 1968. Its priority was to develop the Siris operating October–December 2014 17 Algol in France: From Universal Project to Embedded Culture systems for future CII mainframes, aimed at the commercial market. To achieve this enormous task, the new company hired and trained hundreds of programmers and sought seasoned project managers, particularly by tapping Bull’s human resources. CII approached François Salle at a 1967 IFIP meeting in New York. He soon joined CII, together with several other Bull engineers who had participated in the development of Algol compilers for various Bull or GE machines. They brought not only considerable experience in programming, but also the conviction that “basic software” (monitors, compilers, I/Os, and so on) should be entrusted to a department or direction at a high hierarchical level. CII named Salle head of its Direction of Basic Software. Three years later, he also annexed application software, hitherto a part of marketing operations, and in 1971, he headed the whole company’s R&D, including both hardware and software. Salle’s career eloquently reveals how the status of software changed from an ancillary commercial service to a key competence in a company’s strategy. Most of the software was developed in house. Operating systems, particularly monitors, were never delegated to external partners. Other parts, such as compilers and some application programs, were sometimes subcontracted to software companies or academic laboratories, or developed jointly with clients. In the early 1970s, the Plan Calcul finally launched a program to develop specific software for and with academic scientists, under a committee chaired by Claude Pair. CII had finally realized that scientific clients, although they were a marginal market, were influent advisors and partners. In time, this operation produced a catalog of compilers and translators for Algol W, PL/1, Prolog, LISP, and Algol 68 (the latter in Rennes, as mentioned earlier), implemented on the high-end CII computers, which were then the cores of most university computing centers. Simultaneously, the experience gained with Algol compilers and with Simula-67, one of Algol’s successors, was reinvested first in system programming languages under the leadership of Jean Ichbiah and then in the development of a new language, Ada. AFCET, Algol 68, and Theoretical Computer Science After several acronym changes, the learned society of French computer scientists became 18 IEEE Annals of the History of Computing AFCET (Association française pour la cybernetique economique et technique). In 1967, Bolliet left the chairmanship of the Algol group to Claude Pair, who then supervised the group’s studies about Algol 68 until the mid-1970s. Algol 68 remained an attractive topic for a minority of computer science teams in Europe, both because of its logical rigor and because its compilation implied new, tricky problems. Various meetings, seminars, courses, practical developments, and doctoral dissertations addressed this new intellectual challenge. AFCET’s coordinated efforts can be summed up in four landmark publications. The lists of active members and coauthors reveal a European group open to all specialists who could speak French. These included experts from the Belgian Philips-MBLE laboratory, undoubtedly a world leader in compilation, and from Amsterdam (Cornelis H.A. Koster), Britain (Mike Griffiths), and Switzerland (Giovanni Coray). They also show the rise of a new generation, mostly men, who had earned doctorates since the mid-1960s. None of the four Parisians who coauthored the 1965 Algol treaty participated in the Algol 68 endeavor. A first introduction to Algol 68, its basic principles, and its expressiveness was published in 1969 by Boussard and Pair, along with a description of the language by Michel Sintzoff (MBLE, Brussels).51 Using the French terminology approved by AFCET, the authors recommended that readers look for a more complete description of Algol 68 in Adriaan van Wijngaarden’s and Lindsey’s reports, both published by the Amsterdam Mathematisch Centrum.52 In 1969–1970, Boussard and Jean-Jacques Duby (IMAG-IBM, Grenoble) organized a series of meetings to evaluate Algol 68, with a committee of 20 computer scientists from various academic or industrial backgrounds (fourteen from France, four from other European countries, and two American IBMers). The purpose was to assess Algol 68 from various points of view in the computer science community and to judge the language’s practical programming potential on the basis of the two Amsterdam reports and a few attempts to write programs. The resulting report, published in Revue d’informatique et de recherche operationnelle (RIRO), mentioned heated debates and a few remaining disagreements within the committee.53 Its conclusion was guardedly optimistic: A real programming language—not just a theoretical “algorithmic language” —powerful and wellstructured, Algol 68 was a step toward languages that would give programmers improved means of definition, expression, and program checking. The language’s actual possibilities for the various branches of computing remained to be tested, particularly for data processing applications. Its success would depend not only on users and manufacturers’ support, but also on coordinate efforts to implement it efficiently for a whole range of applications. Meanwhile, the AFCET Algol group (18 coauthors) translated the Report on the Algorithmic Language Algol 68, edited by van Wijngaarden and published it in 1972 with a detailed introduction, building on the two papers published in RIRO in 1969.54 Two contracts from the Plan Calcul and from the DRME military agency sponsored this work. Such a translation required extreme care and precision; the main difficulty came from the frequent use of English as a formal language in the original report. All ambiguities had to be eliminated, with lexicons to provide the French equivalents of English terms, and the same for symbol representations. A whole, standardized language, completely defined with its vocabulary and syntax, had to be translated into a profoundly different language, essentially to give Algol 68 more acceptability on the market. In this regard, Algol 68 was comparable to the nascent European community, if one looks at the considerable investments it implied to work out and then translate common regulations into each country’s law and practice. The Algol 68 manual finally came out in 1975, coauthored by 17 experts supervised by Pierre Bacchus (Lille), Claude Pair (Nancy) and Jacques Andre (Nancy and Rennes).55 Resulting from the enormous work done by AFCET’s Algol group, through meetings, comprehensive discussions, criticism, crossreading, and successive versions, it was a masterwork of logical construction and unambiguous expression, as greeted in the preface by F. Genuys—in tune with what Algol 68 itself stood for (Figure 6). This thick book was sponsored by CNRS alone, revealing a lack of interest on the part of more userfocused agencies. According to the publisher, although Algol 60 manuals sold well, Hermann (then directed by Pierre Berès, an art collector) never recovered the costs of its two Algol 68 volumes. The latter were generally viewed as the last salvo from a group of unconditional militants who still Figure 6. Manual of the Algorithmic Language Algol 68.55 The authors came from half a dozen universities, mainly in France and Belgium. The three editors were from Lille, Rennes, and Nancy, three universities where Algol was still alive and used in the mid-1970s. considered Algol necessary to software engineering. In short, Algol 68 had the merit of having triggered in-depth reflections on structured programming, data structures, and object languages. It was a systematic exploration of advanced concepts and altogether a stimulating research program. However, with an extremely formal definition, it provided far too complex a tool to be used—as proven by the success of Pascal, the result of its counterproject. AFCET became instrumental in the promotion of theoretical computer science, in close relation with the Algol project (for example, logical programming was largely born out of the W-grammars used by van Wijngaarden to describe Algol 68). The Nancy team developed research in this field October–December 2014 19 Algol in France: From Universal Project to Embedded Culture Algol as a Research Topic Algol was the main topic of 47 doctoral dissertations in French universities between 1963 and 1978, 20 of which date after 1970. Their geographical distribution confirms the leading position of Grenoble (13 theses) and Rennes (11), but it also reveals the development of operational systems in Toulouse (nine theses) and Nancy (five theses), whereas more theoretical work came out of Paris University.1 Algol ceased being a research topic in the late 1970s, although it remained in use as a programming tool for more than two decades. Numdam’s online archive includes papers in applied mathematics, where Algol was used to write programs until the late 1990s. 2 References 1. Search of the Sudoc database with Algol as keyword. 2. Search of the Numdam database with Algol as keyword. The articles range from mathematics to social sciences. One of the last, faithful Algol users was J.-P. Benz ecri, a leading statistician who taught in Rennes and then in Paris. and, from 1971 on, initiated an annual summer school in theoretical computer science, in a rivalry with the Paris group which organized its own AFCET spring school. Open to any specialist who spoke French, both acquired an international reputation. Throughout the 1970s, AFCET summer schools played an important part in the construction and official recognition of computer science, particularly in the design of new academic curricula. Their most prominent result was a book published by a Nancy group under a collective name, Le Livercy56 (collective names were adopted at the time to prevent the possible individual rise to stardom among authors of a collective book). Thus the learned society, created in the mid1950s to foster a nascent profession and promote its techniques, less than 20 years later asserted the development of a new science. Here we use categories and group names such as theoretical computer science, Algol 68, and software engineering, but in fact they were still closely interwoven, as is shown by the participation of the same people in these different groups. For example, Claude Pair was involved in a whole array of research programs, as was Michael Sintzoff, a Belgian who worked closely with Grenoble and Nancy and who helped launch theoretical research in these universities. Consider Prolog (Programmation Logique), a major innovation in algorithmics and a trajectory beyond Algol whose rules are close to W-grammars. Its inventor, Alain Colmerauer, was familiar with Algol 68 since his doctoral work in Grenoble,57 and the initial Prolog interpreter (1971) was written in W-Algol by Colmerauer’s team, spun off in Marseille in 1971. Overall, beginning in the early 1960s, French research choices in these fields went hand in hand with the evolution of IFIP 20 IEEE Annals of the History of Computing working groups. First, in 1962, the Technical Committee on Programming Languages created the working group WG 2.1, which specialized in the development, specification, and refinement of Algol (later renamed “Algorithmic Languages and Calculi”). Then, in 1967, it added WG 2.2, which was devoted to “Formal Description of Programming Concepts,” soon to go under the banner of theoretical computer science. Finally, in 1969, WG 2.3, (“Programming Methodology”) rallied about a core of dissidents from WG 2.1 after the NATO Conference on Software Engineering at Garmisch in 1968. It was no coincidence that the four French delegates at the two NATO software engineering conferences (Bolliet, Genuys, Letellier, and Salle) had all been involved in the Algol adventure. Trained in Grenoble, Laurent Trilling considered himself the “last of the Mohicans” in the teaching of Algol in France, which he kept up until 1987. He attempted later to analyze why Algol 68 never reached success in practice, in a paper given at the first History of Computing Conference in France. He reviewed objective and subjective factors: the scarcity of powerful machines in French academic centers and the apparent complexity of the language, together with social and psychological factors, such as intellectual fashions in science. One can object that US universities had powerful computers, yet did not take on Algol 68. Computer power thus appears to be a necessary but not a sufficient reason. In the early 1970s in France, Algol 68 was included in most postgraduate curricula for computer scientists. This accounts for the number of doctoral dissertations subsequently related to this language. (See the “Algol as a Research Topic” sidebar for more details.) It was taught much less at the graduate or undergraduate levels for computer users. For example, the University Institutes of Technology (Instituts universitaires de technologie [IUT]) taught Cobol and Fortran to future programmers and analysts, yet soon replaced Algol with Pascal, along with the new structured programming methodologies. In some universities, such as St-Etienne, APL took on the part played earlier by Algol, as both an educational tool and research topic. The two main reasons for the elimination of Algol 68 from undergraduate classes were that the language was considered too difficult or daunting and that very few computers offered Algol 68 compilers—it was hardly possible to use the language practically before 1975.58 A manual for beginners was only published at the end of the decade.59 On this long journey, many pilgrims “arrived exhausted on the promised land.”60 Yet the history of Algol confirms, better than any parable, that it is the pilgrimage itself, more than the promised land, that improves the pilgrim. Figure 7. Algol as a catalyst of computer science. This chart may be seen as a subset of Michael Mahoney’s chart mapping “The agendas of automata and formal languages.”61 Conclusion Although the French played no pioneering role in the conceptual development of Algol, Algol played a crucial part in the construction of computer science in France and in other French-speaking regions of the world. Basically a practical programming tool, Algol was widely taught and regularly used by scientific programmers over a long decade. But more than just a new programming language, Algol constituted from the start a research program (in a broader sense than Imre Lakatos’) and an object of circulation and translation. As such, it stimulated the building of an international scientific community, somehow becoming an intellectual complement of what the IFIP was institutionally. A mathematicians’ project, Algol remained firmly rooted in mathematical culture and practices. Yet it played a decisive role in establishing computing as an autonomous science and an engineering discipline. It offers a splendid example of the construction of a new scientific field through a double process: the branching out of a traditional discipline (mathematics), on the one hand, and the convergence of various intellectual agendas as well as individuals from different backgrounds (Figure 7), on the other. Its purpose as a means for the communication of algorithms, not only between humans and machines, but also between mathematicians, was achieved at national level with CNRS RCP 30, which implied that program- Figure 8. Major Algol research centers, as viewed from France in the 1960s. The arrows symbolize the main flows of influence and collaboration, of visits and sometimes emigration, which remained at an individual or small-team scale. This map of French-speaking Algol groups differs markedly from a classic map of France because major cities such as Lyon, Strasbourg, or Bordeaux are out of the scope and more roads lead to Grenoble than to Paris. ming in Algol was as much of a scientific activity as was numerical analysis. The compiler projects, pursued simultaneously in several universities (Figure 8), fostered the creation of new teams sharing a specific culture; stimulated the encounter and hybridization with October–December 2014 21 Algol in France: From Universal Project to Embedded Culture Algol was disseminated in a political context where international collaboration was encouraged and sponsored in several overlapping frames. mathematical logic, linguistics, and algebra; and produced doctoral works that no longer fit in established disciplinary categories. These groups lobbied to create specific informatique diplomas from 1966 and then to form autonomous evaluation committees for computer science within CNRS and the Ministry of Education. An important aspect in this recomposition was the increasing connection between computing and logic.62 Before 1960, most computing specialists had never heard of Alan Turing nor of the groundbreaking work carried out by logicians some 30 years earlier.63 From 1962, mathematical logic was introduced in the computer science curricula at the graduate level in Paris and Grenoble, and then later in Nancy, Toulouse and Lille. By the end of the decade, the synergy between computing and logic stimulated a genuine renaissance of logic in France and led directly to the recognition of theoretical computer science. Algol catalyzed this evolution because it required an understanding of recursivity and because compiler development led to reflections about automatas and formal grammars, as exemplified by the works of Vauquois, Pair, Nolin, Colmerauer and others. In Paris, Arsac’s work on Algol led him first to head the Institute for Programming in 1963, then to create a chair in programming (thus establishing a computer science department), and ultimately to write his manifesto asserting the existence of computing as a fullfledged science. Algol also stimulated cooperation between academic research and the computer industry for two main reasons. First, it soon became a common topic of interest within the learned 22 IEEE Annals of the History of Computing societies, where academic computer experts met with mathematicians and programmers who worked in computer vendors’ sales departments or in the nascent software industry. Second, computer manufacturers often subcontracted Algol compiler design to academic teams. Although these teams might take more time to produce workable software, they were cheaper subcontractors than private software companies. Moreover, their expertise was convincing. They trained toplevel programmers that companies could then hire in their own software staff—a fine way to adapt the manufacturer’s machines to the needs of the scientific market, an influential clientele at the time. Algol, an international project from the start, was soon disseminated among scientists who already had international contacts, in a political context where international collaboration was encouraged and sponsored in several overlapping frames: NATO between North America and Western Europe, a number of European organizations, the informal francophone cluster, and global institutions such as IFIP, which favored East-West contacts contributed to detente in the 1960s. In some ways, Algol became similar to these organizations, where participants cared less about their national origins and a little more about being Europeans or coming from other regions of the world. They noticed, in the Algol 68 phase, that American colleagues shifted their interests to other topics, whereas Soviet scientists were fully involved in it. If the Algol community was not a nation or a “transnation,” it was certainly a transnational culture. Acknowledgments This article drew much inspiration from the Soft-EU project group led by Gerard Albert and supported by the European Science Foundation. It benefitted from discussions with many people who had been involved in this adventure, particularly Jacques Andre, Jacques Arsac, Louis Bolliet, Jean-Claude Boussard, Jacques Cohen, François Genuys, Andre Lentin, Louis Nolin, Claude Pair, François Salle, Laurent Trilling, Jean-Pierre Verjus, and the two anonymous reviewers, all of whom I thank warmly for their comments. References and Notes 1. The history of Algol has appeared in many publications, particularly in R.L. Wexelblat, ed., 2. 3. 4. 5. 6. 7. 8. 9. History of Programming Languages I, ACM, 1981. A good online resource is at http://www.softwarepreservation.org/projects/ALGOL/history. It lists the main works done in Grenoble, yet mentions no other French center. D. Nofre, M. Priestley, and G. Alberts, “When Technology Became Language: The Origins of the Linguistic Conception of Computer Programming, 1950–1960,” Technology and Culture, vol. 55, no. 1, 2014, pp. 40–75. P. Mounier-Kuhn, “Computer Science in French Universities: Early Entrants and Latecomers,” Information & Culture: A Journal of History, vol. 47, no. 4, 2012, pp. 414–456. This article is mainly based on archives and primary literature, interviews with actors from the university and the computer industry, and a comprehensive census of all doctoral dissertations in computer science defended in France between 1956 and 1973. That Algol must be studied historically as an intellectual program with paradigmatic implications, coalescing various agenda, is clearly demonstrated in M. Priestley, A Science of Operations: Machines, Logic and the Invention of Programming, Springer, 2011, chap. 9. Algol was presented in three papers, one by two French scientists, J. Poyen and B. Vauquois, “A propos d’un langage universel” [Regarding a Universal Language], the others by J. Backus, “The Syntax and Semantics of the Proposed International Algebraic Language of the Zurich ACM-GAMM Conference,” and by F.L. Bauer and K. Samelson, “The Problem of a Common Language, Especially for Scientific Numeral Work,” Proc. Int’l Conf. Information Processing, 1959. Journal du Congrès, no. 5; http://unesdoc. unesco.org/images/0015/001537/153718fb. pdf. In addition, a symposium on Automatic Programming included H. D. Huskey, “A Variation of Algol”; and F. L. Bauer & K. Samelson, “The Cellar Principle for Formula Translation”. €r Angewandte MatheThe GAMM (Gesellschaft fu matik und Mechanik) is the German learned society in applied mathematics. ACM, founded in 1947, is a US learned society for computing. F. Genuys, J. Poyen, and B. Vauquois, “Rapport sur le langage algorithmique Algol 60” [Report on the Algorithmic Language Algol 60], Chiffres, vol. 3, no. 3, 1960, pp. 1–44. This report was the translation of A.J. Perlis and others’ Algol project, initially published in Numerische Mathematik, vol. 1, no. 1, 1959, pp. 41–60. It preceded P. Naur et al., “Report on the Algorithmic Language Algol 60,” Comm. ACM, vol. 3, no. 5, 1960, pp. 299–314. Video interview with F. Genuys, H. Leroy, and F.  by P. Mounier-Kuhn, Jan. 2008. Salle 10. F. Genuys, “Commentaire sur le langage Algol” [Commentary on the Algol Language], Chiffres, vol. 5, no. 1, 1962, pp. 29–53. This article was mainly a reflection on Algol syntax and semantics, making some concise passages of the original Algol report more explicit. 11. Personal correspondence with F. Genuys, 20 Oct. 2010. 12. J. Kuntzmann, ed., Proce dures Algol en analyse num e rique [Algol procedures in numerical analysis], CNRS, 1967. 13. P. Mounier-Kuhn, “Bull: A Worldwide Company Born in Europe,” IEEE Annals of the History of Computing, vol. 11, no. 4, 1989, pp. 279–298. 14. B. Leclerc, “From Gamma 2 to Gamma E.T.: The Birth of Electronic Computing at Bull,” IEEE Annals of the History of Computing, vol. 12, no. 1, 1990, pp. 5–22. 15. On computer user groups in Europe, see P. Mounier-Kuhn, “Les clubs d’utilisateurs: entre syndicats de clients, instruments marketing et logiciel libre avant la lettre” [User Groups: between Client Unions, Marketing Tools, and Early Free Software], Entreprises et Histoire, no. 3, Dec. 2010, pp. 158–159. 16. P. Bacchus and P. Pouzet. “Autoprogrammation pour calculateur Bull Gamma ET: APB” [Autoprogramming for the Bull Gamma ET Computer: APB], Chiffres, Revue Française de Traitement de l’Information, 1964, vol. 7, no. 1, pp. 3–14. 17. H. Leroy, “Sur une m ethode de compilation et cution des programmes Algol” [A Method d’exe for Compiling and Executing Algol Programs], 3e Congrès Afcalti, 1963, pp. 191–197. Leroy headed the four-person team that developed the compiler. His paper explained that the compiler’s general organization was similar to the one presented by E.T. Irons in 1961 in the Comm. ACM, allowing for a speed comparable with Samelson and Bauer’s classic method. For the execution of object programs with recursive procedures, Leroy adopted Dijkstra’s solution implemented on the X1 machine. 18. L. Bosset, “MAGE, A Language Derived from Algol Adapted to Small Machines,” Symbolic Languages in Data Processing, Gordon and  and J. Breach, 1962, pp. 473–481; F. Salle Newey “Sp ecification d’un système de programmation et d’utilisation pour un calculateur scientifique de grande ou moyenne puissance. Le système C7” [Specification of a Programming System for a Powerful Scientific Calculator. The C7 System], 3e Congrès Afcalti, 1963, pp. 199–206. 19. J. Poyen and J. Poyen, Le Langage electronique [Electronic Language], Presses Universitaires de France, coll. “Que Sais-je?” 1963, pp. 115–116. October–December 2014 23 Algol in France: From Universal Project to Embedded Culture 20. H. Leroy published an “Introduction au langage Algol” [Introduction to the Algol Language], Chiffres, vol. 6, no. 1, 1963, pp. 59–73. 21 R.W. Bemer, “A Politico-Social History of Algol (With a Chronology in the Form of a Log Book),” Ann. Rev. in Automatic Programming, vol. 5, M.I. Halpern, and C.J. Shaw, eds., Pergammon Press, 1969, pp. 151–237. 22. Fachtagung Elektronische Rechenmaschinen und Informationsverarbeitung [Symposium on Electronic Calculating Machines and Data Processing], Darmstadt, 25–27 Oct. 1955. H. Pet€ndung zold, “Eine Informatiktagung vor der Gru der Informatik: Die Darmst€ adter Konferenz von 1955” [A Computer Science Conference before the Founding of Computer Science: The 1955 Darmstadt Conference], Form, Zahl, Ordnung. Studien zur Wissenschafts- und Technikgeschichte, R. Seising, M. Folkerts, and U. Hashagen, eds., Franz Steiner Verlag, 2004, pp. 759–782. I thank H. Petzold for the names of the few auditors from France. € ber die Ausbildung von Ingen23. Arbeitstagung u ieuren und Mathematikern in numerischer € cksichtigung der elektroMathematik unter Beru nischen Rechenanlagen, [Workshop on the Training of Engineers and Mathematicians in Numerical Analysis on Electronic Calculators], Mathematical Institute of the TH Munich, 1957. I write “Germanic” because participants came from Zurich and Vienna as well as from the Federal Republic of Germany (FRG). €rung [The Algol 24. F.L. Bauer, “Die Algol-Verschwo Conspiracy],” Geschichten der Informatik: Visionen, Paradigmen, Leitmotive, H.D. Hellige, ed., Springer, 2004, pp. 237–254. volution des techniques de 25. L. Bolliet, “L’e compilation” [Evolution of Compiler Techniques], 3e Congrès de l’Afcalti, 1965, pp. 21–58. 26. Correspondence between IMAG (Bolliet and , Leroy, and Adrien), Kuntzmann) and Bull (Salle 1958–1964, IMAG records, box 150. 27. L. Bolliet, N. Gastinel, and P.-J. Laurent, Un nouveau langage scientifique: Algol. Manuel pratique [A New Scientific Language: Algol. Practical Handbook], Hermann, 1964. 28. T.T. Hoare, “The Emperor’s Old Clothes,” ACM 1980 Turing Award lecture, Comm. ACM, vol. 24, no. 2, 1981, pp. 75–83; reprinted in Hoare and Jones, eds., Essays in Computing Science, Prentice-Hall, 1989. 29. F. Genuys, ed., Programming Languages, Academic Press, 1968. 30. For more details on Diamag and on the Grenoblois spin-off, see J.P. Verjus, “Programming in Grenoble in the 1960s and Those Who Flew from the Nest,” IEEE Annals of the History of Computing, vol. 12, no. 1, 1990, pp. 95–101. 24 IEEE Annals of the History of Computing 31. For example, A. Auroux, B. Bellino, and L. Bolliet, “Diamag, a Multi-access System for On-line Algol Programming,” Proc. Am. Federation Information Processing Societies (AFIPS), vol. 28, Spartan Books, 1966. 32. Correspondence with Michel Vatoux, Feb. 2012. 33. A. Collinot and P. Mounier-Kuhn, “Forteresse ou carrefour: l’Institut Blaise Pascal et la naissance de l’informatique universitaire parisienne” [Fortress or Crossroads: Institute Blaise Pascal and the Birth of Academic Computer Science in Paris], Revue pour l’histoire du CNRS, nos. 27–28, Fall-Winter 2010, pp. 85–94. flexions sur les langages 34. L. Nolin, “Quelques re de programmation” [Some Thoughts on Programming Languages] Chiffres, vol. 6, no. 1, 1963, pp. 9–28. d 35. M. Nivat and L. Nolin, “Sur un proce e de efinition de la syntaxe d’Algol” [A Method for d Defining the Algol Syntax], IBP, 1963. € tzenberger, “The 36. N. Chomsky and M.-P. Schu Algebraic Theory of Context-Free Languages,” Computer Programming and Formal Systems, P. Braffort and D. Hirschberg, eds., North-Holland, 1963. 37. M. Nivat and L. Nolin, “Contribution to the Definition of Algol Semantics,” Proc. IFIP Working Conf. Formal Language Description Languages, T.B. Steel, Jr., ed., North Holland, 1966, pp. 148–159. 38. M.S. Mahoney, “The Structures of Computation and the Mathematical Structures of Nature,” Histories of Computing, T. Haigh, ed., Harvard Univ. Press, 2011, pp. 158–182. 39. J. Arsac’s autobiographical notes, and interview with the author. 40. S. Lavington, Moving Targets: Elliott-Automation and the Dawn of the Computer Age in Britain, 1947–1967, Springer, 2011. The quality of the Algol 60 compiler of the Elliott 803 was acknowledged in several interviews with former faculty members at the Institute for Programming. 41. J. Arsac et al., Algol, the orie et pratique [Algol: Theory and Practice], Gauthier-Villars, 1965.  42. CNRS Institut Blaise Pascal, Rapport d’Activite [CNRS Institut Blaise Pascal, Annual Report], ^ mes 1968, p. 9. Ma^ıtrise d’Informatique; Diplo de Programmeur et d’Expert en traitement de l’information [Master of Computer Science; Diploma in Programming and Information Processing], Facult e des Sciences, Institut de Proe de Paris, grammation de l’Universit 1967–1968. 43. J. Arsac, La Science informatique [Informatics as Science], Dunod, 1970. 44. Cl. Pair, “Description d’un compilateur Algol” [Description of an Algol Compiler], IBM 1620 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. European Users Group, Mannheim, 1965. Pair was invited to present this paper by Professor van Reeken of the Tilburg Katholieke Hogeschool. He described the few restrictions or modifications made by his team to the original Algol 60, and the main technical problems: how to implement Knuth’s I/Os, how to reduce the required memory size from 60,000 to 40,000 bits, knowing that programmers at the University of Lille had written a 1620 Algol compiler that ran on 20,000 bits only. C. Pair, “CRIN: The History of a Laboratory,” IEEE Annals of the History of Computing, July–Sept. 1990, vol. 12, no. 3, pp. 159–166. Correspondance with J. Bellec, 21 Dec. 2007. Bellec became a project manager of GCOS64, Honeywell-Bull’s major operating system developed in the early 1970s. Author’s video interview with F. Genuys, H. , Jan. 2008. Leroy, and F. Salle F.-H. Raymond, “An Adventure with a Sad Ending: The SEA,” IEEE Annals of the History of Computing, vol. 11, no. 4, 1989, pp. 263–277. D. Starynkevitch, “The CAB 500”, IEEE Annals of the History of Computing, vol. 12, no 1, 1990, pp. 23–29. Y. Harrand, Traitement des files et des listes par l’homme et par la machine [Processing Queues and Lists by Man and by Machine], Dunod, 1967. J.-C. Boussard and C. Pair, “Introduction  a Algol 68” [Introduction to Algol 68], Revue Française d’Informatique et de Recherche Ope rationnelle, vol. 3, no. B-3, 1969, pp. 17–52; and M. Sintzoff, “Introduction  a la description d’Algol 68” [Introduction to the Description of Algol 68], vol. 3, no. B-3, 1969, p. 3–16. A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, and C.H.A. Koster (1969), and H. Lindsey and S.E. van der Meulen (1969). J.-Cl. Boussard and J.- J. Duby, eds., “Rapport valuation d’Algol 68” [Algol 68 Assessment d’e Report], Revue d’informatique et de recherche operationnelle (RIRO), vol. 4, no. B.1, 1971, pp. 15–106. J., Buffet, P. Arnal, and A. Quer e, eds., De finition du langage algorithmique Algol 68 [Definition of the Algorithmic Language Algol 68], Hermann, 1972. The book included the French translation of A. van Wijngaarden et al.’s, Report on the Algorithmic Language Algol 68, MR 101, Mathematisch Centrum, 1969. , and Cl. AFCET Algol Group (P. Bacchus, J. Andre Pair, eds.), Manuel du langage algorithmique Algol 68 [Manual of the Algorithmic Language Algol 68], Hermann, 1975. C. Livercy, The orie des programmes [Theory of Programs], Dunod, 1978. Livercy was a collective acronym of authors. The book is now online 57. 58. 59. 60. 61. 62. 63. at http://perso.ens-lyon.fr/pierre.lescanne/ publications.html. A. Colmerauer, Prec e dence, analyse syntaxique et langages de programmation [Precedence, Parsing, and Programming Languages], doctoral dissertation, Grenoble Univ. Computing Institute (IMAG), 1967. In addition to the Rennes compiler, another Algol 68 compiler was developed at the University of Paris-Orsay and implemented on the Univac 1110 series. D. Taupin, “The Algol 68 Compiler of Paris-XI University (Orsay),” Proc. Strathclyde Algol 68 Conf., ACM SIGPLAN Notices, vol. 12, no. 6, 1977, pp. 109–116. Gerbier, Mes premières constructions de programmes [My First Program Constructions], Springer, 1979. (“Gerbier” was a collective name.) L. Trilling, “Algol 68, une culture informatique perdue?” [Algol 68, A Lost Computer Culture?], Colloque sur l’histoire de l’informatique en France, vol. 1, 1988, pp. 447–453. Mahoney, “The Structures of Computation,” p. 167. P. Mounier-Kuhn, “Logic and Computing in France: A Late Convergence,” Proc. Symp. History and Philosophy of Programming (HAPOP), 2012; www.academia.edu/5252629/ Logic and Computing in France A Late Convergence. For a lively discussion of this, see T. Haigh, “Actually, Turing Didn’t Invent the Computer. Separating the Origins of Computer Science and Technology,” Comm. ACM, vol. 57, no. 1, 2014, pp. 36–41. On the Dutch case and beyond, see E.G. Daylight, The Dawn of Software Engineering. From Turing to Dijkstra, Lonely Scholar, 2012; and E.G. Daylight, “Towards a Historical Notion of ‘Turing, the Father of Computer Science,’” submitted to the J. History and Philosophy of Logic, http://compscihistory.com/sites/default/ files/papers/Daylightpaper91.pdf. Pierre Mounier-Kuhn is a historian at CNRS and Universit e Paris-Sorbonne and an associate researcher at the Centre Alexandre Koyr e. His writings include L’Informatique en France, de la seconde guerre mondiale au Plan Calcul. L’emergence d’une science [Computing in France from the Second World War to the Plan Calcul. The Emergence of a Science] (Presses de l’Universit e Paris-Sorbonne, 2010), and 60 articles on the history of computing. Contact him at mounier@msh-paris.fr. October–December 2014 25 Copyright of IEEE Annals of the History of Computing is the property of IEEE and its content may not be copied or emailed to multiple sites or posted to a listserv without the copyright holder's express written permission. However, users may print, download, or email articles for individual use.