COMPUTING CULTURES BORRELLI DURNOVÁ Computing Cultures Computing Cultures: Knowledges and Practices (1940–1990) Edited by Arianna Borrelli and Helena Durnová Bibliographical Information of the German National Library The German National Library lists this publication in the Deutsche ­National­bibliografie (German National Bibliography); detailed bibliographic information is available online at dnb.d-nb.de. Published in 2025 by meson press, Lüneburg, Germany www.meson.press Design concept: Torsten Köchlin, Silke Krieg Cover photo: Microscpic image of a 3Dfx Voodoo 3 3000 by FritzchensFritz@Flickr, https://www.flickr.com/photos/130561288@ N04/27522083907/, CC0 Copy editing: Selena Class The print edition of this book is printed by Lightning Source, Milton Keynes, United Kingdom. ISBN (Print): 978-3-95796-273-7 ISBN (PDF): 978-3-95796-274-4 DOI: 10.14619/2737 The digital edition of this publication can be downloaded freely at: www.meson.press This publication is licensed under a CC BY-SA 4.0 (Creative ­Commons Attribution ShareAlike 4.0 International) license. To view a copy of this license, visit: http://creativecommons.org/licenses/by-sa/4.0/. Copyright and permissions for the reuse of all external content marked as such (e.g. images, photos, diagrams etc.) differ from the above. They are excluded from the CC BY-SA 4.0 license, and it may be necessary to obtain further usage permission from the respective rights holders for their reuse. meson press, Salzstr. 1, 21335 Lüneburg, Germany info@meson.press Contents Introduction 7 Arianna Borrelli and Helena Durnová [ 1 ] Synthetic Machines and Practical Languages: Masking the Computer in the 1950s 27 Mark Priestley [ 2 ] Practical and Theoretical Objectives of Early Machine Translation in the 1950–60s 61 Jacqueline Léon [ 3 ] Big Machines for Big Science: The Beginnings of Scientific Computing at CERN 83 Arianna Borrelli [ 4 ] The Influence of Organization and Methods on Early Business Computing 121 Elisabetta Mori [ 5 ] The Division of Mental Labor in Computing Practices: Presup- positions, Advances, Biases 147 Marie-José Durand-Richard [ 6 ] Mainframe Computer or Programmable Pocket Calculator? Calculation Tools and Practices of Computing in Medieval History (1960s–1980s) 193 Edgar Lejeune [7] Computing Practices, Data-Based Design, and Knowledge Cultures During the Post-War Period 227 Nathalie Bredella [ 8 ] Tense and Temporality: Computing and the Logic of Time 255 Troy Kaighin Astarte Authors 281 Introduction Arianna Borrelli and Helena Durnová 1. The History and Historiography of Computing: A Few Remarks During the late 1940s, electronic, digital computers built by state-funded academics started to be used in a few fields of science and technology in the USA and Europe.1 By the early 1960s computers had become successful commercial products with increasingly broad and varied user communities. During the 1970s computers diversified into a range of machines satisfying different needs: from high-performance, expensive mainframes (service included) for affluent clients from big business, administration and defense, to more compact, customizable machines that had a lower performance and came with little or no servicing, but were affordable and desirable for academic researchers and smaller businesses. In those years software ceased being included in hardware purchases as a free add-on and became a commercial product in its own right, marking the beginning of a new and rapidly expanding market. From the late 1970s onward, thanks to the availability of cheap electronic components, personal computers became increasingly popular despite their very modest performance, at first only among hobbyists with a passion for electronics, but later also among the general public. By the late 1990s a significant portion of US and European households owned a computer and so the emerging World Wide Web had a sufficiently large user base to persist. 1 For an overview of the history of electronic, digital computers mainly in the Western world, see Campbell-Kelly et al. (2023); Gugerli (2022); and Haigh and Ceruzzi (2021). For the developments in the Soviet Block see Trogemann, Nitussov, and Ernst (2001). 8 Computing Cultures The contributions collected in this volume address a number of chosen topics from this broad landscape, and in doing so also demonstrate some of the dif- ferent, often interdisciplinary approaches to the history of computing which have been developed since its inception in the 1970s. The earliest texts in the field were first-hand accounts by actors who had participated in the narrated developments, such as those written by the mathematician Herman Gold- stine (1972) and the physicist Nicholas Metropolis (1980), or were written on behalf of firms that had become major players in computer manufacturing, most notably IBM, for which in 1971 Charles and Ray Eames designed the exhibition A Computer Perspective and prepared the relevant catalog (Eames and Eames 1973). These works focused on specific, often rather technical, developments close to the interests of the authors and were quite influential in the computing community, creating historical lineages for the new field of expertise. They also inspired some of the earliest museum exhibitions on the history of computers, which were often designed by practitioners, as for example the section Informatik und Automatik at the Deutsches Museum in Munich, inaugurated in 1988 and shaped by the computer scientist Friedrich Bauer (Hashagen 2008, 121–22). Indeed, some of these early accounts are today better known among computer experts than the works by professional his- torians that started appearing from the 1980s onward. Among the latter con- tributions the works by Michael Mahoney stand out for their historiographical relevance: Mahoney, originally a historian of mathematics, turned to the history of computing during the 1980s and shaped later historiography both with his own research and through a number of methodological papers which underscored the necessity of setting the development of computing within the broader context of the history of science, technology, and society (Mahoney 1988, 2011). The relevance of the broader socioeconomic picture for under- standing the development of computing was underscored early on also by the French psychologist and anthropologist Philippe Breton in his Histoire de l’informatique (1987). The 1990s saw the publication of the first mono- graphs offering comprehensive and contextualized accounts of the history of computing. Historian of science William Aspray and business historian Martin Campbell-Kelly teamed up to reconstruct the history of the computer as “information machine” by embedding it in a US economical and political context reaching back to the 19th century (Campbell-Kelly and Aspray 1996). Historian of technology and museum curator Paul Ceruzzi instead let his History of Modern Computing begin in the years immediately after the Second World War and reconstructed the broader technological and scientific devel- opments which enabled the spread of electronic, digital computers (Ceruzzi 1998). Another seminal work also appeared: Paul Edward’s The Closed World: Computers and the Politics of Discourse in Cold War America (1996), highlighting the role of the computer not only as a technological tool, but also as an ideological template for US politics in the Cold War era. Introduction 9 Since then the field has broadened in all directions, as witnessed by the fact that both Campbell-Kelly and Aspray’s and Ceruzzi’s overviews have been repeatedly updated to keep up with the rapid development of computing practices and computing historiography, also enlisting the help of further historians: Gerardo Con Diaz, Nathan Ensmenger, Thomas Haigh, Honghong Tinn, and Jeffrey Yost (Campbell-Kelly et al. 2014, 2023; Campbell-Kelly and Aspray 2004; Haigh and Ceruzzi 2021). It is not possible to offer here an over- view of the breadth and variety that the field has achieved today, but there are some features of its development which we wish to discuss, based on recent historiographical reflections on the field, as they provide the motivation for the present volume (Abbate and Dick 2022a; Cortada 2019a, b; De Mol and Bullynck 2018; Gugerli and Zetti 2019). A main result of these studies is to show how research on different aspects of computing has been shaped by the sociocultural contexts and disciplinary interests of those writing it, and so eventually gave rise to a set of largely independent historiographical traditions. Of course this is true also for the historiography of other fields of science and technology, as historians can never escape the situated per- spectives from which they reconstruct and therefore interpret past events, particularly those regarding subjects that have seen such recent and rapid development as computing. Even taking this into account, though, the his- toriography of computing seems to be characterized by an extraordinary degree of fragmentation, so that offering an overview of it is a challenge in itself. One difficulty is that computing straddles the borders between science, technology, logic and mathematics, belonging to all and none; mainstream his- torians from those fields have so far either devoted limited attention to devel- opments in computing or focused only on the historical aspects nearer to their area of expertise. For example, developments in computer science and programming have mainly been explored by historians with backgrounds in mathematics, computing or the natural sciences, as well as by philosophers of science (De Mol and Primiero 2018; Haigh, Priestley, and Rope 2016; Mahoney 2011; Nofre 2023; Priestley 2018; Varenne 2019), while research more focused on artefacts is usually located in specialized museums (Deutsches Museum, Computer History Museum), where the issue of software preservation was also addressed early on (Hashagen, Keil-Slawik, and Norberg 2002; Rojas and Hashagen 2000; Shustek 2006). Hardware and software manufacturing, computerization in industry and administration, and patent issues have been the focus for historians of technology and business (Campbell-Kelly 2004; Con Diaz 2019; Cortada 2012), while artists and architects have explored the inter- play of computing, art and design in society (Bredella 2022; Martin 2003; Sack 2019), and scholars from science and technology studies took a critical look at the implications of computing practices in today’s cultures and societies (Mullaney et al. 2021; Roberge and Castelle 2021; Vertesi et al. 2019). 10 Computing Cultures All these studies have offered outstanding contributions to exploring the past of today’s computing practices, yet the historiography of computing remains fragmented and its results have found limited reception among the broader historian community. This situation is probably one reason why his- torians of computing have rarely contributed to discussions on the premises and implications of digitalization in science, technology and society, while reflections on this topic by philosophers, sociologists and scholars from cultural and media studies have become increasingly prominent and would benefit from an in-depth historical contextualization. Only recently a number of works demonstrated the productivity of a broader historical perspective for critically approaching today’s computing practices. Among them are essay collections revisiting “the early digital” from an interdisciplinary perspective (Haigh 2019), exploring the diverse interplay of digital tools and society (Wichum and Zetti 2022), discussing the tension between the abstract and the concrete in the history of computing (Abbate and Dick 2022b), historicizing the oppositions between a rule-bound way of working characteristic of (computer) code and a more creative craft usually associated with the human mind and body (Evans and Johns 2023), or highlighting the role of ideal visions and imaginaries in shaping the history of computing (van Lente 2022). Artificial intelligence (AI), too, has finally received attention on the part of historians of science, who have contextualized and questioned its origin narrative, high- lighting the variety of situated developments and overarching connections to broader themes like management and colonialism and complementing the traditional US-centred narratives with European perspectives (Ali et al. 2023; Piel and Seising 2023). As is usually the case with outstanding historical work, it is not possible to summarize their results in a few sentences, as their strength lies in variety and richness of detail, bringing to light a network of expected and unexpected connections which provide new questions and new material for philosophical, cultural, and sociological analyses. The perception of this so far underexploited potential of the history of computing for broadening current discussions on the so-called Digital Turn is a main motivation for the present volume, which stands in the tradition of a history of computing trying to bridge the gap between the techno- scientific and the socioeconomic approaches to the subject, while also taking into account its epistemological implications. As noted above, this gap is not unique to the history of computing, though it is particularly evident in it. Writing the history of the development of science after the Second War World poses great challenges, since an understanding of the subject is often necessary to reconstruct the institutional and social history, while at the same time it is also important for historians to distance themselves from, and critically reflect on, the implicit assumptions, values and conceptual tem- plates shared by the community they are studying, be they computer experts, physicists or biologists. Looking at computing as a set of contextualized Introduction 11 practices is a most effective approach that does not leave out the practitioners themselves and their technical endeavor, but takes into account also their institutional, social, political, cultural, and economic environment. This approach has been actively promoted by Liesbeth De Mol and Giuseppe Primiero, who organized a series of interdisciplinary events on the history and philosophy of computing, starting with a conference in Ghent in 2011, in which one of the present editors, Helena Durnová, participated. The efforts by De Mol and Primiero led to the establishment of the DHST/DLMPST Interdivisional Commission of History and Philosophy of Computing (HaPoC), under whose sponsorship a symposium was organized at the International Conference of History of Science and Technology held in virtual mode in 2021. The papers in the symposium provided the starting point for the present volume and, in the symposium as in the volume, the aim has been to promote exchange both between different branches of history of computing and with the broader community of historians of science and technology. For this reason, no spe- cific topic within that broad field was chosen as a guideline, as that might have limited possible contributions. Instead, the papers were put together by inviting authors with different disciplinary backgrounds and methodological approaches to contribute, asking them to make their research questions and (tentative) answers accessible and appealing to a non-specialistic audience, while maintaining the highest standards of historical reconstruction. All authors rose up to and successfully met this challenge and we are deeply thankful for the work they invested in the contributions that make up this volume. We believe that these texts will both present new results to expert scholars and allow readers from diverse disciplinary and methodological backgrounds to approach and appreciate subjects they are less—or not at all—familiar with. The similarities and differences between the case studies can provide material for the comparisons that are necessary to gain a deeper understanding of digitalization, and we hope that the contributions, with all their necessary limitations in themes and cultural frameworks, will prompt further initiatives in this direction. 2. Historicizing the Digital Turn The investigations collected in the following pages range from longue durée studies questioning traditional assumptions about the nature and origin of computing practices to detailed reconstructions of situated developments in commercial computer manufacturing or scientific computing. These case studies provide a sample of a broad and varied landscape, essentially focusing on the years between 1950 and the early 1990s. This period is today often regarded as having laid the foundations for the increasingly rapid diffusion of computational methods in all fields. Indeed, those years saw the expansion of the computer industry, the beginning of stand-alone software developments, 12 Computing Cultures programming languages and informatics, a variety of more or less successful attempts at deploying computing machines in new areas of public and private life and, in the later phase, the advent of personal computers and the inter- net. Yet the period deserves a study for its own sake, not just as the “origin” of later developments. In fact, a closer look at computing practices in those years shows that what looks like a linear success story of computational technologies from a distance actually comprises a diversity of developments due to very different, situated factors, and whose success was in no way as undisputed as often presented a posteriori. Becoming acquainted with this variety is not only historically significant but also essential for assessing more recent constellations. In this sense, the contributions complement, and at times correct, narratives which often feature in discussion about present implications of computing, but appear problematic when looking more closely at the historical events. A prominent example is the idea that, during the second half of the 20th century, the diffusion of computing in an increasing number of areas gave rise to significant, possibly revolutionary, transformations. “Computer revolution,” “information age,” “digital turn” and, more recently, “AI revolution:” these and similar expressions have been used to refer both to techno-scientific devel- opments and to cultural and social phenomena related to them. Philosophers, sociologists and scholars from media and cultural studies have often presented the computer as a universal machine whose appearance prompted radical changes in all areas of science, technology, and society, although this focus was already challenged by sociologist Susan Leigh Star in her intro- duction to the essay collection The Cultures of Computing (Denning and Tedre 2019; Duran and Eckhart 2013; Hartmann 1996; Kittler 1989; Pias 2011; Star 1995, 7; Turkle 2009; Winsberg 2010). Historians, while investigating these devel- opments, have instead for the most part remained skeptical of revolutionary claims and rather noted the variety of computing practices, from both syn- chronic and diachronic perspectives, as well as the continuities between practices before and after the alleged revolution (Borrelli and Wellmann 2019; Campbell-Kelly et al. 2023; Cortada 2019a, 2019b; De Mol and Bullyinck 2022; Haigh and Ceruzzi 2021). In 2006 historian Jon Agar provocatively asked “What difference did computers make?,” suggesting that computers had less innovative impact than usually assumed and that, more often than not, their uses were deeply shaped by the cultural-historical contexts in which they were embedded (Agar 2006). The tension between continuity and change in the history of science and technology has often been at the center of discussions both among historians and with philosophers, a paradigmatic example being the debate on whether a diversity of processes taking place at different times during the premodern and early modern period may or not be seen as adding up to a “scientific Introduction 13 revolution” (Shapin 1996). In our case, historians today generally agree that no single, linear history of computing can be written, and that one should actually rather speak of “histories of computing” in the plural, as suggested by Mahoney (2011). Even the claim that the diffusion of computing in commercial enterprises and administration was motivated by an increase in efficiency and productivity has been questioned: historians of economy now regard it as a “productivity paradox” that computing tools could spread in commercial fields despite usually not increasing, and at times decreasing, productivity (Cortada 2019a, 2019b). Overviews on the history of computing have variously dealt with the tension between continuity and change: Campbell-Kelly and Aspray characterize the computer as “the information machine,” thus linking it with a notion that became prominent only after the Second World War, but at the same time they let the history of that machine begin in the 19th century (Campbell-Kelly and Aspray 1996, 2004; Campbell-Kelly et al. 2014, 2023). Tom Haigh and Paul Ceruzzi (2021) on the one hand describe computers as striving towards universality from the Second World War onwards, yet they present this development as a process of diversification in which the computer acted as a “universal solvent,” slowly penetrating all areas of modern culture and society by adapting to them and becoming in turn a “data processing machine,” a “scientific supertool,” or a “personal plaything.” David Gugerli (2022) makes instead the reverse suggestion, namely conceiving the history of computing as a narrative of “how the world got into the computer.” All these approaches make clear how processes of digitalization are at the same time extremely varied and deeply interconnected, posing great challenges to his- torians of computing, of science and technology, and of society and culture. Following Agar’s suggestion, we believe that the emergence and diffusion of a broad range of computers, computing tools, their relevant users, and computer-related research and commercial initiatives can be best under- stood in terms of the emergence of a landscape of computing cultures that could share some features while remaining largely independent from each other. Beside Agar, other authors have underscored this cultural variety of computing practices. In her overview of the development of computer science in the USA, Stephanie Dick spoke of different “computing communities,” each with its own vision of what the computer should be (Dick 2015, 60–1), and more recently the proceedings of the interdisciplinary HaPoC Conference held in Zurich in 2021 were devoted to Computing Cultures: Historical and Philosophical Perspectives (Gastaldi 2024). The contributions in the present volume offer in- depth historical examples from this landscape. Unlike Agar, though, we are not specifically interested in whether computers made a difference in one or the other historical context, but rather wish to reconstruct the situated interplay of computing practices, knowledges, and cultures. In this way, we understand “computing” in a broad sense, including not only hardware, software and computer science, but also the procedures and tools for deploying them in 14 Computing Cultures specific fields, as well as the images of computing and computers character- istic of specific cultural-historical contexts. We investigate computing cultures focusing on mutually entangled knowledges and practices, approaching computing as a performance which cannot be fully separated from its environment: the humans enacting it, their often shifting goals, the cultural and sociopolitical contexts they inhabit, the material apparatuses needed to perform computations, and the formal and conceptual frameworks shaping the act of computing—from programming languages to smartphone design. In other words, one has to reconstruct the spectrum of situated knowledges and practices shaping and being shaped by emerging computing cultures. 3. The Contributions The papers explore a broad range of historical contexts, but two themes run through the whole volume. The first one is the way in which the diffusion of computing practices from the 1950s onward was realized in specific cultural- historical constellations, like disciplines, research institutions, and commercial and technological enterprises. The results of these studies offer an out- standing example of the situatedness of early computing practices, while at the same time uncovering connections and similarities which deserve further investigation. The second theme is revisiting from new perspectives origins and origin stories of notions and disciplines today associated with computing, showing that what may appear today as straightforward was in fact much less obvious at the time. The two themes complement each other, demonstrating how the investigation of the past can help critically reassess the present. The volume opens with Mark Priestley’s original perspective on a classical topic of the early history of computing: the combined development during the 1940s and ‘50s of electronic digital computers and of ways of making them more accessible to users with little or no previous experience of programming. These events have been traditionally framed in terms of the emergence of (higher level) programming languages, and today it is difficult to discuss the subject avoiding language-inspired terminology. However, there is no reason to assume that this way of conceptualizing developing programming practices was already dominating the discourse at the time, and Priestley presents evidence of an alternative way of conceiving them, namely as the creation of “synthetic machines” that masked the actual machines to the users. Synthetic machines were constructed by means of subroutines, following an approach pioneered by the research group led by Maurice Wilkes at Cambridge Uni- versity and further developed in close exchange with Charles Adams’ team working on the Whirlwind computer at MIT. The subroutines were shaped by the needs of the targeted users, who could be students, administrative staff, mathematicians, or linguists. Conceiving these user-friendly programming environments as synthetic machines for a time peacefully coexisted with the Introduction 15 conceptualizations that eventually came to dominate, namely programming languages. Rediscovering this lost perspective brings us nearer to the his- torical actors, allowing us to appreciate the openness and novelty of their tasks. Yet the relevance of the paper goes well beyond a reconstruction of past ways of thinking, because it highlights the complex interdependence between the physical computer with its machine code on the one side and the synthetic machine with its specialized input notation on the other. This interdepend- ence persists today, despite computing practices often being conceived in the simplistic terms of the hardware/software dichotomy. Indeed, arguably the interdependence and hybrid nature of the layers of computational tools have even increased, given the enhanced medial spectrum of human– computer interaction, which today includes touch screens, voice and pattern recognition, Global Positioning System (GPS) localization, and more. Recon- structing the emergence of these layers and the different ways they could and can be conceived is therefore of extreme interest for the current discussion on digitalization. One of the synthetic machines/programming languages discussed by Priestley is COMIT, whose target users were linguists working in the 1950s at MIT on the development of machine translation, whose structure was shaped by the views of Noam Chomsky on language functioning. Chomsky was himself a member of the MIT project, which was in turn part of a broader initiative aimed at machine translation promoted by the US government between 1949 and 1966. This initiative is at the center of Jacqueline Léon’s paper, which looks back at what is today often seen as the “origin story” of machine translation, albeit a rather unsuccessful one, as these early attempts did not bear practical fruits. From today’s standpoint, it is indeed tempting to interpret the state- ments and practices of these historical actors as if they were pursuing the same goal as later scientists, but without achieving the envisioned results. However, in her analysis Léon shows how the visions and goals of these early attempts at developing computational methods for analyzing languages and translating texts were much more varied than would later be the case, ranging from the mechanization of dictionaries to a fully automated trans- lation or a computer-based analysis of fundamental language structures. This broad spectrum reflected the diversity of the backgrounds of the scientists involved and the novelty of their approaches to exploring and assessing the potential of computers for language manipulation. In particular, Léon under- scores how the work of these authors was shaped by the tensions between their (often overly optimistic) goals and the constraints of technical, political and economic natures with which they were confronted. From these tensions emerged various reflections and questions, some of which may seem today naïve or obsolete, while others remain of great relevance, such as the question of how much translation error should be regarded as generally acceptable. Therefore, it appears too narrow to regard these early efforts as defective 16 Computing Cultures versions of later technological successes, and Léon suggests revisiting from this perspective also the 1966 report of the Automatic Language Processing Advisory Committee (ALPAC). This report advised the US government against further investment in machine translation for economical reasons, effectively ending research on the topic for the time being. However, as Léon notes, the text also highlighted how the efforts so far had produced new ideas on the relationship between language studies and computing that could be, and indeed were, productive in research both in linguistics and in programming. In fact, both the term and the discipline of computational linguistics may be seen as having their origin in the report. The papers by Priestley and Léon demonstrate how the diversity of the history of computing can and should be recovered not only by looking at so far understudied actors and contexts, but also by approaching from a new perspective historical constellations that have already been studied. Other than the two former contributions, the paper by Arianna Borrelli is devoted to a subject which received surprisingly little attention on the part of historians of computing, namely the introduction of computers in physics research. More specifically, the paper offers a broadly contextualized recon- struction of the process which in 1955/56 led to the purchase of the first electronic digital computer at the research laboratory today known as the European Organization for Nuclear Research (CERN) and located at Geneva in Switzerland. Philosophers of science have been debating since the 1990s the way in which computing might have more or less radically changed science, and more specifically fundamental physics (Galison 1997; Hartmann 1996; Winsberg 2010). When assuming that such a revolutionary change took place, the diffusion of computers in that field can appear as a straightforward development whose motivation hardly needs to be questioned: computers were the right tool for the job, and scientists recognized it. Borrelli’s paper instead delivers evidence of widespread lack of interest in computers among high-energy physicists at CERN around the middle of the 1950s. The acquisition of the first computer for the laboratory was the result of a rather isolated initiative in which scientists at the institute only slowly started taking interest. Borrelli presents a largely counterintuitive picture of the beginning of computing at CERN, in which the machine was not acquired in response to specific computational needs, but rather due to a vague impression among research leaders and science managers that computers could be made into new scientific instruments for high-energy physics. Yet the necessary con- dition for this development was that physicists—as opposed to engineers, mathematicians, or manufacturers—should take charge of the new machines and turn them into scientific tools. How did this impression spread among high-energy physicists, though, before computers became a familiar pres- ence in their laboratories? Here we meet again Maurice Wilkes, who featured already in Priestley’s paper. It appears that the Mathematical Laboratory led Introduction 17 by Wilkes in Cambridge in the early 1950s was a hub promoting exchange between computer developers and the growing community of potential computer users in scientific research, especially in the exact sciences. A closer look at these networks may shed further light on the processes of digitalization in the natural sciences. In that period, Wilkes’ group at Cambridge also played a quite different role: establishing from 1947 onward a partnership with the British catering company J. Lyons and Co. and supporting their plan of designing and using computers for business management, eventually branching into computer manufacturing, which was realized in 1954 by founding LEO Computers Limited. This, in many ways, surprising story is carefully pieced together on the basis of so far unexplored archival material in Elisabetta Mori’s paper. The EDSAC, the electronic digital computer built at Cambridge in the late 1940s, was the starting point for building what would become the LEO I, an electronic digital machine designed for business applications that eventually evolved into a series of LEO II and III machines sold worldwide. As Mori explores in much detail, while the technical expertise for this project came from Cambridge Uni- versity, the motivation and the vision behind it were clearly due to the Lyons management, which had very early on recognized the potential of computers as tools for efficient administration. In fact, it was the interest in innovative methods of office management that drove Lyons to explore how far the new computers could further enhance efficiency, and it was with this vision in mind that Lyons employees travelled to the USA in 1947 to learn more about the new machines and their possible uses in industrial management. The tradition of scientific management of Frederick Taylor and Lillian and Frank Gilbreth had been taken up and further developed at Lyons, and formal tools of man- agement like flowcharts contributed to shaping the LEO approach to coding, merging with other methods developed by mathematicians and engineers. This case study shows how important it is to reconstruct the specific details of a given computing culture without prejudice. In a commercial joint venture of scientists and managers, one might have taken for granted that the former would take care of the technical side and the latter of financing and marketing, but in this case there was no such clear-cut division of labor. Mori’s results confirm and expand the argument recently made by historians of AI that man- agement practices played an important, so far underestimated, role in the development of computing methods (Ali et al. 2023). The connection between the history of computing and developments in industry and management is also at the center of the contribution by Marie- José Durand-Richard. The paper takes as its starting point a claim often repeated in early histories of computing, namely that the structure of elec- tronic, digital computers can be seen as the realization of the principle of division of labor which Charles Babbage promoted in the 19th century as an 18 Computing Cultures ideal template for organizing not only industrial work, as Adam Smith had initially showed, but also politics and scientific activities such as mathematical computation. From this point of view modern computers have been presented as embodying the ideal which Babbage failed to realize with his planned mechanical computing machines, the Difference Engine and the Analytical Engine. In a fascinating longue durée study spanning one and a half centuries Durand-Richard challenges this narrative by reconstructing and contex- tualizing both Babbage’s visions and the later development of machines for numerical computation, from the first mechanical office machines and analog computers of the late 19th century to the early electronic digital machines of the years after the Second World War. She brings to light the diverse, his- torically and culturally situated connections between the various calculating tools and the political, economical and social contexts they were embedded in, with particular attention to organizational and managerial structures. From this background she convincingly argues that modern computers do not result only from the principle of division of labor as envisaged by Babbage, nor can Babbage’s Engines be regarded as anticipating them. Babbage’s machines have to be understood as situated expressions of the political, economical and managerial cultures of their time. These were very different from those which, a century later, would foster the emergence of computing as a technological, economic and managerial phenomenon of the period after the Second World War. It was not simply a lack of money or political support that forced Babbage to abandon his project, but rather the lack of interactions between actors, and of necessary social, industrial and technological premises, which Babbage could hardly conceive with his top-down view of science. While Durand-Richard’s paper demonstrates the many-layered relationships between computing devices and their historical contexts as they unfolded over more than a century, the contribution by Edgar Lejeune addresses this issue through a case study involving a smaller circle of actors over a shorter time span, bringing to light an equally large variety. The study focuses on a subject which has only recently started to attract attention: the history of Digital Humanities. What is or is not a computer in a given context? How do computing machines relate to the cultures in which they come to be embedded? Lejeune investigates these crucial questions in a comparative analysis of computing practices among medievalists from the late 1960s to the early 1980s. This research combines a detailed analysis of published and archival sources and oral history interviews with a methodological approach from cultural studies. The paper demonstrates the variety of computing tools and methods within a single community, showing how technical choices are entangled with issues of disciplinary methodology and science policy. Most interestingly, these results highlight the role played by a largely underestimated type of electronic tools that usually do not even qualify as “computers,” namely the programmable pocket calculators that came on the Introduction 19 market in the early 1970s. Lejeune compares two historical research pro- grams: the large international cooperation led by David Herlihy and Chris- tiane Klapisch-Zuber from the late 1960s onward with the aim of analyzing the catasto (land registry) of Florence from the year 1427, and the studies conducted by French historian Alain Guerreau in the 1970s and 80s. While the former cooperation made use of large mainframe computers and storage facilities in the form of magnetic tapes, the latter’s technical means of analysis was a programmable pocket calculator with which he derived semi-qual- itative results. As Lejeune shows, the specific choices of computing methods were shaped not only by the research goals, but also by different views on the aims of the discipline, its optimal organization, and the envisioned role of computers in that context. At the same time, the specific features of the computational tools used could determine research questions and methods and contribute to the emergence of a situated research culture of historians in which programming either mainframe computers or pocket calculators was an essential component. Lejeune thus shows that the emergence of the Digital Humanities was neither a straightforward continuation of earlier practices with new means nor a methodological revolution brought about by digitalization, but rather a multi-layered process whose study must take into account the diversity of computing devices, research goals, available infra- structures, and disciplinary visions. Computers did not simply diffuse among historians: specific communities of historians appropriated computers if, when and how they saw them as fitting tools for the job. Here a parallel could be drawn with Borrelli’s argument that in the later 1950s some high-energy physicists began to look at computers as potentially useful devices to be appropriated and transformed into fitting instruments for their own discipline, independently of whether a factual need for computing power existed before their introduction. The connection between visions of computing and disciplinary innovation also features prominently in Nathalie Bredella’s discussion of the project developed in the years after the Second World War at national and inter- national level by the Greek architect Constantinos Doxiadis, a project for which he coined the name “ekistics,” a science exploring with empirical and theoretical means the structures of human settlements. According to Doxiadis, the principles of ekistics could be deployed at all scales, from small villages and ancient Greek poleis to large-scale urbanization projects, and they also addressed general questions on the interaction between humans and the environment that were later framed in terms of ecology. In the 1960s Doxiadis was among the first architects not only to envision practices of what would later be called computer-assisted design, but also try and actually implement this vision in cooperation with both computer manufacturers and policy-makers. Despite these industrial and political connections, Doxiadis’ computing practices maintained a visionary character which was essential 20 Computing Cultures to their appeal as tools for large-scale, international reconstruction pro- grams such as those funded by the Rockefeller Foundation. Thanks to the image of the computer as a tool for management and innovation, architects could present themselves as mediators at a geopolitical level, channeling and operationalizing the plans of technocratic institutions. Moreover, architects were in charge not only of planning and building, but also of assessing the situation and potential problems in specific urban settlements through qual- itative and quantitative surveys of various kinds, whose results could be com- putationally analyzed. In this vision, on the one hand the computer became a container for a whole settlement, while on the other hand the city could be regarded as a working machine comprising both infrastructure and inhab- itants. Bredella’s analysis reconstructs the ideals and activities of Doxiadis and his collaborators, highlighting both the innovative visions and the internal tensions of the projects, thus providing fascinating insights into the early interplay of computing and architecture, as well as a further perspective on the multi-layered connections between computing and management. While in Bredella’s paper the computer appears in a double role as ideal template for conceiving the world and practical tool to manage it, in Troy Astarte’s contribution it features rather as an abstract, universal device to be programmed in accordance with coherent principles that can be stated in terms of logical structures. The computing culture dealt with in Astarte’s paper is that of computer scientists, focusing on the entangled development of concurrent programming and temporal logic between the 1960s and early 1990s. The founders of computer science usually came from a background in mathematics or formal logic, and the connection to those disciplines remained strong even after the new field achieved its full autonomy during the 1960s. From this background, it is tempting to conceive the relationship between developing computing practices and the emergence of computer science in terms of either a progressive formalization of the practices or an application of formal structures to programming. Yet the picture is more com- plex, challenging the distinction between principles and applications. Astarte offers a highly original, insightful example of the tensions between the formal and the practical, and of the diversity of interests and goals that could shape the development of what a posteriori can be seen as a theoretical construct situated at the intersection of logic and computer science. The paper focuses on the emergence of the field today known as temporal logic, which deals with possible logical formalization of the role of time sequence in establishing the logical truth or falsity of a statement. The question of how to deal with utterances that can be true or false depending on when they are pronounced had been addressed since antiquity, but it was only during the 20th century that frameworks to systematically explore the potential roles of time in logic emerged. From the 1960s onward, many of these developments were linked to the necessity of predicting and controlling the behavior of two or more Introduction 21 programs running in parallel on the same machine and potentially leading to errors by trying to access the same resources at the same time. These kinds of questions in computer science go under the name of concurrency. Ensuring that no conflict situation arose was a problem that some authors assumed could be productively tackled with the help of logical analysis of the con- current programs, an analysis in which consideration of what became called temporal logic played a central role. Yet in the process of addressing these practical issues, the structure and workings of concurrent programs could in turn become abstract templates to formulate and explore new questions of logic. Astarte carefully reconstructs the different paths which led various historical actors to take an interest in and further develop formal reflections on the logic of time, appropriating and building upon each other’s work, and the cooperations and conflicts that ensued. The paper demonstrates how the emerging research field was neither an extension of age-old questions of logic nor a set of practice-oriented rules for programming, but rather a new knowledge area whose coming to be was linked both to developing programming practices and to the establishment of the culture of computer science. Here a parallel can be drawn with the emergence of practices of Digital Humanities as reconstructed by Lejeune. In that case, too, the his- torical analysis shows how a new knowledge field came to be neither as a consequence of the introduction of new computational tools nor as a continu- ation of old traditions with new means, but rather thanks to the multi-layered interplay of disciplinary cultures and computer-aided practices within the field of medieval studies. The papers included in this volume are a first, limited attempt at bringing together results from different branches of the historiography of computing. The aim is to showcase diversity and interest in the landscape, and to highlight how historiography might at present profit not only from the further devel- opment of the different branches, but also from increased cross-fertilization between them and closer cooperation with the broader community of his- torians of science and technology. Focusing on the years between 1940 and 1990, the studies reconstruct a number of past computing cultures which, although they may now have disappeared, nonetheless played a role in shaping those that came after them by facilitating the development of new computer-related practices and ways of knowing. Understanding these past cultures, their interconnections, and their broader historical context is there- fore essential to deal critically with the present of computing, and especially to be able to contextualize and fairly reassess the visions, dreams, fears and tensions characterizing digital practices in today’s knowledge societies. 22 Computing Cultures Our deepest gratitude goes to Liesbeth De Mol, without whose initiative and inspiration not only this volume, but also the Commission for History and Philosophy of Computing (HaPoC) would not exist. We further wish to thank all the participants in the HaPoC Symposium at the ICHST 2021, including of course also those who could not contribute to the volume. For the institutional and financial support for the present publication we are indebted to the DFG-funded Institute for Advanced Study on Media Cultures of Computer Simulation (MECS) at Leuphana University Lüneburg (DFG grant KFOR 1927). Arianna Borrelli also gratefully acknowledges the financial support and intellectual inspiration experienced during her stay at the Käte-Hamburger-Kolleg “Cultures of Research” at the RWTH Aachen in 2022–23. References Abbate, Janet, and Stephanie Dick. 2022a. “Thinking with Computers.” In Abstractions and Embodiments: New Histories of Computing and Society. Studies in Computing and Culture, edited by Janet Abbate and Stephanie Dick, 1–19. Baltimore: Johns Hopkins University Press. Abbate, Janet, and Stephanie Dick, eds. 2022b. Abstractions and Embodiments: New Histories of Computing and Society. Studies in Computing and Culture. Baltimore: Johns Hopkins University Press. Agar, Jon. 2006. “What Difference Did Computers Make?” Social Studies of Science 36, no. 6: 869–907. Ali, Syed Mustafa, Stephanie Dick, Sarah Dillon, Matthew L. Jones, Jonnie Penn, and Richard Staley, eds. 2023. “Histories of Artificial Intelligence: A Genealogy of Power.” British Journal for History of Science (BJHS) Themes 8: 1–18. Borrelli, Arianna, and Janina Wellmann, eds. 2019. “Computer Simulations Then and Now: An Introduction and Historical Reassessment.” NTM 27: 407–17. Bredella, Nathalie. 2022. The Architectural Imagination at the Digital Turn. Abingdon: Routledge. Breton, Philippe. 1987. Une histoire de l’informatique. Paris: La Découverte. Campbell-Kelly, Martin. 2004. From Airline Reservations to Sonic the Hedgehog: A History of the Software Industry. Cambridge, MA: MIT Press. Campbell-Kelly, Martin, and William Aspray. 1996. Computer: A History of the Information Machine. New York: Basic Books. ———. 2004. Computer: A History of the Information Machine. Second edition. Boulder: Westview Press. Campbell-Kelly, Martin, William Aspray, Nathan Ensmenger, and Jeffrey R. Yost. 2014. Computer: A History of the Information Machine. Third edition. Boulder: Westview Press. Campbell-Kelly, Martin, William Aspray, Jeffrey R. Yost, Honghong Tinn, et al. 2023. Computer: A History of the Information Machine. Fourth edition. New York: Routledge. Ceruzzi, Paul E. 1998. A History of Modern Computing. Cambridge, MA: MIT Press. Con Díaz, Gerardo. 2019. Software Rights: How Patent Law Transformed Software Development in America. New Haven: Yale University Press. Cortada, James W. 2012. The Digital Flood: Diffusion of Information Technology across the United States, Europe, and Asia. Oxford: Oxford University Press. ———. 2019a. “Rethinking Why and How Organizations Acquire Information Technologies, Part 1.” IEEE Annals of the History of Computing 41: 48–60. ———. 2019b. “Rethinking Why and How Organizations Acquire Information Technologies, Part 2.” IEEE Annals of the History of Computing 41: 61–70. De Mol, Liesbeth, and Maarten Bullynck. 2018. “Making the History of Computing: The History of Computing in the History of Technology and the History of Mathematics.” Revue de Synthèse 139: 361–80. ———. 2022. “What’s in a Name? Origins, Transpositions and Transformations of the Triptych Algorithm-Code-Program.” In Abstractions and Embodiments: New Histories of Computing and Society, edited by Janet Abbate and Stephanie Dick, 146–68. Baltimore: Johns Hopkins Univer- sity Press. Introduction 23 De Mol, Liesbeth, and Giuseppe Primiero, eds. 2018. Reflections on Programming Systems: His- torical and Philosophical Aspects. Cham: Springer. Denning, Peter J., and Matti Tedre. 2019. Computational Thinking. Cambridge, MA: MIT Press. Dick, Stephanie. 2015. “Computer Science.” In A Companion to the History of American Science, edited by Georgina M. Montgomery and Mark A. Largent, 55–68. Hoboken: Wiley-Blackwell. Duran, Juan M., and Eckhart Arnold, eds. 2013. Computer Simulations and the Changing Face of Scientific Experimentation. Newcastle upon Tyne: Cambridge Scholars Publishing. Eames, Charles, and Ray Eames. 1973. A Computer Perspective. Cambridge, MA: Harvard Univer- sity Press. Edwards, Paul N. 1996. The Closed World: Computers and the Politics of Discourse in Cold War America. Cambridge, MA: MIT Press. Evans, James, and Adrian Johns, eds. 2023. “Beyond Craft and Code: Human and Algorithmic Cultures, Past and Present.” Osiris 38. https://doi.org/10.1086/725077. Galison, Peter. 1997. Image and Logic: A Material Culture of Microphysics. Chicago: University of Chicago Press. Gastaldi, Juan Luis, ed. 2024. “Computing Cultures: Historical and Philosophical Perspectives.” Special Issue Minds and Machines 34. https://link.springer.com/collections/dgcffbghba. Goldstine, Herman H. 1972. The Computer from Pascal to von Neumann. Princeton: Princeton Uni- versity Press. Gugerli, David. 2022. How the World Got into the Computer: The Emergence of Digital Reality. Zurich: Chronos. Gugerli, David, and Daniela Zetti. 2019. “Computergeschichte als Irritationsquelle.” In Pro- vokationen der Technikgeschichte, edited by Martina Heßler and Heike Weber, 193–228. Padeborn: Verlag Ferdinand Schöningh. Haigh, Thomas, ed. 2019. Exploring the Early Digital. Cham: Springer. Haigh, Thomas, and Paul E. Ceruzzi. 2021. A New History of Modern Computing. Cambridge, MA: MIT Press. Haigh, Thomas, Mark Priestley, and Crispin Rope. 2016. ENIAC in Action: Making and Remaking the Modern Computer. Cambridge, MA: MIT Press. Hartmann, Stephan. 1996. “The World as a Process.” In Modelling and Simulation in the Social Sciences from the Philosophy of Science Point of View, edited by Rainer Hegsel- mann, Ulrich Mueller, and Klaus G. Troitzsch, 77–100. Dordrecht: Springer. https://doi. org/10.1007/978-94-015-8686-3_5. Hashagen, Ulf. 2008. “Der Computer als Ausstellungsobjekt: Eine kurze Geschichte von Aus- stellungen zur Geschichte des Computers.” In Technik – Faszination und Bildung, edited by Arnold Vogt, 112–30. München: Müller-Straten. Hashagen, Ulf, Reinhard Keil-Slawik, and Arthur L. Norberg, eds. 2002. History of Computing: Software Issues. Berlin: Springer. Kittler, Friedrich A. 1989. “Fiktion und Simulation.” In Philosophien der neuen Technologie, edited by ARS ELECTRONICA, 57–80. Berlin: Merve. Mahoney, Michael S. 1988. “The History of Computing in the History of Technology.” Annals of the History of Computing 10, no. 2: 113–25. https://doi.org/10.1109/MAHC.1988.10011. ———. 2011. Histories of Computing, edited by Thomas Haigh. Cambridge, MA: Harvard University Press. Martin, Reinhold. 2003. The Organizational Complex: Architecture, Media, and Corporate Space. Cambridge, MA: MIT Press. Metropolis, Nicholas C., ed. 1980. A History of Computing in the Twentieth Century: A Collection of Essays. New York: Academy Press. Mullaney, Thomas S., Safiya Umoja Noble, Benjamin Peters, Mar Hicks et al., eds. 2021. Your Computer Is on Fire. Cambridge, MA: MIT Press. Nofre, David. 2023. “‘Content Is Meaningless, and Structure Is All-Important’: Defining the Nature of Computer Science in the Age of High Modernism, c. 1950–c. 1965.” IEEE Annals of the History of Computing 45: 29–42. https://doi.org/10.1109/MAHC.2023.3266359. https://doi.org/10.1007/978-94-015-8686-3_5 24 Computing Cultures Pias, Claus. 2011. “On the Epistemology of Computer Simulation.” Zeitschrift für Medien- und Kulturforschung 2 no. 1: 29–54. https://doi.org/10.28937/1000107521. Piel, Helen, and Rudolf Seising, eds. 2023. “Perspectives on Artificial Intelligence in Europe.” IEEE Annals of the History of Computing 45, no. 3: 6–79. Priestley, Mark. 2018. Routines of Substitution: John von Neumann’s Work on Software Development, 1945–1948. Cham: Springer. Roberge, Jonathan, and Michael Castelle, eds. 2021. The Cultural Life of Machine Learning: An Incursion into Critical AI Studies. Cham: Springer. Rojas, Raúl, and Ulf Hashagen, eds. 2000. The First Computers: History and Architectures. Cam- bridge, MA: MIT Press. Sack, Warren. 2019. The Software Arts. Cambridge, MA: MIT Press. Shapin, Steven. 1996. The Scientific Revolution. Chicago: University of Chicago Press. Shustek, Len. 2006. “What Should We Collect to Preserve the History of Software?” IEEE Annals of the History of Computing 28 no. 4: 112–111. Star, Susan Leigh, 1995. “Introduction.” In The Cultures of Computing, edited by Susan Leigh Star, 1–28. Oxford: Blackwell Publishers. Trogemann, Georg, Alexander Y. Nitussov, and Wolfgang Ernst, eds. 2001. Computing in Russia: The History of Computer Devices and Information Technology Revealed. Braunschweig: Vieweg. Turkle, Sherry, ed. 2009. Simulation and Its Discontents. Cambridge, MA: MIT Press. van Lente, Dick, ed. 2022. Prophets of Computing: Visions of Society Transformed by Computing. New York: Association for Computing Machinery. Varenne, Franck. 2019. From Models to Simulations. Abingdon: Routledge. Vertesi, Janet, David Ribes, Carl DiSalvo, Laura Forlano, et al., eds. 2019. DigitalSTS: A Field Guide for Science & Technology Studies. Princeton: Princeton University Press. Wichum, Ricky, and Daniela Zetti, eds. 2022. Zur Geschichte des digitalen Zeitalters. Wiesbaden: Springer. Winsberg, Eric B. 2010. Science in the Age of Computer Simulation. Chicago: University of Chicago Press. https://doi.org/10.28937/ZMK-2-1_3 PROGRAMMING LANGUAGES VIRTUAL MACHINES AUTOMATIC CODING WHIRLWIND LANING AND ZIERLER [ 1 ] Synthetic Machines and Practical Languages: Masking the Computer in the 1950s Mark Priestley In the 1950s, programming was seen as an arcane practice and a likely bottleneck in the use of the new high-speed automatic computers. One proposal to solve this problem was to enable scientists and others to use computers directly in their work. To make this feasible, improved notations were designed to mediate between users and the machine. These notations are often understood purely linguistically, as ways to describe the domain-specific knowledge and techniques of a particular field in a machine-proc- essible way. However, these improved notations also interpreted the computer for the non-specialized user. Using a new notation gave users access to a “virtual” or “synthetic” computational device often simpler or better tailored to a specific application area than the available physical machine. This chapter examines the synthetic machines of the 1950s, with a focus on those developed in connection with MIT’s Whirlwind 28 Computing Cultures machine, and shows how programming languages bridged apparently incompatible areas of knowledge, allowing users to grasp some of the ideas underlying the new computers and simultaneously express at least some of their domain-specific knowledge and problems in a computational form. In conclusion, it is suggested that this history challenges the simple hardware/software dichotomy which continues to shape much thinking about the computer itself. The automatic digital computer was, from the moment of its appearance in the 1940s as a novel tool for scientific calculation, understood as a linguistic agent, an interpretation clearly visible in the common description of pro- gramming as the preparation of problems in “the language the machine can understand” (Burks, Goldstine, and von Neumann 1946, preface). This attribution of agency placed computers in a long, if subaltern, tradition of thought about “active machinery” defined in opposition to the idea of “brute mechanism” relying solely on the transfer of momentum (Riskin 2016). Under- stood as language users, computers shared the imaginative space occupied by Karel Čapek’s robots, for whom a crucial boundary was the one across which orders were transmitted (Čapek 1920, 66). Even before it was a writing machine (Dick 2013), the computer was an obeying machine: Bell Labs mathematician George Stibitz defined a computer’s “native intelligence” as “its ability to understand and obey a large number of orders” (Stibitz 1943), while Alan Turing, commenting on the Automatic Computing Engine’s (ACE) versatility, suggested that “we should consider the machine as doing something quite simple, namely carrying out orders given to it in a standard form which it is able to understand” (Turing [1946]). Language was initially seen as an organic part of a computer and pro- gramming as a communicative act between human and machinic agents, but throughout the 1950s, as computers became more widely available, this collab- oration (or confrontation) was increasingly mediated by notations that were easier for humans to use and which the computer itself could translate into its “native language,” a practice known as “automatic coding.”1 By the end of the 1 The metaphor of translation was widely used, despite the fact that translation between natural languages is nothing like the mechanical meaning-preserving transformations carried out by programming language compilers. There may be a connection here with the parallel project of machine translation, itself informed by cryptographic experience during the Second World War, for which see Léon in this volume. Synthetic Machines and Practical Languages 29 [Fig. 1]: Typical contemporary representation of programming language hierarchies decade, as the intermediate processing grew in sophistication, some of these notations had come to be described as “programming languages.” Expected benefits from the use of mediating notations included reductions in the cost, staffing, and time required for program preparation, greater modifiability and portability of programs, and increased versatility of computers. Nofre, Priestley and Alberts (2014) describe this process as a transformation from technology to language, driven by the need for computer installations to preserve their investment in software by ensuring interoperability among suites of incompatible machines. They thematize independence from the machine, noting in particular how universalizing projects such as Algol aimed to produce notations that were abstract and formal like the languages of mathematics and logic. In this narrative, notation evolves away from the machine, from machine code through symbolic assembly languages to higher- level programming languages, and the resulting hierarchical vision is still a widespread way of thinking about programming languages (see Figure 1). Language types are thought to represent specific “levels of abstraction” and the process that allows one to move down the hierarchy and eventually use the invisible machine lurking at the bottom of the stack is understood as one of translation. Many researchers in the 1950s shared this vision. But automatic coding was also understood as a process that worked on the machines themselves, a technique for transforming an awkward and hard-to-use computer into one that was more accessible. These improved computers had no distinct material existence but possessed different logical characteristics from the underlying physical machines. Such spectral devices are now often referred to as “vir- tual machines,” but to avoid confusion we will adopt a phrase coined at the time and refer to the computers conjured up by automatic coding systems as “synthetic machines” (Backus 1959). Massachusetts Institute of Technology (MIT) programmer Frank Heart made early use of this notion of synthesis, 30 Computing Cultures describing automatic coding as “a class of methods which synthesize pro- grammed digital computers ‘within’ actual digital computers” (Heart 1954). In a recent discussion of the origins of computer science, Nofre has drawn attention to a related phenomenon, describing how “the conceptualization of the activity of computing became disentangled from the computer itself, a conceptual shift that was closely intertwined with a process of dematerialization of the very notion of the computer” (Nofre 2023, emphasis added). He focuses on the work of university staff anxious to escape the “commercial capture” of the computer and to establish a research role in computing distinct from the research and development carried out by commercial organizations such as IBM (International Business Machines). However, a differently motivated group inhabited the space between the universities and commercial computer developers, namely computer programmers and users concerned above all with making easy and economic use of the new machines in real-world applications. For this group, “dematerializing” the computer was not a way of making the physical machine disappear but rather of improving access to it. This chapter traces the development of the discourse on synthetic machines as it evolved throughout the 1950s in parallel with linguistic accounts of pro- gramming. An early symposium paper described three automatic coding systems developed for MIT’s Whirlwind computer (Adams and Laning 1954): these make convenient type specimens for a preliminary classification of syn- thetic machines and are described in sections 2 to 4. Sections 5 and 6 then consider how the idea of synthetic machines persisted, albeit sometimes in an attenuated and implicit way, as attention increasingly turned to the devel- opment of programming languages. But we begin by considering the basic socio-economic driver of this activity, namely the need to make programming easier. 1. Users as Programmers As early as 1946 it was recognized that programming was a potential bottle­- neck in the use of electronic digital computers. In a lecture that summer, John Mauchly, principal designer of the ENIAC (Electronic Numerical Integrator and Computer), explained that a basic economic issue posed by the new machines was the incompatibility between extremely high speeds of computation and the time-consuming task of program preparation (Mauchly 1946a). Mauchly further noted that coding was the only aspect of computer use where sub- stantial automation appeared not to be possible, but he hoped that well- designed instruction codes would lead to appreciable reductions in cost. A similar concern was expressed three years later at the initial meeting of the UK government’s advisory committee on computers, when computation expert Douglas Hartree commented that “at least in the immediate future, it would Synthetic Machines and Practical Languages 31 be difficult to find enough programme material to keep [100] machines in operation” (DSIR 1949). One strategy to address this problem was to turn users into programmers. Rather than relying exclusively on a specialized cadre of machine operators, scientists and engineers would write their own programs with advice and guidance being provided by experts where necessary. This approach was pioneered by Maurice Wilkes’s group at the University of Cambridge’s Math- ematical Laboratory, who organized a summer school on program design in September 1950, only a year after their new electronic computer, the EDSAC (Electronic Delay Storage Automatic Calculator), had become operational. The prospectus for the course described the “large contribution” that computers could make “to the solution of problems in mathematics, physics, engineering and other subjects,” and while acknowledging the specialized nature of pro- gramming, stated that “the subject will be treated throughout from the point of view of the mathematical user” (UML 1950). Historian Doron Swade writes that the EDSAC approach created “the user as a new class of practitioner” (Swade 2011), and one former user described the laboratory as a “disparate” yet “close-knit” community of “mathematicians, crystallographers, molecular biologists, theoretical chemists, physicists, astronomers and statisticians” developing programs related to their individual research (Barron 2011). These developments had a profound influence on the Whirlwind group at MIT, similarly situated in an elite techno-scientific institution and surrounded by scientists and engineers eager to get their hands on any new computational technology. Although Whirlwind was largely dedicated to specific military projects, a portion of its time was allocated without charge for general use by MIT staff and students (Adams 1952), and in the summer of 1948 Alan Perlis and John Carr were employed as research assistants to work alongside Charles Adams developing coding technique. Carr was subsequently awarded a Fulbright scholarship to study in France and on his journey home spent some time in Cambridge, returning to MIT filled with enthusiasm for what he had learned there (Wilkes 1985, 177). As Perlis recalled: [Carr] showed us something called a symbolic code that he had seen at Cambridge … Charlie Adams was the head of our programming group and we turned to each other [and said] “That’s the way to do business!” and from that followed immediately invitations to the British to send us your rich, your intelligent, and so forth. (Perlis 1983, min. 17:47) Wilkes himself visited MIT in August 1950 and discussed the EDSAC approach with Adams. Immediately after the meeting, Adams reported that Wilkes’s “philosophy is both a confirmation and an extension of ideas” independently developed at MIT, noting in particular that experience with EDSAC confirmed the feasibility of “allowing users to learn coding by actually doing their own 32 Computing Cultures problems” (WW M-1092). He listed three key technical points—fully automatic loading of programs from tape with no machine set-up required, the use of standard conventions and a subroutine library, and time-effective methods of trouble-shooting—that were also emphasized by Wilkes in a report on the Cambridge summer school (Wilkes 1950). While in the USA Wilkes gave two talks on “Operational experience on the EDSAC” at a meeting of the Association for Computing Machinery (ACM) in September. Adams described the meeting as “exceptionally stimulating” and noted that he had made personal contacts that had “encouraged work [at MIT] towards a practical, convenient, fully automatic means for handling coding details and computer set-up” (WW M-1096). Rounding off these early interactions, the Whirlwind group soon received a copy of the long and detailed internal report on EDSAC programming that was the basis for the famous textbook published the following year by Wilkes, David Wheeler, and Stanley Gill (WW M-1119). As Whirlwind became increasingly reliable, Adams’ applications group began to think how it could best be used as a research tool. They aimed: to show the feasibility of using a fast, general-purpose computer to solve many relatively small-scale scientific and engineering problems (where a single problem may require only a minute or two of machine time once a day or once a month). (WW SR-25, 28) To ensure productive use of the machine’s time under such a regime, “efficient methods of using the machine and efficient methods of locating troubles in programs” were essential, and Adams’ group adopted and adapted the EDSAC framework, developing input and conversion programs that performed a similar job to EDSAC’s Initial Orders, an extensive subroutine library, and a variety of tools for debugging. The end result of this work was the “Compre- hensive System of Service Routines” (CSSR), which became available to Whirl- wind users towards the end of 1952 (WW E-516). These developments were bolstered by ongoing personal contacts. David Wheeler, creator of EDSAC’s Initial Orders, visited Adams in September 1951 to discuss “programming techniques” (WW SR-27), and attendees at a significant informal discussion at a conference in December included Wilkes, Wheeler and John Bennett from Cambridge, and Adams, Carr and Jack Gilmore from MIT. Another discussant, perceiving the similarity between the two approaches, referred to a common “Wilkes–Adams philosophy” of machine organization (AIEE 1952, 113–14). Wilkes visited MIT after the conference and discussed Adams’ plans for CSSR, suggesting that EDSAC’s operations manager Eric Mutch be invited to MIT (Wilkes 1985, 180). Mutch duly spent the summer of 1952 at MIT contributing to the development and documentation of CSSR, while Wheeler taught on MIT’s summer course (WW M-1546) and Wilkes visited briefly following an ACM meeting in Toronto (Wilkes 1985, 180). In 1953, Stanley Synthetic Machines and Practical Languages 33 Gill spent the summer at MIT en route to the University of Illinois, teaching alongside Wilkes on that year’s summer course (WW SR-35). He returned in the summer of 1954 and helped Adams deliver summer courses in Advanced Coding Techniques and Business Applications (WW SR-39). Adams concluded that making programming simple enough for novices to learn with ease “essentially solves the difficult problem of where one finds a staff large enough to keep a high-speed computer busy on small-scale problems” (Adams 1952). Knowledge and experience gleaned from the EDSAC group’s experience had, as Adams acknowledged, been pivotal in orienting the approach that Whirlwind’s applications group took to programming after 1950. As they gained experience, however, MIT staff began to adapt and extend the EDSAC approach in various ways, as the following sections illustrate. 2. Interpretive Subroutines By the end of 1952, then, Whirlwind was equipped with a programming environment similar in scope to EDSAC’s and similarly centered on an extensive subroutine library providing easily reusable code for a range of common tasks. Both environments included a number of so-called inter- pretive subroutines often characterized as providing a computer with new synthetic machinery. This section describes a common use of interpre- tive subroutines, namely to provide programmers with a range of different number systems, an area of functionality referred to in CSSR as “programmed arithmetic.” One of a computer’s most fundamental physical characteristics is its word length, which determines the quantum of storage directly manipulable by the machine’s basic operations and the range of numbers that it can handle at the highest available speed. The word length on early computers represented a compromise between the need for numerical precision and the desire to simplify machine construction, and it was widely recognized that some applications would require higher levels of precision than that provided by the hardware. An early program to test Mersenne primes run at Manchester, for example, involved the manipulation of integers of several hundred digits (Newman 1949). Increased precision was provided by using more than one machine word to store a single number, the trade-off being that additional coding was required to implement basic arithmetic operations on these numbers, making programming more complex and programs longer and hence slower. This was a pressing issue for Whirlwind whose intended use in real-time flight simulation mandated a particularly high speed of operation. Arguing that the “short computing sequences” involved in simulation did not require great pre- cision, its designers had chosen a 16-bit word length with a fixed decimal point 34 Computing Cultures (WW SR-5, 10–1). General scientific and engineering applications would require higher precision, however, and by the end of 1947 it had been decided to pro- vide subroutines for operations on numbers stored in two consecutive words. Special orders were included in the code in the hope that coding with these “multiple-length” subroutines would be “no more complicated than for single- length numbers” (WW SR-3). Taking the “point of view of an individual coding a problem” (WW M-221), the aim was to allow the multiple-length operations to be used “as if they were built into the computer” (WW M-111), even at the cost of longer computing times. To a greater extent than other machines, then, general-purpose use of Whirlwind was predicated on the existence of coding techniques to circumvent hardware limitations. This work became Adams’ responsibility, and by March 1948 he had drafted a set of subroutines to enable the execution of “any desired operation … on double-length numbers” (WW SR-6). In the summer of 1948, John Carr worked largely on what he called a “two- register” coding method (WW SR-10). As Whirlwind was a fixed-point machine, all stored numbers had an absolute value less than one and to compute with numbers outside this range programmers had to explicitly code the relevant scaling factors, a time-consuming and error-prone process. So-called floating- point methods, such as Carr’s two-register method, eased this burden by storing the scale factor as part of the number itself and automating the process of scaling. On fixed-point machines, floating-point arithmetic was provided by subroutines and involved the usual trade-off between ease of programming and speed of computation. Carr noted that his method could be extended to allow simple coding of programs that carried out computations on entities such as complex numbers, vectors, and matrices. In the following year, Adams’ group worked mostly on the coding of spe- cific problems, as a result of which a definitive new order code was pro- posed for Whirlwind. The automatic subroutine orders were eliminated and Adams revised the existing subroutines for double-length and floating-point arithmetic (WW M-887). Investigations on making the use of subroutines as easy and efficient as possible were also carried out (WW E-329). As Whirlwind approached usability at the end of 1950, however, the contacts with the EDSAC group described above led to a change of technique and so-called interpretive subroutines became central to the provision of programmed arithmetic. John Bennett, an Australian research student working in Cambridge, devel- oped some interpretive subroutines for EDSAC around 1949 (Campbell-Kelly 1980). Bennett’s immediate goal was to reduce the space required to store instructions so that longer programs could be written: a considerable saving can be effected in the space occupied by orders by using a special “order” code, of which each “order” specifies a sequence Synthetic Machines and Practical Languages 35 of machine orders, and by packing two such “orders” into a single storage location … An interpretive subroutine is required to interpret “orders” expressed and packed in this form. (Wilkes, Wheeler, and Gill 1951, 162–63) Interpretive subroutines read and decoded “pseudo-orders,” which were not part of a machine’s actual order code. Execution of a pseudo-order involved the execution of multiple machine orders and possibly the invocation of other, non-interpretive, subroutines. Saving space was thus traded off against the increase in run time caused by having the pseudo-orders decoded by software rather than hardware. EDSAC programmers soon began to use interpre- tive subroutines in a more general way, however, to extend or even replace a machine’s order code with new instructions, a practice that Bennett later described as a “fortuitous byproduct” of the technique (Bennett 1990). Work on “floating-point and extra-precision interpretive subroutines” for Whirlwind started in February 1951 and that June it was reported that: Interpretive subroutines capable of interpreting a fairly general code of instructions, resembling quite strongly the ordinary Whirlwind I order code, have been written for performing several different forms of multiple-length arithmetic. (WW SR-26) Enlargement of Whirlwind’s memory at the end of the year made this work more urgent: The recent availability of 1024 registers of electrostatic storage has, for the first time, made feasible the undertaking of extensive calculations which require either extra precision … or floating point or both. (WW SR-28) Throughout the early part of 1952 work continued on a variety of schemes. From the user’s point of view, this “programmed arithmetic” appeared to alter Whirlwind’s basic characteristics. As applications group programmer John Frankovich noted about a triple-precision interpretive subroutine he had written: Programmers using this subroutine can assume that Whirlwind is a floating binary point computer which performs arithmetic and logical operations upon numbers greater than or equal to 2–64 and less than 2+64 with 39 binary digit precision. (WW M-1517) As well as altering machine characteristics, interpretive subroutines could compensate for missing hardware. The utility of the index registers added to the Manchester machine in 1949 had been widely noted and they were frequently simulated on other machines: 36 Computing Cultures The purpose of the early systems was to provide synthetic machines which had floating-point operations and often index registers (B-tubes), since the real machines did not. (Backus 1959, 234) The features provided by early interpretive subroutines were thought of as extensions to the physical machine and programmers used them by switching between native and interpreted code as necessary. But no matter how similar they were to the built-in orders, a group of pseudo-orders had to be prefixed by a call to the subroutine that would interpret them, a process that required a certain level of care and sophistication on the part of the programmer. Inter- pretive subroutines were soon developed which removed this requirement, however, replacing all the native code with interpreted code and defining com- plete and self-contained synthetic machines. 3. Synthetic Machines MIT ran a two-week course on “Digital Computers and Their Applications” in July 1952 (WW SR-31, 17). The course was oversubscribed, attracting 95 attendees from a wide range of government and industrial organizations. Students gained practical experience of Whirlwind programming using a simplified version of the order code and special service routines that made data input and error detection easier. For the 1953 edition of the course, the applications group went one better and developed a new computer spe- cifically designed to help students write, operate, and debug programs within the time constraints of the course. This new computer was not a physical machine, however: The MIT Summer Session Computer, hereafter referred to as the SS Computer, does not exist as an assembly of electronic apparatus; rather its realization is achieved by appropriate conversion, assembly, and inter- pretive routines operating in the Whirlwind I Computer. (WW SR-35, 47) The SS computer had its own instruction code, supported by an input routine to translate alphanumeric tapes of programs into binary form and post mortem and error diagnosis routines designed to help inexperienced pro- grammers locate errors quickly. Development started in June 1953, and after an intense programming effort by Frankovich, Gill, and Arnold Siegel the SS computer was ready for use on the course that August. Although some errors were uncovered, it was reported that “the overall operation of the simulated computer was quite satisfactory” (WW M-2415). The SS computer’s instruction code was translated by an interpretive routine running on Whirlwind. Unlike existing interpretive routines that extended the computer’s built-in order code with commands for specific features like floating-point arithmetic, the SS computer was realized by a single interpretive Synthetic Machines and Practical Languages 37 [Fig. 2] Pseudocode as a mask (after Hopper [MIT 1954]) routine which supported a complete and self-contained order code, “thus simulating a computer with characteristics quite different from those of [Whirlwind]” (WW M-2497). In place of Whirlwind’s 16-bit registers, the SS computer’s memory consisted of 28-bit words with a 4-bit tag which could store either fixed-point integers or floating-point numbers, and to enable easy modification of addresses within instructions it had seven “counters,” or index registers, a hardware feature that was entirely absent from Whirlwind. The SS computer paradoxically allowed students to use Whirlwind precisely by con- cealing it from them. In the fall semester the SS computer was used on two undergraduate courses, proving to be a “very satisfactory aid” and apparently achieving its goal of making programming easier: it was reported that more than half of SS programs, all written by beginner programmers, “have given correct results on the first or second run” (WW SR-36). But this benefit came with an associated cost, as interpreted SS programs were estimated to run approxi- mately 10 times slower than those written in Whirlwind’s native code. Low execution speed was not a critical factor in student programs but probably restricted wider use of the system, although it was used in early 1954 on a project to analyze data obtained from blast furnaces (WW M-2812, 7). The SS computer code written for this project was soon rewritten using standard CSSR routines (WW M-2870, 13), but the SS computer was used as the basis for the Single Address Computer, one of two new synthetic machines developed for a business computing course offered in the summer of 1954 (WW SR-39). The other, the Three Address Computer, provided students with access to a completely different type of machine, being “designed to simulate an actual medium speed drum computer” (WW M-2900). By 1954 interest in automatic coding was gaining momentum, and in May the US Navy’s Office of Naval Research (ONR), which had funded much computing research (including the Whirlwind project) since the war, organized a symposium bringing together researchers in the field (ONR 1954). The ONR also sponsored a further course offered at MIT that summer, on “Advanced Programming Techniques,” organized by Adams, Gill, and Whirlwind 38 Computing Cultures [Fig. 3] Interaction of the linguistic and machinic aspects of automatic programming programmer Donn Combelic (MIT 1954). Attendees at the MIT course included Grace Hopper, who had chaired the ONR symposium, and John Backus, leader of IBM’s new Fortran project. At the MIT course, Gill described what he called the “language aspect” of automatic coding, pointing out that programmers could write programs using “pseudocodes” that were different from the instruction code of the machine and that required translation into the machine’s own code before they could run. In a cartoon on the front cover of the notes from the course (Figure 2), Hopper imagined this situation from the users’ point of view, depicting the pseudocode as a mask transforming a threatening and unapproachable computer into a more programmer-friendly machine. As the example of the SS computer illustrates, such masked machines were discussed and experienced by users as if they were machines in their own right. Figure 3 expands Hopper’s cartoon by making explicit the relations of translation and simulation that supported the use of synthetic machines. The diagram shows how a pseudocode could not only provide a new way to pro- gram a given computer but could also, by defining a new synthetic machine, be experienced as providing a replacement for that computer. A few years later, Backus expanded on this idea in the context of programming languages. He defined a “synthetic machine” as one “equipped to accept statements of procedures in a language other than the ‘hardware language,’” and suggested that such machines could be evaluated in the same way as “real machines,” by assessing their programmability and speed of execution (Backus 1959). The consistency of the programmers’ experience is guar- anteed by the fact that the diagram of Figure 3 is expected to commute, in Synthetic Machines and Practical Languages 39 the sense of category theory: the effect of executing a pseudocode operation on the synthetic machine is the same as the effect of running the translated operation on the simulation. Interpretive routines were not the only way in which synthetic machines could be created. Frank Heart drew attention to the variety of practice while talking about the increasingly widespread phenomenon of synthetic computers: Subprogramming, conversion routines, and executive routines are dis- cussed as members of a class of methods which synthesize programmed digital computers “within” actual digital computers. Ease of programming, training, and design testing are pointed out as major reasons for turning to such procedures. (Heart 1954) Synthetic computers were rife in the 1950s, as Hopper observed in her con- cluding remarks at the ONR symposium: Miss Moser has said that “any reasonably good compiler is a pseudo- computer” … Thus a “second-level” of computers is being “built.” Computers with a wide range of instructions, easy to program, and able to be shipped by mail are being created to exploit basic hardware. (ONR 1954, 148) Some were “imaginary machines” with no physical counterpart, often con- ceived and developed like the SS computer to make programming simpler. For example, once the University of Michigan’s digital automatic computer MIDAC had been installed in 1953, instructors found that the difficulty of scaling, instruction modification, and binary representation meant that in the time available students only managed to complete trivial programs. “To alleviate these problems it was decided that a new computer was needed: one designed to make programming easier” (Perkins 1956). The resulting “pseudo- computer,” EASIAC (EASy Instruction Automatic Computer), was implemented in the same way as the SS computer: source code was translated by an input routine into an intermediate form that was then interpreted to execute the program, and a “mistake printout program” provided diagnostic information to assist in debugging. Other developers of synthetic machines aimed to replicate physical machines. In 1958, the ACM published lists of 20–30 such efforts, many involving IBM machines as the company delivered a series of increasingly capable computers (ACM 1958a, 1958b). An older machine could be simulated on its more powerful successor as a way of preserving investment in software written for the older machine, or for other reasons. For example, the US Council for Economic and Industry Research announced a program for the IBM 704 that simulated the less powerful but widely used IBM 650. The synthetic machine was deemed valuable because “it can serve to alleviate a temporary 40 Computing Cultures overload of 650 facilities, run programs with excessive storage requirements or act in many ways as a buffer for various emergency conditions” (ACM 1958a). But it could also make sense to simulate a new computer on one less powerful, for example to develop and test software for a promised new machine so that it could be put into service as soon as it was delivered. This had been the motivation behind one of the earliest applications of interpretive subroutines, in Manchester: We are building a new machine, the code of which differs from the code of the machine now in existence … when the new machine is finished, several months will have to be spent in getting the new routines right. We are trying to avoid this waste of time by developing a scheme which will enable us to test the new programmes on the old machine. (Bennett, Prinz, and Woods 1952) 4. Synthesizing New Kinds of Computer Designers often aimed to make the new orders provided by interpretive sub- routines and synthetic machines resemble those of existing codes. In a project run by the General Electric Company, for example, every effort was made to keep the coding treatment of suboperation instructions as close as possible to that of [IBM] 702 instructions so that from the programmer’s standpoint there would be no difference between the sixty pseudo operations made available by SCRIPT and the thirty- seven “built in” 702 commands. (Thompson 1956, 9) A more radical proposal was to use forms of notation other than computer code, for example by allowing programming to take place directly with math- ematical formulas. As early as 1949, Mauchly had proposed an interpretive “program which would accept algebraic equations as ordinarily written, which program would perform the indicated operations” (Remington Rand 1952). As implemented for UNIVAC (UNIVersal Automatic Computer) in 1952, this “Short Code” still required algebraic symbols to be hand-coded as numbers, but the third MIT system discussed at the 1954 ONR symposium allowed equations in recognizably mathematical notation to be presented directly to Whirlwind for solution. J. Halcombe Laning, a mathematician working in MIT’s Instrumentation Laboratory, visited Whirlwind in late 1951, returning early in 1952 with a pro- posal for a program to solve differential equations using the Runge–Kutta method. This was accepted by Adams’s applications group and coded with the assistance of John Carr, using around five hours of Whirlwind runtime. In April, Laning was joined by Neil Zierler, also of the Instrumentation Lab, and the project expanded to encompass a range of programs, including a Synthetic Machines and Practical Languages 41 pseudo-random number generator. Laning’s original plans expanded in this context and at the end of the year it was reported that: An interpretive program has been written to read in and solve sets of algebraic equations of a certain class, each problem being presented to the machine as a flexo-tape in essentially ordinary mathematical notation. This program has at present partial provision for the handling of more elaborate problems; e.g. iterations and the computing of special functions. (WW SR-32, 26) The keyboard on the Flexowriter, the teleprinter used to prepare Whirlwind’s input, contained a number of mathematical symbols, including parentheses, symbols for arithmetical operations, and exponents, thus allowing complex equations such as d = a (b + c)2 ⁄ (c - a) a-3 to be punched directly onto tape (Laning and Zierler 1954, 6). Equations had to be expressed as strict sequences of characters, but this format nevertheless marked a great gain in readability and usability over systems such as Short Code. Work on the interpretive program continued throughout 1953. In November it was used on another project to compute a Fourier transform, and on December 1, Laning described it at an internal MIT seminar as an “interpretive program for mathematical equations” that will accept algebraic equations, differential equations, etc., expressed on Flexowriter punched paper tape in ordinary mathematical notation (within certain limits imposed by the Flexowriter) and automatically pro- vide the desired solutions. Additional features such as the automatic com- putation of special functions and the automatic solution of differential equations are being included. (WW SR-36, 17) An internal report on the program was issued in January 1954 and it was used for a variety of test applications, but never gained wide usage (Laning and Zierler 1954). As with the SS computer, reports regularly stressed that programs “operated satisfactorily on their first trial” (e.g. WW M-2699), with the suggestion that the system made programming easier, but it is likely that the slow running of programs compared with other Whirlwind pro- gramming systems (a slowdown factor of 10 was often cited) hindered its wide acceptance. It was used on at least one other project during 1954, and at the end of the year Laning began an effort to rewrite it. Substantial amounts of time were dedicated to this, but by early 1955 Laning had been forced to abandon the project through pressure of other work. The Laning and Zierler program is famous as an early, if not the first, example of a system that might be described as a programming language rather than simply an autocode. This is understandable, as its input notation looks significantly different from, say, the code of the SS computer. But there are 42 Computing Cultures [Fig. 4] The structure of the synthetic machine underlying the Laning and Zierler system also similarities between the two systems: both were implemented by inter- pretive routines that blocked access to Whirlwind’s native code and provided the user with a synthetic machine significantly different from Whirlwind. Laning and Zierler’s report reflected both sides of the machine–language duality. While the title described the system in linguistic terms as “a program for translation of mathematical equations,” the text stated that “the effect of our program is to create a computer within a computer.” Laning and Zierler did not explicitly describe the synthetic machine underlying their system but its high-level structure can be inferred from their text (see Figure 4). The LZ computer, as we might call it, differed substantially from synthetic machines such as the SS computer, which shared with their host machines a familiar computer architecture organized around a single, addressable memory and were programmed with instructions consisting of operation codes and addresses. The memory of the LZ computer held only floating-point numbers. These were not stored in addressable memory locations but, following normal math- ematical practice, were understood to be the values of variables such as the a, b, c and d appearing in the example equation above. The memory was divided into two areas: “magnetic storage” and “the drum.” By default, variables were stored in magnetic storage, but could be explicitly placed on the drum by means of an ASSIGN instruction. The input Flexowriter tape contained a sequence of equations interspersed with control instructions; we will refer to this form of the program as the LZ code. Equations and instructions could be numbered to provide targets for jump i