Atlas 2 at Cambridge Mathematical Laboratory (And Aldermaston and CAD Centre)

Total Page:16

File Type:pdf, Size:1020Kb

Atlas 2 at Cambridge Mathematical Laboratory (And Aldermaston and CAD Centre) Atlas 2 at Cambridge Mathematical Laboratory (And Aldermaston and CAD Centre) Barry Landy, November 2012 How it came about The Cambridge Mathematical Laboratory (“Maths Lab”) had a long history of designing its own machines. EDSAC (1949-1958) was the world’s first fully functional stored program (Von Neuman) computer on which it offered a full computing service for users (the world’s first). EDSAC 2 (1958-1965), the first micro-programmed computer, carried on the innovative tradition. However, by 1961 it was time to buy or design a new machine, but this time Maurice Wilkes didn’t want another home-made one. He had £250,000 offered by the UK government available to buy a replacement for EDSAC 2. This could have bought a KDF9 but that was only about the power of EDSAC 2. The only viable machines were an IBM 7090 or an Atlas, neither of which could be afforded. The price tag for the Atlas was £2,000,000. Peter Hall (Ferranti’s Computer Manager at the time) suggested they sell Cambridge the processing unit of Atlas at “works cost”, with Cambridge and Ferranti designing a simpler memory and peripheral arrangement, thereby providing a machine for Cambridge, and a cheaper version of Atlas for Ferranti to market. David Wheeler was design authority for the joint team, responsible for design of the memory access and peripheral coordinator and any consequential modifications to the basic hardware. The wiring diagrams were designed on EDSAC 2 by Roger Needham. While the hardware was built at West Gorton it was agreed that commissioning would happen at Cambridge and two engineers from West Gorton were seconded to Cambridge for that purpose. The Eagle pub welcomed them with open arms! The machine was officially christened Titan, in line with the Ferranti tradition of choosing names from classical mythology, but was later re-named Atlas 2 by the marketing people. In Cambridge the name Titan stuck as the prototype of Atlas 2. Hardware – what was different Atlas had a full one-level store with page address registers and a high-speed drum, and these were removed for Atlas 2. Instead user programs were located dynamically by hardware (more details later) thus saving huge hardware costs. The Atlas instruction had a 10 bit function part; if the first bit was zero the remainder defined a full set of hardware implemented instructions. If the top bit was one the remaining bits defined (up to) 512 "extracodes" which called supervisor functions (like accessing magnetic tape). On ATLAS these were implemented in fixed memory which could be modified by the operating system design team (brushes); to save cost, this was changed for TITAN so that the extracodes were implemented entirely in Main Memory. This was much slower for instruction access but considerably simpler to maintain. Simplifications were also made to the peripheral control logic. Atlas 2 was thus of a similar speed to Atlas but without the flexibility and power of the one-level store and with several other cost saving decisions, including slower main memory (the Atlas 2 design permitted 2 microsecond or 5 microsecond memory; naturally we had the slower). It was therefore much cheaper! In common with Atlas the memory consisted of words 48 bits long, which could be divided into 8 separately addressable 6 bit characters or 2 24 bit half words. TITAN initially had 32K words of store, soon increased to 64K and eventually to 128K (so 1Mb of 6 bit bytes). Hardware arrived in Cambridge in 1963; software design had already started (on paper); development could start as soon as enough of the hardware was commissioned. The memory management system comprised a single base and limit pair of registers with two other registers to lock peripheral transfers implemented as 4 registers, R1-R4. R1 specified the starting point of a program; the user address was ORed with R1 to provide the absolute hardware address being accessed. The OR feature made allocating main memory quite complicated. R2 specified the size of the program region. R4 specified the lower end and R3 the upper end of a locked region within the R1,R2 limits; the program was not allowed to access this sub region. This feature permitted IO transfers (especially intended for magnetic tape). This design of memory control allowed full user protection, so that, even though multiple programs might be active, a program could only read or write the area specified in the control registers. The major drawback was that the memory allocated to one program had to be contiguous in real memory. Software – why the Atlas Supervisor couldn’t be used It had always been Cambridge’s intention to write a multiprogramming supervisor similar to Atlas comprising a job shop system (that is, jobs input from paper tape or punched cards taken from a physical queue, with the results posted back in a similar queue) with efficient I/O buffering to maximise throughput. The Atlas supervisor, which was already being written, achieved this aim by managing and exploiting the one-level store. For Atlas 2, having no one level store, we had to design and implement a different system, although we learnt from the Manchester effort and used the same methodology in terms of Interrupt processes (IRs), Supervisor Extracode Routines (SERs) and so on. The Atlas 2 Supervisor was a joint project of Ferranti and Cambridge. In the initial design stages the software team was small, comprising David Barron and David Hartley from Cambridge and Chris Spooner and others from Ferranti (which became ICT in the course of the development). In 1963 Barry Landy joined the team, and his first task was to write a diagnostic system to be used on an IBM selectric typewriter to enable the supervisor to be debugged. (Although he had first to write a program to discover the character code!) Meanwhile David Hartley was writing the nucleus, which while based on the Atlas work, had to be different from the Atlas nucleus because of the lack of a one level store. Roger Needham joined the software team when he had finished helping David Wheeler with the hardware developments. The main external distinction between the two systems was that Atlas used a drum for page and IO buffering, and Atlas 2 did not have drums, and so was designed to make use of magnetic-tape for I/O buffering, known as the “swinging well”. This in practice never operated at Cambridge but did in the second Atlas 2 at Aldermaston (see below). While it worked at Aldermaston in their “one job at a time” mode of working I personally doubt it would have worked well for a multiprogramming system. Luckily as it happened we did not have to find out. Magnetic tape was also used for paging-in parts of the supervisor which were not permanently resident in main memory. The entire Supervisor eventually comprised some 40K words of which about 15K was permanently resident. The remainder was supervisor pages, written in blocks of 512 words, which could be transferred to a free block of memory in one IO operation. The ICT team eventually grew to 21 people, and the integration of all these pieces of software written by many hands of various standards of ability was done in Cambridge, where by 1964 a day shift for users was operating (as happened on Atlas 1) under a temporary supervisor and a temporary compiler developed by Peter Swinnerton-Dyer. As a result the testing and integration of new pieces of the Main Supervisor had to be done in the evening and night (under the control of Barry Landy). Eventually the team divided into two; the Cambridge team to finish the system as planned, and the Ferranti/ICT team to modify it to suit Aldermaston Cambridge University service – how time sharing rescued the reputation In 1965, during the Cambridge development, Wilkes discovered Time Sharing at MIT, and demonstrated it at Cambridge using a 10 character per second teleprinter (!), on a telex line across the Atlantic. He insisted (rightly) that the supervisor should be modified in mid flight to permit on-line interaction with terminals. Since we had insisted on maintaining multi processing job control we were fortunate that the basics of the operating system were already suitable (or seemed to be). However there were plainly many things lacking in the hardware. As originally planned TITAN was fine for a job queue system with no permanent storage (the way that EDSAC 2 worked). A terminal interaction system required a file store and some basic swapping. In the original system design, memory allocation to jobs (ie, selection of which jobs to run) was rudimentary. Jobs were selected from the (tape) queue based on whether they would fit into the available memory on a first come first served basis. This would not work for a multi user system and so more sophisticated control was needed. Finally there had to be some way of interfacing the terminals (10 cps teletypes) to the hardware. These problems were variously solved. A Data Products 16M word disc was acquired for the filestore in 1965 (actually as a gift from Basil de Ferranti). TITAN eventually had two such discs. Each disc had independent heads for each platter, and most importantly a fixed head region which in effect we used as a drum. The disc was also used for swapping supervisor pages and for buffering the data streams of active programs instead of using magnetic tape. David Wheeler altered the design of the memory location registers described above by adding an extra control register R5. R5 specified in the bottom 18 bits the address of a piece of store which could be 64, 512, or 4096 words long; of the top 6 bits 2 control bits were used to specify the size, and the remaining 4 bits specified that one or more of four particular pages of the region (2048 to 4096 relative) were locked for transfers.
Recommended publications
  • ALGOL 60 Programming on the Decsystem 10.Pdf
    La Trobe University DEPARTMENT OF MATHEMATICS ALGOL 60 Programming on the DECSystem 10 David Woodhouse Revised, August 1975 MELBOURNE, AUSTRALIA ALGOL 60 Programming on the DECSystem 10 David Woodhouse Revised, August 1975 CE) David Woodhouse National Library of Australia card number and ISBN. ISBN 0 85816 066 8 INTRODUCTION This text is intended as a complete primer on ALGOL 60 programming. It refers specifically to Version 4 of the DECSystem 10 implementation. However, it avoids idiosyncracies as far as possible, and so should be useful in learning the language on other machines. The few features in the DEC ALGOL manual which are not mentioned here should not be needed until the student is sufficiently advanced to be using this text for reference only. Exercises at the end of each chapter illustrate the concepts introduced therein, and full solutions are given. I should like to thank Mrs. K. Martin and Mrs. M. Wallis for their patient and careful typing. D. Woodhouse, February, 1975. CONTENTS Chapter 1 : High-level languages 1 Chapter 2: Languagt! struct.ure c.f ALGOL 6n 3 Chapter 3: Statemp.nts: the se'1tences {'\f the language 11 Chapter 4: 3tandard functions 19 Chapter 5: Input an~ Outp~t 21 Chapter 6: l>rray~ 31 Chapter 7 : For ane! ~hil~ statements 34 Chapter 8: Blocks anr! ',: ock sc rll,~ turr. 38 Chapter 9: PrOCe(:l1-:-~S 42 Chapter 10: Strin2 vp·jaLlps 60 Chapter 11: Own v~rj;lI'.i..es clOd s~itc.hef, 64 Chapter 12: Running ~nd ,;ebllggi"1g 67 Bibliography 70 Solutions to Exercises 71 Appendix 1 : Backus NOlUlaj F\:q'm 86 Appendix 2 : ALGuL-like languages 88 Appenclix 3.
    [Show full text]
  • Archived: Autocode User's Guide
    MATRIXx TM AutoCodeTM User’s Guide MATRIXx AutoCode User’s Guide The MATRIXx products and related items have been purchased from Wind River Systems, Inc. (formerly Integrated Systems, Inc.). These reformatted user materials may contain references to those entities. Any trademark or copyright notices to those entities are no longer valid and any references to those entities as the licensor to the MATRIXx products and related items should now be considered as referring to National Instruments Corporation. National Instruments did not acquire RealSim hardware (AC-1000, AC-104, PCI Pro) and does not plan to further develop or support RealSim software. NI is directing users who wish to continue to use RealSim software and hardware to third parties. The list of NI Alliance Members (third parties) that can provide RealSim support and the parts list for RealSim hardware are available in our online KnowledgeBase. You can access the KnowledgeBase at www.ni.com/support. NI plans to make it easy for customers to target NI software and hardware, including LabVIEW real-time and PXI, with MATRIXx in the future. For information regarding NI real-time products, please visit www.ni.com/realtime or contact us at [email protected]. May 2003 Edition Part Number 370767A-01 Support Worldwide Technical Support and Product Information ni.com National Instruments Corporate Headquarters 11500 North Mopac Expressway Austin, Texas 78759-3504 USA Tel: 512 683 0100 Worldwide Offices Australia 1800 300 800, Austria 43 0 662 45 79 90 0, Belgium 32 0 2 757 00 20, Brazil 55
    [Show full text]
  • Chapter 1 Basic Principles of Programming Languages
    Chapter 1 Basic Principles of Programming Languages Although there exist many programming languages, the differences among them are insignificant compared to the differences among natural languages. In this chapter, we discuss the common aspects shared among different programming languages. These aspects include: programming paradigms that define how computation is expressed; the main features of programming languages and their impact on the performance of programs written in the languages; a brief review of the history and development of programming languages; the lexical, syntactic, and semantic structures of programming languages, data and data types, program processing and preprocessing, and the life cycles of program development. At the end of the chapter, you should have learned: what programming paradigms are; an overview of different programming languages and the background knowledge of these languages; the structures of programming languages and how programming languages are defined at the syntactic level; data types, strong versus weak checking; the relationship between language features and their performances; the processing and preprocessing of programming languages, compilation versus interpretation, and different execution models of macros, procedures, and inline procedures; the steps used for program development: requirement, specification, design, implementation, testing, and the correctness proof of programs. The chapter is organized as follows. Section 1.1 introduces the programming paradigms, performance, features, and the development of programming languages. Section 1.2 outlines the structures and design issues of programming languages. Section 1.3 discusses the typing systems, including types of variables, type equivalence, type conversion, and type checking during the compilation. Section 1.4 presents the preprocessing and processing of programming languages, including macro processing, interpretation, and compilation.
    [Show full text]
  • On Barron and Strachey's Cartesian Product Function
    BRICS RS-07-14 Danvy & Spivey: On Barron and Strachey’s Cartesian Product Function BRICS Basic Research in Computer Science On Barron and Strachey’s Cartesian Product Function Olivier Danvy Michael Spivey BRICS Report Series RS-07-14 ISSN 0909-0878 July 2007 Copyright c 2007, Olivier Danvy & Michael Spivey. BRICS, Department of Computer Science University of Aarhus. All rights reserved. Reproduction of all or part of this work is permitted for educational or research use on condition that this copyright notice is included in any copy. See back inner page for a list of recent BRICS Report Series publications. Copies may be obtained by contacting: BRICS Department of Computer Science University of Aarhus IT-parken, Aabogade 34 DK–8200 Aarhus N Denmark Telephone: +45 8942 9300 Telefax: +45 8942 5601 Internet: [email protected] BRICS publications are in general accessible through the World Wide Web and anonymous FTP through these URLs: http://www.brics.dk ftp://ftp.brics.dk This document in subdirectory RS/07/14/ On Barron and Strachey’s Cartesian Product Function Possibly the world’s first functional pearl∗ Olivier Danvy Michael Spivey Department of Computer Science Computing Laboratory University of Aarhus Oxford University IT-parken, Aabogade 34 Wolfson Building, Parks Road DK-8200 Aarhus N, Denmark† Oxford OX1 3QD, England‡ July 20, 2007 Abstract Over forty years ago, David Barron and Christopher Strachey published a startlingly elegant program for the Cartesian prod- uct of a list of lists, expressing it with a three nested occurrences of the function we now call foldr. This program is remark- able for its time because of its masterful display of higher-order functions and lexical scope, and we put it forward as possibly the first ever functional pearl.
    [Show full text]
  • EEE Anna/S of the History of Computing, Volume 14, 1992, Subject/Title Index (Author Index Appears on P
    EEE Anna/s of the History of Computing, Volume 14, 1992, Subject/Title Index (Author Index appears on p. 92) 51 Nemausa, Oct. 92,28,29 Artifact Collectors, July 92,49 Boilen, Sheldon, Jan. 92,22; Apr. 92,42 2001:A Space Odyssey, July 92,53 Artificial intelligence (AI), Jan. 92, 21, 40, 62; Bolt Beranek and Newman (BBN), Jan. 92,22; A Apr. 92,31; July 92,68,80 Apr. 92,15,16,42 ASCC, see Automatic Sequence Controlled Bolt, Dick, Apr. 92,5 A-O, Jan. 92,55; Apr. 92,57 Calculator, Apr. 92,14; Oct. 92,13 Bombe, Apr. 92,52; July 92,9,12 A-2, Apr. 92,57 Aspray, William, Apr. 92,4; July 92,5; Oct. 92, Bonfanti, Corrado, Jan. 92,56 Aberdeen Proving Ground, July 92,76; Oct. 92, 14 Boole, George, July 92,44 11 Assembly language, Jan. 92.38.62 Booth, G.W., Oct. 92,43 ACM, see Association for Computing Ma- Association for Computing Machinery (ACM), Bootstrap, Oct. 92,45 chinery, Apr. 92,58; July 92,77 Apr. 92,58; July 92,77 Boston Tech, July 92,55 Adams, Charlie, Jan. 92,35 Atari: July 92,67 Boundary registries, Jan. 92,42 Admiral Grace Murray Hopper Scholarship, Atlas operating system, Oct. 92,57 Bowker, Geoffrey, Oct. 92,14 July 92,51 Atlas, Oct. 92,57 Bowman, Ray, July 92,17 Advanced Research Proiects Agency (ARPA), Atomic structures, Oct. 92,29 Boys, S.F., Oct. 92,30,32 Jan. 92,3,21; Apr. 92,4,16,-17 Autocorrelation function, Jan. 92,35 Bragg, Lawrence, Oct.
    [Show full text]
  • Early Nordic Compilers and Autocodes Version 2.0.0 of 2014-09-21
    Early Nordic compilers and autocodes Version 2.0.0 of 2014-09-21 Peter Sestoft IT University of Copenhagen Rued Langgaards Vej 7, DK-2300 Copenhagen S, Denmark [email protected] Abstract. The early development of compilers for high-level program- ming languages, and of so-called autocoding systems, is well documented at the international level but not as regards the Nordic countries. The goal of this paper is to provide a survey of compiler and autocode development in the Nordic countries in the early years, roughly 1953 to 1965, and to relate it to international developments. We also touch on some of the historical societal context. To appear in Gram, Heide, Impagliazzo (editors): History of Nordic Com- puting 2014. Springer Lecture Notes in Computer Science. 1 Introduction A compiler translates a high-level, programmer-friendly programming language into the machine code that computer hardware can execute. An \autocode" is a term used in the 1950s to denote a combination of simple compiler, assembler, linker and loader; in general, a program that made loading another program into a computer more convenient than using binary or hexadecimal codes. Whereas the history of computer hardware and the history of programming languages both are well described, the history of compilers, tying the two other subjects together as it were, is not as thoroughly charted. Nevertheless, surveys by Bauer (1974), Knuth (1977) and Ershov and Shura-Bura (1980) give inter- esting descriptions of the history of compiler development at the international level. However, they mostly neglect the particular developments in the Nordic countries, especially those before 1960.
    [Show full text]
  • 1900 Software - Two Views from the Board
    VVP issue 1.0 05/02/2004 3- ICT/ICL 1900 Range Software......................................................................................................... 2 3.1 – The FP 6000 Software (Before the 1900 Range)..................................................................... 2 3.2 - ICT 1900 Range Software – The Start ..................................................................................... 4 3.3 – Programming Aids (Software) in 1966.................................................................................... 6 3.4- The Operating Systems (George). ............................................................................................. 7 3.5 ICT/ICL 1900 Software - Two views from the Board.............................................................. 14 3.6- ICT/ICL 1900 Software -............................................................................................................ 15 3- ICT/ICL 1900 Range Software During the period of development of the1900 Range, the Software activity evolved from a Sales Support Aid into a major computer industry driver, which, towards the end of the period, was absorbing development resources in excess of the hardware. This Section will outline its evolution in the context of the ICT/ICL 1900 Range 3.1 – The FP 6000 Software (Before the 1900 Range) The following is the relevant extract from the “FP6000- Report on Visit to Ferranti-Packard” in April 1963, detailing present or planned software while recommending the adoption of the FP6000 as the Ferranti 1900 (To
    [Show full text]
  • The Atlas Story
    The Atlas story. Simon Lavington. Second edition, 6 th December 2012. Contents. Introduction page 1 Birth pains 1 Atlas at Manchester 1 Ferranti and the market place 5 Timeline 6 Technical innovations: facts and figures 6 The London Atlas 8 The Chilton Atlas 9 The Atlas 2 developments 11 Titan at Cambridge 13 Atlas 2 at AWRE Aldermaston 13 Atlas 2 at the CAD centre 13 More technical details of Atlas installations 15 Physical layout 17 Organisation of the Atlas storage hierarchy 17 Format of an Atlas instruction. 19 Guide to the Atlas Supervisor 20 People and places 21 More information 22 Originally produced for the Atlas Symposium held on 5 th December 2012 in the School of Computer Science, Kilburn Building, University of Manchester. It is a pleasure to acknowledge the help given by many former Atlas pioneers in the writing of this brochure. Comments on the text are welcomed and should be sent to Simon Lavington : [email protected] Picture credits to copyright holders. Computer Laboratory, University of Cambridge: Figure 9 Graham Penning: Figure 10 Simon Lavington: Figure 3 Iain MacCallum: Front cover Museum of Science & Industry, Manchester Figures 1, 2, 4, 5, 6 STFC Rutherford Appleton Laboratory: Figures 7a, 7b, 8 (On 5 th December the original printed version of this document had a cover design based on photographs of the Atlas at Manchester University in 1963). i By the end of 1955 there were less than 16 production digital computers in use in the UK. They were of five British designs, from five different companies, and were single-user systems with practically no systems software.
    [Show full text]
  • Christopher Strachey and the Development Of
    Christopher Strachey and the Development of CPL by Martin Richards [email protected] www.cl.cam.ac.uk/users/mr10 Computer Laboratory University of Cambridge Mon Oct 17 08:16:40 BST 2016 Abstract Chrisopher Strachey was the most significant contributor to the design and implementation of the programming language CPL. At the time there was little understanding of the complexities of computer language design and how type systems could cope with lists and the kinds of structures needed to represent, for instance, parse trees. The CPL project cannot be regarded as being successful since it did not result in a usable CPL compiler. The reasons being that the language became too large and complicated, there were insufficient people to implement the compiler and, in the middle of the three year project, all work had to be transferred from Edsac 2 to Titan, a newly designed version of the Ferranti Atlas computer which as yet had no operating system. Even so, we can be proud of the work that went into CPL and its influence on the design of many later languages. Keywords: Edsac, Titan, CPL, BCPL 1 Introduction Before discussing the development of CPL it it necessary to have some understanding of what computer facilities were available at Cambridge at the time. The first electronic computer in Cambridge was constructed under the Direction of Maurice Wilkes and successfully ran its first program in May 1949. It was a serial machine with up to 512 35-bit words of memory stored in mercury delay lines. Each word could contain two 17-bit instructions.
    [Show full text]
  • CA341 - Comparative Programming Languages Introduction
    Introduction CA341 - Comparative Programming Languages Introduction Dr. David Sinclair Introduction Overview This module will examine the essential concepts on which modern programming languages are based, to understand the design decisions in current languages and the design features that may be introduced into future languages. In this module we will cover: • Data Types and Scope • Pointers and Memory Management • Abstraction • Control • Data Abstraction • Functions, Parameter Matching and Parameter Passing • Assertions and Exceptions • Object-Oriented Programming Paradigm • Memory Models • Logic Programming Paradigm • Functional Programming Paradigm Introduction Texts Supplementary: • Robert V. Sebesta 2015, Concepts of Programming Languages, 11 Ed., Pearson [ISBN: 9780133943023] • Michael L. Scott 2015, Programming Language Pragmatics, 4 Ed., San Diego; Morgan Kaufmann [ISBN: 9780124104099] • David A. Watt 2004, Programming Language Design Concepts, John Wiley & Sons [ISBN: 978-047085320] • John C. Mitchell 2003, Concepts in programming language, Cambridge University Press New York [ISBN: 978-052178098] • M. Ben-Ari 1996, Understanding Programming Languages, John Wiley & Sons [ISBN: 978-047195846] Introduction Contact Details Lecturer: Dr. David Sinclair Office: L253 Phone: 5510 Email: [email protected] WWW: https://www.computing.dcu.ie/∼davids Course web page: https://www.computing.dcu.ie/∼davids/courses/CA341/CA341.html Introduction How do I successfully complete this module? The module mark is a straight weighted average of: •
    [Show full text]
  • History and Spirit of C
    History and Spirit of C Olve Maudal, Cisco Systems 45 minute session at NDC TechTown, Kongsberg, 19. October 2017 The history of C in 90 seconds http://thesourceny.com/welcome/wp-content/uploads/2014/02/stage-red-curtain.jpg At Bell Labs. http://www3.nd.edu/~atrozzol/BellLabs1959.jpg Back in 1969. http://www.multicians.org/picnics.html Ken Thompson wanted to play. Ken Space Travel http://upload.wikimedia.org/wikipedia/commons/3/36/Ken_n_dennis.jpg He found a little used PDP-7. http://en.wikipedia.org/wiki/PDP-7#/media/File:Pdp7-oslo-2005.jpeg Ended up writing a nearly complete operating system from scratch. https://archive.org/stream/byte-magazine-1983-08/1983_08_BYTE_08-08_The_C_Language#page/n190/mode/1up In about 4 weeks. “Essentially one person for a month, it was just my self.” (Ken Thompson, 1989 Interview) In pure assembler of course. http://bitsavers.trailing-edge.com/pdf/dec/pdp7/PDP-7_AsmMan.pdf Dennis Ritchie soon joined the effort. http://upload.wikimedia.org/wikipedia/commons/3/36/Ken_n_dennis.jpg While porting Unix to a PDP-11 Dennis Ken http://cm.bell-labs.com/who/dmr/picture.html they invented C, http://cm.bell-labs.com/cm/cs/who/dmr/ctut.pdf heavily inspired by Martin Richards’ portable systems programming language BCPL. GET “LIBHDR” LET START() BE WRITES(“Hello, World”) Martin Richards, Dec 2014 http://cm.bell-labs.com/cm/cs/who/dmr/ctut.pdf In 1972 Unix was rewritten in C. https://code.google.com/p/unix-jun72/source/browse/trunk/src/c/c03.c Due to Steve Johnsons Portable C Compiler, Fact: from “The Development of the C Language” by Dennis Ritchie Unix and C could be ported to all kinds of computer architectures.
    [Show full text]
  • Edsac, David Wheeler and the Cambridge Connection
    CODING EDSAC AND DAVID WHEELER EDSAC, DAVID WHEELER AND TUTORIAL THE CAMBRIDGE CONNECTION Programmers everywhere, give thanks for EDSAC and David JULIET KEMP Wheeler, first implementer of the subroutine. his month we return to the early days of first bit couldn’t be used, so an instruction consisted modern computing. Specifically, to Cambridge of a 5-bit instruction code, one unused bit, a 10-bit T(UK) in the late 1940s, and the first electronic memory address, and a marker bit that identified digital stored-program computer to see regular whether the instruction was to operate on a number service: the Electronic Delay Storage Automatic that was contained in one word or in two. This meant Calculator, or EDSAC (inspired by von Neumann’s First that EDSAC wasn’t restricted to 17-bit numbers but Draft of a Report on the EDVAC). The machine itself could also use 35-bit numbers contained in two shared a lot of features with other computers of words. Numbers were stored as binary two’s similar vintage, but it was while working on EDSAC complement. The accumulator held 71 bits, so two that David Wheeler developed the idea of subroutines 35-bit numbers could be multiplied without loss of and the first very basic assembler, making a precision. Initially it had only an accumulator and a contribution to computing that continues to this day. multiplier registers -- David Wheeler designed and EDSAC was constructed by Maurice Wilkes and his added an index register in 1953. team at the University of Cambridge Mathematical Laboratory. It first ran in May 1949 and was EDSAC and subroutines immediately operational for research.
    [Show full text]