Genesis
<BACK
The age of chivalry is gone.That of sophisters, economists, and calculators, has succeeded;
and the glory of Europe is extinguished for ever" Edmund Burke,1792
1.1 Before 1940, a 'computer' was generally taken to mean a person performing calculations using pencil and paper with the aid, if they were fortunate, of a hand-cranked mechanical calculator. After about 1950 it would have been taken usually to mean a ubiquitous autonomous device performing calculations automatically without further operator intervention once the required action was specified.
1.2 The 1940 vintage calculator had a long pedigree stretching back to the adding machines of Wilhem Schikard (1623), which quickly disappeared from view, Blaise Pascal (1642), which was sold commercially, and the Leibnitz Stepped Reckoner (1676), which implemented all four basic arithmetic operations. These all offered significant improvement over manual arithmetic in speed and vulnerability to error in the 'mental arithmetic' elements of usual pencil-and-paper methods. They could, of course, be used for more elaborate calculations but required intermediate results to be recorded by the operator, so transcription errors were not eliminated, and the sequence of operations required had to be determined by the user.
1.3 The post 1950 computer is basically a universal machine that can solve, in principle, any problem that has a solution provided it has suitable peripheral units to communicate with the human world eg it might be programmed to compose music but cannot perform it without some means of producing sound. In some cases computers have been designed to be restricted to specific tasks but a Swiss Army knife used only for peeling potatoes remains a Swiss Army knife. In the course of calculator development the distinction between computers and programmable calculators became slightly blurred and a convention sometimes suggested is that devices which have read-only program storage are calculators and those which have read-write program storage are computers. The distinction is not fundamental since in principle the device could call in pre-prepared read-only programs conditionally depending on the current state of the computation but in practice the difference in speed is great enough to make them appear different species.
2.1 The Victorian era saw a conceptual quantum jump in automated calculation through the work of Charles Babbage and his associate Ada, Countess Lovelace. Somewhat ironically, through a combination of the limitations of Victorian precision engineering and bureaucratic problems associated with Government funding, a full working version of any of his machines was not built until 1991, the bi-centenary of Babbage's birth.
2.2 Babbage's first project, the Difference Engine, was inspired by a program initiated in 1820 by the Astronomical Society of London to eliminate errors in the 'Positions of Stars' tables produced by the Greenwich Royal Observatory. This used the traditional method of comparing two (or more if needed) independently calculated sets of values and, having been involved, Babbage resolved (in 1821) to find a less laborious approach. His idea was an elaboration of the conventional calculator to generate tables of the relevant function at equal intervals using the method of finite differences - a tried and tested method in manual calculations which involves only additions. By incorporating a number of coupled adding machines to calculate successive values for the various difference orders he avoided the need to record intermediate results. He also proposed a scheme for automatic printing of the results, thus eliminating the remaining major source of errors. A successful experimental model was completed in May 1822 which impressed most friends and colleagues at Cambridge with its speed and accuracy, and in 1824 attracted Government and Royal Society support for construction of a larger version to produce a range of tables for astronomical and navigation purposes. A working section (1/7) of this was finally produced in 1832 but the full size version was never completed
2.3 In eliminating the need for operator intervention once the problem has been set up the Difference Engine matched the modern computer but at first sight it appears merely a special purpose calculator (as indeed was first intended). It does however have some claim to universality, in that although it can only calculate functions of a single variable, it can calculate any differentiable function (1) given that it has enough 'memory' and a long enough time ie the same restrictions as for the modern computer
2.4 The Difference Engine did not completely eliminate manual calculation (and the possibility of mental arithmetic errors) since manual calculation of a (much smaller) number of values was required to establish the initial differences. As construction of the full machine ground slowly to a halt Babbage's attention was diverted to a new idea - the Analytic Engine. This caused some confusion among his peers and Government supporters since although using many ideas from the Difference Engine it was a fundamentally different and much more powerful concept: this confusion probably played some part in the decision to suspend construction of the full Difference Engine in 1834.
2.5 The kernel of the idea was that relatively minor changes to the Difference Engine components would allow intermediate results to be saved and fed back into the calculation at a later stage. Many of the functions of classical analysis, whose use at the time depended on tables of their values, can be generated by recursion formulae involving only a few successive values of the function: this approach greatly increases the scope of the machine and, in the event, established many of the concepts found in modern digital computers.
2.6 To achieve this Babbage extended the calculation capabilities to implement all four basic arithmetic operations and installed these in a single unit, the 'mill' controlled by an external 'operations' program which guided its actions, corresponding to the central processing unit in modern machines. Feeding some of these ideas back into the Difference Engine concept somewhat surprisingly resulted in a simplified design which was in fact the machine produced for the Science Museum in 1991. As with the Difference Engine, the Analytic Engine was never completed although Charles' son Henry built a working 'mill' unit in 1906 to demonstrate its viability.
2.7 In an era of amateur scientists (2) and no formal education facilities for women it is difficult to assess the depth of the association between Charles Babbage and Ada, Countess Lovelace. Babbage was Lucasian Professor of Mathematics at Cambridge, unquestionably professional, while Ada was a daughter of Lord Byron, born in 1815 of a brief marriage and. at the instigation of her mother, tutored at home in mathematics, philosophy, and music. At the age of 17 she was introduced to Mary Somerville, translator of the works of Laplace, who encouraged her interest in mathematics, and through her met Babbage socially in 1834 at a time when his attention was focused on ideas for the Analytic Engine. Even at age 18 her mathematical understanding sufficed for her to appreciate its significance and a life-long correspondence on mathematics, logic, and the Analytic Engine ensued.
2.8 In the autumn of 1841 Babbage presented a report on progress with the Analytic Engine to a symposium in Turin and in 1842 an Italian military engineer (L F Menabrea) published a report in the Bibliotheque Universelle de Genève (in French). Ada translated this and it was published in 1844 in Taylor's Scientific Memoirs together with (at Babbage's suggestion) her own notes, which were three times as long as the original report. The notes appear as the work of an accomplished mathematician with a deep knowledge of the project and include a prescient analysis of its future potential. (3)
2.9 In retrospect the project was fundamentally sound but failed for lack of adequate manufacturing technologies. The design anticipated most of the basic concepts found in the standard von Neumann architecture used by current computers - central processing unit, data memory unit, stored programs, conditional execution, program loops, and subroutines. The extent which these ideas influenced the eventual development of digital electronic computers is not clear - the early development of functional computers was obscured by the fog of World War II
(4) when details were either destroyed or kept secret until long after the Computer Age was fully established.
3.1 In the early years of the 20th Century 'analogue computers', devices capable of electrical simulation of mathematical models of some practical problems appeared and contributed indirectly to the development the modern digital computer. The problems that could be handled were limited and in effect the machines had to be specially built for each problem. The accuracy was low but, following the discovery of the electron in1897, they led to major advances in electronics, in the shape of thermionic valves, cathode ray tubes, and the electron microscope, establishing a technology adequate for the subsequent early developments in general purpose computers. Ultimately the thermionic valve developments also allowed improvements in the analogue computers themselves, giving greater flexibility. These persisted into the 1960's and, for example, played a major role in the rapid advances in aircraft design but were eventually superseded by more accurate and speedy digital computers as these became available.
4.1 Another milestone in the history of universal computers was the Paris International Congress of Mathematicians in 1900, which was concerned to repair a number of cracks (5) that had appeared in the foundations of mathematics. At the time these were customarily based on the concept of number and the axioms of arithmetic but the consensus was that a safer approach would be to use set theory and classical logic to define the concept of number rigorously and to insist on rigorous proof of any theorems developed, particularly in arithmetic. An immediate result was to focus attention on expressing arithmetical operations in terms of logical connectives (ie an essentially binary system) and this led ultimately to great simplifications in computing hardware together with increased reliability in comparison with decimal systems which had until then been tacitly assumed.
4.2 The burden of providing rigorous proofs proved onerous and some began to question whether it was necessarily possible to find a proof of theorems even when they were true. The issue was settled by Kurt Godel in 1930 who reduced the foundations to rubble by showing that (a) a proof of any logical proposition that is true always exists however hard to find and (b) any system strong enough to contain arithmetic (requiring additional axioms) would contain undecidable propositions which could never be resolved by man or machine. In a 1936 paper Alan Turing described a very simple (hypothetical) machine which, given sufficient time and memory, could automatically resolve any decidable logical proposition (into a 'true' or 'false' result) and similar results were reached independently by Alonzo Church, using a different approach, in the same year. The resulting Church-Turing Thesis had a profound impact on the development of universal computers since it implied that a 'Turing machine' could emulate any other effective computer ie that any computer has the same ultimate capability as any other and the only differences lie in cost, speed, or convenience. The designer of a machine need no longer check that it would be capable of performing all the multifarious manipulations that might be required - if it worked at all it was fundamentally capable of any of them. The basic issue (6) was whether it gave the functionality required with acceptable convenience and economy.
5.1 Development in the 1930's focused mainly on special purpose and programmable calculators and saw the gradual inclusion of electromagnetic relays and punched tape equipment generated by the rapid spread of telephone and teletype networks. Significant advances towards the universal computer were made in 1938 viz a paper by Claude Shannon on the implementation of symbolic logic using relays and the completion of the Z1 binary programmable calculator by Konrad Zuse in Berlin. This machine used binary relay logic together with keyboard data input and punched tape program input and was the first of a series which extended to the Z4, completed in 1944 and operating in Zurich in 1950 after being lost in the confusion at the end of WWII for years
5.2 The 1940's saw a rapid acceleration in progress (due mainly to the pressures of war) and from 1939 Alan Turing was active at the Bletchley Park code-breaking establishment. This produced a series of machines, initially with relay logic and, from 1943, a series of entirely electronic machine (Colossus). It seems that these should probably be considered programmable calculators but the machines and all documentation were destroyed at the end of the war so there is no conclusive information on what they did or how they did it.
5.3 In 1943 an IBM-backed team at Harvard under Howard Aitken produced the Harvard Mk I programmable calculator which used relay logic with paper tape data input and a combination of plug-board and paper tape program input. It was however something of a throw-back to the Babbage Difference Engine concept in that the arithmetic units were distributed rather than implemented in a central unit under coordinated control and conditional program jumps were not possible. An all-electronic version with similar architecture, ENIAC, was produced at the end of 1945 - this weighed 30 tons, occupied1000 sq.ft. and consumed 150 kW of power.
5.4 With the end of World War II security constraints were relaxed and restoration of the traditional academic freedom of exchange fueled a further acceleration in progress. In 1946 a course at the University of Pennsylvania Moore School (Theory and Techniques for Design of Electronic Computers) given by the leading war-time protagonists (including von Neumann) stimulated several projects, including EDSAC at Cambridge University. A particular feature of interest was the 'stored program' concept - many of the earlier machines used plug board programs which could take several days to prepare and could not be changed in action. Plans prepared by von Neumann (7) in 1945 for the successor to the Harvard Mk2 had already proposed special attention to this not only because of the increase in speed but also because it allowed conditional program execution (as noted by Countess Lovelace in respect of the Analytic Engine). Holding the program in internal read-write storage also opens up the possibility of computer assistance in preparing programs
(8).
5.5 In 1945 Alan Turing was invited to join the ACE computer project at the National Physical Laboratory. He completed the design in 1946 but in 1947, disenchanted by the dilatory approach to producing hardware, returned to Cambridge, where he had been elected a Fellow of Kings College in 1935. The EDSAC project led by Maurice Wilkes (who attended the Moore School course in 1946) was well advanced there by then and Turing contributed some programs and subroutines but otherwise seems not to have played a large role. The other major project in the UK at the time was the Manchester University 'Baby' project led by F C Williams and Thomas Kilburn under Max Newman (Turing's tutor at Cambridge in 1935), which was completed in June 1948 . This was the first true stored program machine and had a novel memory developed by Williams based on a CRT. Newman subsequently invited Turing to join the team to deal with the mathematical and programming aspects of the follow-up machine (the Manchester Mk 1) which was completed in June 1949, while in the interval the Cambridge EDSAC machine was completed (in May 1949)
5.6 The next two years were pivotal in producing a commercial breakthrough viz
In 1950 the Zuse Z4 was put into service at the Zurich Federal Polytechnic Institute and remained in service for 10 years while Zuse produced and sold 300 machines before he was bought out by Siemens.
In May 1950 two groups at the National Bureau of Standards, unwilling to wait for commercial equipment, produced two machines, one using the Williams CRT memory and the other incorporating germanium diodes replacing some of the vacuum tube logic.
In February 1951 Ferranti embarked on production of the Ferranti Mk 1, a copy of the Manchester Mk 1, selling 8 machines before it was replaced by the Ferranti Mk 1*.
In May 1951 Eckert and Mauchly (formerly leading the ENIAC project) produced their own private enterprise version of the proposed EDVAC and sold the first machine to the US census department.
In autumn 1951 the Joe Lyons company, (who had supported the EDSAC project financially and with technical staff) produced LEO 1, based on EDSAC, which was used for payroll, inventory control, etc in the 'Lyons Corner House' organization and then went in to business manufacturing machines for other companies.
Some time in 1951 the second generation NPL machine DEUCE was completed and went into to service in various Government departments, including ERNIE the machine which generated pseudo-random numbers for the Premium Bond National Savings scheme.
Ironically the EDVAC machine, planned before the Moore School course in 1946 which triggered most of this activity was not completed until 1952.
5.7 This exposure to a wide range of implementations and applications validated the claim of the von Neumann architecture to universality and it became the standard for subsequent machines. Further development largely centred on improvements in technology directed at reducing size and power demand, and increasing speed eg magnetic storage media (1949), transistors (1955), integrated circuits (1959), and large scale integration (1971). The introduction of LSI was the culmination of a long struggle to produce semiconductor single crystals large enough and pure enough to accommodate the thousands of transistors required by a viable microprocessor. A further struggle by Intel chip design engineers with the resident bean-counters to be allowed to upgrade a multi-purpose calculator chip (4004) was required before a full operational computer chip (8080) reached the market. This was superseded by the Zilog Z80 in 1976 designed by the same group of engineers, after abandoning the struggle, leaving Intel, and setting up their own company). These two processors dominated the market for several years and were largely responsible for producing the 'home computer' revolution that triggered the explosive growth of the computer culture