X-NEWS: spcvxb.spc.edu alt.folklore.computers: 52304 Xref: spcuna alt.folklore.computers:52304 Newsgroups: alt.folklore.computers Path: spcuna!uunet!olivea!pagesat!ukma!news2.uunet.ca!uunet.ca!wildcan!sq!msb From: msb@sq.sq.com (Mark Brader) Subject: Re: ENIAC and stored program (Was: The Analytical Engine) Message-ID: <1993Sep17.042232.24090@sq.sq.com> Organization: SoftQuad Inc., Toronto, Canada References: <294@crayola.win.net> <747779260snz@chrism.demon.co.uk> Date: Fri, 17 Sep 93 04:22:32 GMT Lines: 882 > > > ... ENIAC was clearly a programmable calculator, but was it a > > > computer? You could reprogram it with a patch panel change, and it > > > was powerful enough that someone could have programmed a patch panel > > > to make it interpret a stored program, but to my knowledge, nobody > > > did it. > > > > > I think von Neumann, Adele Goldstine and Arthur Burks actually _did_ > > do that. ... Well, sort of. Here's the latest version of the chronology which I've posted from time to time. Note the item dated "Sep 1948". > On a wall that I used to walk past every day, at Manchester University, > there's a plaque saying "The world's first stored-program digital computer > was operated in a room on this site, 1946" (or words to that effect). I hope it says 1948, because that's when it was. # # # # # # # # What was the first computer and who built it? It turns out that this is more a question of definition than a question of fact. The computer, as we now understand the word, was very much an evolutionary development rather than a simple invention. This article traces the sequence of the most important steps in that development, and in the earlier development of digital calculators without programmability. It may help you to decide for yourself whether you think the first computer was the ABC, the V3 (aka Z3), the ENIAC, the SSEC, the Manchester Mark I, the EDSAC, or perhaps yet another machine -- and how to apportion the honor of invention among John Atanasoff, Charles Babbage, Presper Eckert, John Mauchly, Alan Turing, John von Neumann, Konrad Zuse, and others. ---------------------------------------------------- This article has evolved from an original version that I drafted in 1988, and has been posted to various Usenet groups several times. It has been prepared primarily from two sources: Bit by Bit: An Illustrated History of Computers by Stan Augarten 1984, Ticknor and Fields, New York ISBN 0-89919-268-8, 0-89919-302-1 paperback A History of Computing Technology by Michael R. Williams 1985, Prentice-Hall, Englewood Cliffs, NJ ISBN 0-13-389917-9 Either of these books is well worth a trip to the library to read. (Unfortunately, finding either one in a bookstore today would be an unlikely proposition.) Augarten is a journalist; he writes very readably, but occasionally does not say exactly what he means. Williams is a computer science professor; his book is superior in technical depth, and covers additional subject areas including analog computing and computing in ancient times. For some material I also consulted the following four books. The Dream Machine: Exploring the Computer Age by Jon Palfreman and Doron Swade BBC Books, London, 1991 ISBN 0-563-36221-9 The book of the TV series of the same title, which changed to "The Machine that Changed the World" when it was shown in the US on PBS. I enjoyed the content but found the typographic design so hideously mannered as to be distracting. This book has less technical detail than the two mentioned above, and a greater emphasis on the impact of computers on the modern world; a considerable fraction of its length is on the uninteresting :-) period after the end of this chronology. Portraits in Silicon by Robert Slater 1987, MIT Press, Cambridge, MA ISBN 0-262-69131-0 Articles about, and interviews with, 34 of the people to whom goes much of the credit for the computer world being the way it is, from Charles Babbage to Donald Knuth. The Computer Comes of Age / Ainsi naquit l'informatique by R. Moreau, English translation by J. Howlett 1981, translated 1984, MIT Press, Cambridge, MA ISBN 0-262-36103-2 Concentrating on the period from the mid 1940s to mid 1960s, and with a noticeably IBMish viewpoint. Encyclopedia of Computer Science and Engineering, 2nd ed. editor Anthony Ralston, associate Editor Edwin D. Reilly Jr. 1983, Van Nostrand Reinhold, New York ISBN 0-442-24496-7 The title is self-explanatory. Finally, the August 1988 issue of Scientific American contained an article about the Atanasoff-Berry machines. There is also a book by Clark Mollenhoff about them, some information from which was forwarded to me by email. And the February 1993 issue of Scientific American contained an article about Babbage's difference engines and the modern-day completion of one of them. ---------------------------------------------------- I've tried to mention in this chronology each machine within the relevant time period that meets the following criteria. First, it must do arithmetic digitally; this eliminates, for instance, the slide rule. Second, it must actually do arithmetic rather than just assisting the user's memory; I consider this to eliminate the abacus as well as, say, Napier's Bones. Third, it must do essentially the whole computation, with little or no assistance from the user; you could subtract 16 on a 6-digit Pascaline by adding 999984, but this doesn't mean we should say that a Pascaline could subtract. Fourth, it must work on user-supplied operands; in 1364, Giovanni de' Dondi completed a clock that used chains of various lengths to represent calendar cycles and compute the date of Easter, but this does not qualify even if the chains advanced in discrete "digital" steps (I haven't seen a description detailed enough to say whether they did). And finally, the machine must have either been technologically innovative, or else well known and influential. For certain concepts of special importance, I have also listed the first time they were *described*, although they were not implemented at that time. Where I do not describe the size of a machine, it is generally suitable for desktop use if it has no memory and is unprogrammable or if it is a small prototype, but would fill a small room if it has memory or significant programmability. The term "full-scale" is used, in contrast to "prototype", to refer to a machine with sufficient capacity to do regular useful work. For the sorts of machines described toward the end of the chronology, I generally consider them "completed" when they first run a program, even though they may be subject to further modifications and debugging. The names Tuebingen, Wuerttemberg, and Mueller should have an umlauted "u" in place of the "ue" used in this ASCII text. ---------------------------------------------------- A Chronology of Digital Computing Machines (to 1952) ---------------------------------------------------- 1623. Wilhelm Schickard (1592-1635), of Tuebingen, Wuerttemberg (now in Germany), makes his "Calculating Clock". This is a 6-digit machine that can add and subtract, and indicates overflow by ringing a bell. Mounted on the machine is a set of Napier's Rods (or Bones), a memory aid facilitating multiplications. The machine and plans are lost and forgotten in the war that is going on. The plans are finally rediscovered in 1935, only to be lost in war again, and then re-rediscovered in 1956 by the same man! The machine is reconstructed in 1960, and found to be workable. (Schickard is a friend of the astronomer Kepler.) (According to an informal communication, Schickard sometimes used the device for 7-digit calculations, counting rings of the overflow bell by putting rings on one of his, uh, personal digits...) 1644-5. Blaise Pascal (1623-1662), of Paris, makes his "Pascaline". This 5-digit machine uses a different carry mechanism from Schickard's, with rising and falling weights instead of a direct gear drive; it can be extended better to support more digits, but it cannot subtract, and probably is less reliable than Schickard's simpler method. Where Schickard's machine is forgotten -- and indeed Pascal is apparently unaware it ever existed -- Pascal's becomes well known and establishes the computing machine concept in the intellectual community. He makes more machines and sells about 10-15 of them, some supporting as many as 8 digits. (Several survive to the present day.) Patents being a thing of the future, others also sell copies of Pascal's machine. (Pascal is also the inventor of the bus.) c.1668. Sir Samuel Morland (1625-1695), of England, produces a non-decimal adding machine, suitable for use with English money. Instead of a carry mechanism, it registers carries on auxiliary dials, from which the user must reenter them as addends. 1674. Gottfried Wilhelm von Leibniz (1646-1716), of Leipzig, designs his "Stepped Reckoner", which is constructed by a man named Olivier, of Paris. It uses a movable carriage so that it can multiply, with operands of up to 5 and 12 digits and a product of up to 16. The user has to turn a crank once for each unit in each digit in the multiplier; a fluted drum translates the turns into additions. But the carry mechanism requires user intervention, and doesn't really work in all cases anyway. Leibniz's machine doesn't get forgotten, but it does get misplaced in an attic within a few years -- and stays there until 1879 when it is noticed by a man working on the leaky roof! (Leibniz, or Leibnitz, is also the co-inventor of calculus.) 1775. Charles, the third Earl Stanhope, of England, makes a successful multiplying calculator similar to Leibniz's. 1770-6. Mathieus Hahn, somewhere in what is now Germany, also makes a successful multiplying calculator. 1786. J. H. Mueller, of the Hessian army, conceives the idea of what came to be called a "difference engine". That's a special-purpose calculator for tabulating values of a polynomial, given the differences between certain values so that the polynomial is uniquely specified; it's useful for any function that can be approximated by a polynomial over suitable intervals. Mueller's attempt to raise funds fails and the project is forgotten. 1820. Charles Xavier Thomas de Colmar (1785-1870), of France, makes his "Arithmometer", the first mass-produced calculator. It does multiplication using the same general approach as Leibniz's calculator; with assistance from the user it can also do division. It is also the most reliable calculator yet. Machines of this general design, large enough to occupy most of a desktop, continue to be sold for about 90 years. 1822. Charles Babbage (1792-1871), of London, having reinvented the difference engine, begins his (government-funded) project to build one by constructing a 6-digit calculator using gear technology similar to that planned for the difference engine. 1832. Babbage and Joseph Clement produce a prototype segment of his difference engine, which operates on 6-digit numbers and 2nd-order differences (i.e. can tabulate quadratic polynomials). The complete engine, which would be room-sized, is planned to be able to operate both on 6th-order differences with numbers of about 20 digits, and on 3rd-order differences with numbers of 30 digits. Each addition would be done in two phases, the second one taking care of any carries generated in the first. The output digits would be punched into a soft metal plate, from which a plate for a printing press could be made. But there are various difficulties, and no more than this prototype piece is ever assembled. 1834. George Scheutz, of Stockholm, produces a small difference engine in wood, after reading a brief description of Babbage's project. 1834. Babbage conceives, and begins to design, his "Analytical Engine". Whether or not this machine, if built, would have constituted a computer depends on exactly how "computer" is being defined. One essential feature of present-day computers is absent from the design: the "stored-program" concept, which is necessary for implementing a compiler. The program would have been in read-only memory, specifically in the form of punch cards. (In this chronology, such machines will be called "programmable calculators".) Babbage continues to work on the design for years, though after about 1840 the changes are minor. The machine would operate on 40-digit numbers; the "mill" (CPU) would have 2 main accumulators and some auxiliary ones for specific purposes, while the "store" (memory) would hold perhaps 100 more numbers. There would be several punch card readers, for both programs and data; the cards would be chained and the motion of each chain could be reversed. The machine would be able to perform conditional jumps. There would also be a form of microcoding: the meaning of instructions would depend on the positioning of metal studs in a slotted barrel, called the "control barrel". The machine would do an addition in 3 seconds and a multiplication or division in 2-4 minutes. 1842. Babbage's difference engine project is officially canceled. (The cost overruns have been considerable, and Babbage is spending too much time on redesigning the Analytical Engine.) 1843. Scheutz and his son Edvard Scheutz produce a 3rd-order difference engine with printer, and the Swedish government agrees to fund their next development. 1847-9. Babbage designs an improved, simpler difference engine, which will operate on 7th-order differences and 31-digit numbers, but nobody is interested in paying to have it built. (In 1989-91, however, a team at London's Science Museum will do just that. They will use components of modern construction, but with tolerances no better than Clement could have provided... and, after a bit of tinkering and detail-debugging, they will find that the machine does indeed work.) 1853. To Babbage's delight, the Scheutzes complete the first full-scale difference engine, which they call a Tabul- ating Machine. It operates on 15-digit numbers and 4th-order differences, and produces printed output as Babbage's would have. A second machine is later built to the same design by the firm of Brian Donkin of London. 1858. The first Tabulating Machine is bought by the Dudley Observatory in Albany, New York, and the second one by the British government. The Albany machine is used to produce a set of astronomical tables; but the observatory's director is then fired for this extravagant purchase, and the machine is never seriously used again, eventually ending up in a museum. The second machine, however, has a long and useful life. 1871. Babbage produces a prototype section of the Analytical Engine's mill and printer. 1878. Ramon Verea, living in New York City, invents a calculator with an internal multiplication table; this is much faster than the shifting carriage or other digital methods. He isn't interested in putting it into production; he just wants to show that a Spaniard can invent as well as an American. 1879. A committee investigates the feasibility of completing the Analytical Engine and concludes that it is impossible now that Babbage is dead. The project is then largely forgotten and is unknown to most of the people mentioned in the last part of this chronology -- though Howard Aiken is an exception. 1885. A multiplying calculator more compact than the Arithmometer enters mass production. The design is the independent, and more or less simultaneous, invention of Frank S. Baldwin, of the United States, and T. Odhner, a Swede living in Russia. The fluted drums are replaced by a "variable-toothed gear" design: a disk with radial pegs that can be made to protrude or retract from it. 1886. Dorr E. Felt (1862-1930), of Chicago, makes his "Comptometer". This is the first calculator where the operands are entered merely by pressing keys rather than having to be, for example, dialed in. It is feasible because of Felt's invention of a carry mechanism fast enough to act while the keys return from being pressed. 1889. Felt invents the first printing desk calculator. 1890. US Census results are tabulated for the first time with sig- nificant mechanical aid: the punch card tabulators of Herman Hollerith (1860-1929) of MIT, Cambridge, Mass. This is the start of the punch card industry. The cost of the census tabulation is 98% *higher* than the previous one, in part because of the temptation to use the machines to the fullest and tabulate more data than formerly possible, but the tabulation is completed in a much shorter time. Another precedent is that the cards are read electrically. (Contrary to popular impression and to earlier versions of this chronology, Hollerith's cards of 1890 are not the same size as US paper money of the time; they are much smaller. Other sizes of punch cards will also appear within a few years.) 1892. William S. Burroughs (1857-1898), of St. Louis, invents a machine similar to Felt's but more robust, and this is the one that really starts the office calculator industry. (This machine is still hand powered, but it won't be many years before electric calculators appear.) 1906. Henry Babbage, Charles's son, with the help of the firm of R. W. Munro, completes the mill of his father's Analytical Engine, just to show that it would have worked. It does. The complete machine is never produced. 1919. W. H. Eccles and F. W. Jordan publish the first flip-flop circuit design. 1931-2. E. Wynn-Williams, at Cambridge, England, uses thyratron tubes to construct a binary digital counter for use in connection with physics experiments. 1935. International Business Machines introduces the "IBM 601", a punch card machine with an arithmetic unit based on relays and capable of doing a multiplication in 1 second. The machine becomes important both in scientific and commercial computation, and about 1500 of them are eventually made. 1937. George Stibitz (c.1910-) of the Bell Telephone Laboratories (Bell Labs), New York City, constructs a demonstration 1-bit binary adder using relays. 1937. Alan M. Turing (1912-1954), of Cambridge University, England, publishes a paper on "computable numbers". This paper solves a mathematical problem, but the solution is achieved by reasoning (as a mathematical device) about the theoretical simplified computer known today as a Turing machine. 1938. Claude E. Shannon (1916-) publishes a paper on the implementation of symbolic logic using relays. 1938. Konrad Zuse (1910-) of Berlin, with some assistance from Helmut Schreyer, completes a prototype mechanical binary programmable calculator, originally called the "V1" but retroactively renamed "Z1" after the war. It works with floating point numbers having a 7-bit exponent, 16-bit mantissa, and a sign bit. The memory uses sliding metal parts to store 16 such numbers, and works well; but the arithmetic unit is less successful. The program is read from punched tape -- not paper tape, but discarded 35 mm movie film. Data values can be entered from a numeric keyboard, and outputs are displayed on electric lamps. Nov 1939. John V. Atanasoff (1903-) and graduate student Clifford Berry (?-1963), of Iowa State College (now the Iowa State University), Ames, Iowa, complete a prototype 16-bit adder. This is the first machine to calculate using vacuum tubes. 1939. Zuse and Schreyer begin work on the "V2" (later "Z2"), which will marry the Z1's existing mechanical memory unit to a new arithmetic unit using relay logic. The project is interrupted for a year when Zuse is drafted. (Zuse is a friend of Wernher von Braun, who will later develop the *other* "V2", and after that, play a key role in the US space program.) 1939-40. Schreyer completes a prototype 10-bit adder using vacuum tubes, and a prototype memory using neon lamps. Jan 1940. At Bell Labs, Samuel Williams and Stibitz complete a calculator which can operate on complex numbers, and give it the imaginative name of the "Complex Number Calculator"; it is later known as the "Model I Relay Calculator". It uses telephone switching parts for logic: 450 relays and 10 crossbar switches. Numbers are represented in "plus 3 BCD"; that is, for each decimal digit, 0 is represented by binary 0011, 1 by 0100, and so on up to 1100 for 9; this scheme requires fewer relays than straight BCD. Rather than requiring users to come to the machine to use it, the calculator is provided with three remote keyboards, at various places in the building, in the form of teletypes. Only one can be used at a time, and the output is automatically displayed on the same one. In September 1940, a teletype is set up at a mathematical conference in Hanover, New Hampshire, with a connection to New York, and those attending the conference can use the machine remotely. 1940. Zuse is released from the army and completes the Z2. It works better than the Z1, but isn't reliable enough. (Later he is drafted again, and released again.) Summer 1941. Atanasoff and Berry complete a special-purpose calcu- lator for solving systems of simultaneous linear equations, later called the "ABC" ("Atanasoff-Berry Computer"). This has 60 50-bit words of memory in the form of capacitors (with refresh circuits -- the first regenerative memory) mounted on two revolving drums. The clock speed is 60 Hz, and an addition takes 1 second. For secondary memory it uses punch cards, moved around by the user. The holes are not actually punched in the cards, but burned. The punch card system's error rate is never reduced beyond 0.001%, and this isn't really good enough. (Atanasoff will leave Iowa State after the US enters the war, and this will end his work on digital computing machines.) Dec 1941. Now working with limited backing from the DVL (German Aero- nautical Research Institute), Zuse completes the "V3" (later "Z3"): the first operational programmable calculator. It works with floating point numbers having a 7-bit exponent, 14-bit mantissa (with a "1" bit automatically prefixed unless the number is 0), and a sign bit. The memory holds 64 of these words and therefore requires over 1400 relays; there are 1200 more in the arithmetic and control units. The program, input, and output are implemented as described above for the Z1. Conditional jumps are not available. The machine can do 3-4 additions per second, and takes 3-5 seconds for a multiplication. It is a marginal decision whether to call the Z3 a prototype; with its small memory it is certainly not very useful on the equation- solving problems that the DVL was mostly interested in. Jan 1943. Howard H. Aiken (1900-1973) and his team at Harvard University, Cambridge, Mass. (with IBM's backing), complete the "ASCC Mark I" ("Automatic Sequence-Controlled Calculator Mark I"), also called the "Harvard Mark I". This electromechanical machine is the first programmable calculator to be widely known: Aiken is to Zuse as Pascal to Schickard. The machine is 51 feet long, weighs 5 tons, and incorporates 750,000 parts. It includes 72 accumulators, each incorporating its own arith- metic unit as well as a mechanical register with a capacity of 23 digits plus sign. (See the ENIAC entry, below, for a more detailed description of such an architecture.) The arithmetic is fixed-point, with a plugboard setting determining the number of decimal places. I/O facilities include card readers, a card punch, paper tape readers, and typewriters. There are 60 sets of rotary switches, each of which can be used as a constant register -- sort of a mechanical read-only memory. The program is read from one paper tape; data can be read from the other tapes, or the card readers, or from the constant registers. Conditional jumps are not available. However, in later years the machine is modified to support multiple paper tape readers for the program, with the transfer from one to another being conditional, sort of like a conditional subroutine call. Another addition allows the provision of plugboard-wired subroutines callable from the tape. Apr 1943. Max Newman, Wynn-Williams, and their team at the secret Government Code and Cypher School, Bletchley Park, Bletchley, England, complete the "Heath Robinson". This is a specialized machine for cipher-breaking, not a general-purpose calculator or computer but some sort of logic device, using a combination of electronics and relay logic. It reads data optically at 2000 characters per second from 2 closed loops of paper tape, each typically about 1000 characters long. (Turing was a student of Newman's.) (The secrecy that surrounded this machine and its successors at Bletchley Park will still be partially in effect at the time of writing, hence the vague description. Newman knew Turing from Cambridge, and had been the first person to see a draft of Turing's 1937 paper. Heath Robinson is the name of a British cartoonist known for drawings of comical machines, like the American Rube Goldberg. Two later machines in the series will be named for London stores with "Robinson" in their names!) Sep 1943. Williams and Stibitz complete the "Relay Interpolator", later called the "Model II Relay Calculator". This is a programmable calculator; again, the program and data are read from paper tapes. An innovative feature is that, for greater reliability, numbers are represented in a biquinary format using 7 relays for each digit, of which exactly 2 should be "on": 01 00001 for 0, 01 00010 for 1, and so on up to 10 10000 for 9. (Some of the later machines in this series used the biquinary notation for the digits of floating-point numbers.) Dec 1943. Tommy Flowers and his team at Bletchley Park complete the first "Colossus". This successor to the "Robinson" series machines is entirely electronic, incorporating 2400 vacuum tubes for logic. It has 5 paper tape loop readers, each working at 5000 characters per second. (10 Colossi will eventually be built. Turing also has an important role at Bletchley Park, but does not work directly on the machines.) 1944-5. Zuse almost completes his first full-scale machine, the "V4" (later "Z4"), which resembles his earlier designs. Its memory reverts to the Z1's mechanical design, storing 1000 words of 32 bits in less then a cubic meter; the equivalent in relays would have filled a large room. As the war begins to go very badly for Germany, Zuse's work is dis- rupted several times, and then abandoned for the duration. An air raid had destroyed the Z3 in 1943, but the incomplete Z4 survives the war's end in a basement. 1945. Zuse invents a programming language called Plankalkul. Jun 1945. John von Neumann (1903-1957), having joined the ENIAC team, drafts a report describing the future computer eventually built as the "EDVAC" ("Electronic Discrete Variable Automatic Computer" (!)); this is the first description of the design of a stored-program computer, and gives rise to the term "von Neumann computer". The first draft of the report fails to credit other team members such as Eckert and Mauchly; when this version becomes widely circulated, von Neumann gets somewhat too much credit for the design. The final version corrects the oversight, but too late. (Von Neumann, also noted for his mental calculating ability, is the only one of the principal computer pioneers in the US familiar with Turing's 1937 paper.) Nov 1945. John W. Mauchly (pronounced Mawkly; 1907-80) and J. Presper Eckert (1919-) and their team at the Moore School of Electrical Engineering, of the University of Pennsylvania, Philadelphia, complete a secret project for the US Army's Ballistics Research Lab: a program- mable calculator called the "ENIAC" ("Electronic Numerator, Integrator, Analyzer, and Computer"). The ENIAC's architecture resembles that of the Harvard Mark I, but its components are entirely electronic, incorporating 17,468 vacuum tubes. The machine weighs 30 tons, covers about 1000 square feet of floor, and consumes 130 or 140 kilowatts of electricity. The machine incorporates 20 accumulators (the original plan was for 4). The accumulators and other units are all connected by several data buses, and a set of "program lines" for synchronization. Each accum- ulator stores a 10-digit number, using 10 bits to represent each digit, and also incorporates circuits to add a number from a bus to the stored number, and to transmit the stored number or its complement to a bus. A separate unit can perform multiplication (in about 3 milliseconds), while another does division and square roots; the inputs and outputs for both these units use the buses. There are constant registers, as on the Harvard Mark I: 104 12-digit registers forming an array called the "function table". 100 of these registers are directly addressable by a 2-digit number from a bus (the others are used for interpolations). Finally, a card reader is available to input data values, and there is a card punch for output. The program is set up on a plugboard -- this is considered reasonable since the same or similar program would generally be used for weeks at a time. For example, connecting certain sockets would cause accumulator 1 to transmit its contents onto data bus 1 when a pulse arrived on program line 1; meanwhile several accumulators could be adding the value from that data bus to their stored value, while others could be working independently. The program lines are pulsed under the control of a master unit, which can perform iterations. The ENIAC's clock speed is 100 kHz. Mauchly and Eckert apply for a patent. The university disputes this at first, but they settle. The patent is finally granted in 1964, but is overturned in 1973, in part because of the previous work by Atanasoff, with which Mauchly was acquainted. (The BRL wanted the ENIAC to use on the difficult problem of making aiming tables for use by artillerymen. It isn't ready in time for the war, and overruns its original budget by 225% -- problems that will face Eckert and Mauchly again on later projects.) Feb 1946. The ENIAC is revealed to the public. A panel of lights is added to help show reporters how fast the machine is and what it is doing; and apparently Hollywood takes note. Jul-Aug 1946. The Moore School gives a course on "Theory and Techniques for Design of Electronic Computers"; lectures are given by Eckert, Mauchly, Stibitz, von Neumann, and Aiken among others. The course leads to several projects being started, among them the EDSAC. Jul 1947. Aiken and his team complete the "Harvard Mark II", a large programmable calculator using relays both for its 50 floating- point registers and for the arithmetic unit, 13,000 of them in all. Sep 1947. A moth (?-1947) makes the mistake of flying into the Harvard Mark II. A whimsical technician makes the logbook entry "first actual case of bug being found", and annotates it by taping down the remains of the moth. (The term "bug" was of course already in use; that's why it's funny.) 1947. Frederick Viehe (?-1960), of Los Angeles, applies for a patent on an invention which is to use magnetic core memory. 1947. Aiken predicts that the United States will need a total of six electronic digital computers. c.1947. The magnetic drum memory is independently invented by several people, and the first examples are constructed. (As noted below, some early machines will use drums as main memory rather than secondary memory.) Jan 1948. Wallace Eckert (1902-1971, no relation to Presper Eckert) of IBM, with his team, completes the "SSEC" ("Selective Sequence Electronic Calculator"). This technological hybrid has 8 vacuum tube registers, 150 words of relay memory, and 66 paper tape loops storing a total of 20,000 words. The word size is 20 digits, stored in BCD in the registers. As with the Harvard Mark I in its later form, the machine can be switched to read instructions from any of the paper tapes. There is also some use of plugboards in its programming. But it can also cache some instructions in memory and read them from there; thus, in effect, it can operate either as a stored-program computer (with a very small program memory) or not. Because it can do this, IBM's point of view is that this is the first computer. Jun 1948. Newman, Freddie C. Williams, and their team at Manchester University, Manchester, England, complete a prototype machine, the "Mark I" (also called the "Manchester Mark I"). This is the first machine that everyone would call a computer, because it's the first with a true stored-program capability. It uses a new type of memory developed by F. C. Williams (possibly after an original suggestion by Presper Eckert), which uses the residual charges left on the screen of a CRT after the electron beam has been fired at it. (The bits are read by firing another beam through them and reading the voltage at an electrode beyond the screen.) This is a little unreliable but is fast, and also relatively cheap because it can use existing CRT designs; and it is much more compact than any other memory then existing. The Mark I's main memory of 32 32-bit words occupies a single Williams tube. (Other CRTs on the machine are less densely used: one contains only an accumulator.) The Mark I's programs are initially entered in binary on a keyboard, and the output is read in binary from another CRT. Later Turing joins the team (see also the "Pilot ACE", below) and devises a primi- tive form of assembly language, one of several developed at about the same time in different places. Sep 1948. The ENIAC is improved, using ideas from Richard F. Clipper of the BRL and Nicholas Metropolis of Los Alamos. Each program line is permanently wired for a different operation, and a new converter unit allows them to be addressed by a program, the way the function table can -- thus implementing, in effect, opcodes. With this change, the program can now be entered via the *function table*. (This conversion will sometimes be described as making the ENIAC into a stored-program computer, but the program memory is still read-only. However, setting up a program now takes a matter of hours, rather than days as before.) Fall 1948. IBM introduces the "IBM 604", a programmable calculator and card punch using vacuum tubes. It can read a card, perform up to 60 arithmetic operations in 80 milliseconds, and punch the results on the same card. The programming is by plugboard. All machines first mentioned in the chronology from here on are stored-program computers. 1949-51. Jay W. Forrester and his team at MIT construct the "Whirlwind" for the US Navy's Office of Research and Inventions. The vague date is because its advance to full-time operational status is gradual. Its original form has 3300 tubes and 8900 crystal diodes. It occupies 2500 square feet of floor. Its 2048 16-bit words of CRT memory use up $32,000 worth of tubes each month. There is also a graphical I/O device consisting of a CRT (only one dot can be displayed at a time) and a light pen. This allows the machine to be used for air traffic control. The Whirlwind is the first computer designed for real-time work; it can do 500,000 additions or 50,000 multiplications per second. Spring 1949. Forrester conceives the idea of magnetic core memory as it is to become commonly used, with a grid of wires used to address the cores. The first practical form, in 1952-53, will replace the Whirlwind's CRT memory and render obsolete all types of main memory then existing. April 1949. The Manchester Mark I, its main memory now upgraded to 128 40-bit words (on two CRTs), acquires a secondary memory in the form of a magnetic drum holding a further 1024 words. Also at about this time, two index registers are added to the machine. May 1949. Maurice Wilkes (1913-) and his team at Cambridge Uni- versity complete the "EDSAC" ("Electronic Delay Storage Automatic Computer"), which is closely based on the EDVAC design report from von Neumann's group -- Wilkes had attended the 1946 Moore School course. The project is supported both financially and with technical personnel from J. Lyons & Co. Ltd., a large British firm in the food and restaurant business. This is the first full-scale operational stored-program computer, and is therefore the final candidate for the title of "the first computer". Its main memory is of a type that had existed for some years, but had not been used for a computing machine: the "ultrasonic delay line" memory. It had been invented originally by William Shockley of Bell Labs (also one of the co-inventors of the transistor, in 1948), and Presper Eckert had made an improved version in connection with radar systems. It works by repeatedly converting from the usual electrical data pulses to ultrasonic pulses directed along, typical- ly, the length of a tank of mercury; on arrival at the other end, the pulses are converted back to electrical form. The memory must be maintained at a particular temperature, and only the few bits currently in electrical form are accessible. In the EDSAC, 16 tanks of mercury give a total of 256 35-bit words (or 512 17-bit words). The clock speed of the EDSAC is 500 kHz; most instructions take about 1500 ms to execute. Its I/O is by paper tape, and a set of constant registers is provided for booting. The software eventually supports the concept of relocatable proce- dures with addresses bound at load time. Aug 1949. Presper Eckert and Mauchly, having formed their own company, complete the "BINAC" ("Binary Automatic Computer") for the US Air Force. Designed as a first step to in-flight computers, this has dual (redundant) processors each with 700 tubes and 512 31-bit words of memory. Each processor occupies only 4 square feet of floor space and can do 3500 additions or 1000 multiplications per second. The designers are thinking mostly of their forthcoming "UNIVAC" ("Universal Automatic Computer") and don't spend much time making the BINAC as reliable as it should be, but the tandem processors compensate somewhat. Sep 1949. Aiken's team completes the "Harvard Mark III". This computer has separate magnetic drum memories for data and instructions. Only some of the data drums can be addressed by the CPU; the others serve as secondary memory. The total memory capacity is 4000 instructions, 350 16-bit words in the main data drums, and 4000 words more in the secondary memory. The machine contains over 5000 vacuum tubes and 2000 relays. May 1950. A group at the National Physical Laboratory, Teddington, England, complete the "Pilot ACE" (pilot project for an "Automatic Computing Engine"). This had been largely designed by Turing when he was there in 1945-47; he had left and gone to Manches- ter because the designs were not being implemented. The main memory of this computer is in the form of 200 separate ultrasonic delay lines, thus allowing better addressability than other ultrasonic- based machines. An additional group of short delay lines serve as registers, each of which performs a particular operation automatic- ally on a number directed to it. Most operations then consist simply of routing a number, or a counted stream of numbers, from one delay line to another. Punch cards are used for input and output; a drum will be added later for secondary memory. (A successor to this machine will be named "DEUCE".) 1950. Zuse's Z4 is finally completed and goes into service at ETH (Federal Polytechical Institute) in Zurich, Switzerland. The design is modified so that it can do conditional jumps. The machine also implements a form of intstruction pipelining, with the program tape being read 2 instructions ahead and various optimiz- ations performed automatically. The Z4 remains in use for 5 years at ETH and 5 more in France, and Zuse soon begins making his machines commercially. He eventually sells some 300 machines before being bought out by Siemens. 1950. Douglas Hartree (the leading expert in the country on the specialized computing machines called differential analyzers) gives his professional opinion to Ferranti Ltd., of Manchester: as the 3 existing computer projects will suffice to handle all the calculations that will ever be needed in England, Ferranti would be well advised to drop the idea of making computers for commercial sale. Feb 1951. A rather more optimistic Ferranti Ltd. completes the first commercial computer. This is yet another "Mark I", but is also known as the "Manchester Mark II", "MUDC", "MUEDC", and "MADAM"! It has 256 40-bit words of main memory and 16K words of drum, and includes 8 index registers. An eventual total of 8 of these machines are sold. (The index register's contents are added, not to the address taken from an instruction, but to the entire instruction, thus potentially changing the opcode! Calling Mel...) Mar 1951. Presper Eckert and Mauchly, having sold their company to Remington Rand, complete the first "UNIVAC", which is the first US commercial computer. (The US census department is the first customer.) It has 1000 12-digit words of ultrasonic delay line memory and can do 8333 additions or 555 multiplications per second; it con- tains 5000 tubes and covers 200 square feet of floor. For secondary memory it uses magnetic tapes of nickel-coated bronze; these are 1/2 inch wide, and store 128 characters per inch. Fall 1951. The Lyons company receives its reward for supporting the EDSAC, as T. Raymond Thompson, John Simmons, and their team complete the "LEO I" ("Lyons Electronic Office I"), which is modeled closely after the EDSAC. Its ultrasonic memory is 4 times as large, and avoids the usual temperature dependency by using one delay line as a master and synchronizing the others to it instead of to a clock. The Lyons company wants the LEO I for its own use -- payroll, inven- tory, and so on; it is the first computer used for commercial calcul- ations. But other companies now turn out to be interested in the LEO, and Lyons will soon find itself in the computer manufacturing business as well. 1951. Grace Murray Hopper (1906-1992), of Remington Rand, invents the modern concept of the compiler. 1952. The EDVAC is finally completed. It has 4000 tubes, 10,000 crystal diodes, and 1024 44-bit words of ultrasonic memory. Its clock speed is 1 MHz. 1952. The IBM "Defense Calculator", later renamed the "701", the first IBM computer unless you count the SSEC, enters production at Poughkeepsie, New York. (The first one is delivered in March 1953; 19 are sold altogether. The machine is available with 2048 or 4096 36-bit words of CRT memory; it does 2200 multipli- cations per second.) (IBM stayed out of the computer market for some time because its president, Thomas Watson Sr., didn't want the company competing against its own business machines. His son and eventual successor, Thomas Jr., disagreed, and realized that if it was the US *military* that wanted to buy a computer, Thomas Sr. would not say no to them.) 1952. Grace Murray Hopper implements the first compiler, the "A-0". (But as with "first computer", this is a somewhat arbitrary designation.) ---------------------------------------------------- A few things have happened since then, too, but this margin is too narrow... -- Mark Brader, SoftQuad Inc., Toronto, utzoo!sq!msb, msb@sq.com Nature is often much more interesting than we would like her to be. However when we finally do understand something, we strike our foreheads and cry "Of course!", and then marvel at how beautifully simple it was all the time. -- Leigh Palmer This article is in the public domain.