The prototype calculators of the late seventeenth century demonstrated the feasibility of performing lengthy calculations by mechanical methods. Ultimately this demonstration would result in the construction of the modern computer in the form that is common today. We can at this point, however, note a number of elements - both conceptual and concrete - that are missing from the devices considered previously.
If the impetus behind much of the development of calculating machines discussed so far had arisen from numerical computation, the motivation that led to the earliest form of `stored program' was to come from a very different source: the textile industry. We have seen earlier that one of the fundamental aspects of computational systems is the concept of representing information and, although we have not done so explicitly, the application of this idea can be discerned in all of the artefacts that we have examined up to now: in the development of written representations for numeric values and the mechanical parallels that sprung from these. Thus, the alignment of pebbles on an abacus frame, the juxtaposition of moving scales on a slide-rule, and the configuration of cogged gears on the devices of Schickard, Pascal and Leibniz, are all examples of representational techniques that seek to simplify the complex processes underlying arithmetic tasks. There are, however, categories of information, and representations thereof, other than number upon which computational processes can be performed. The weaving technology developed by Joseph-Marie Jacquard in 1801 illustrates one example of such a category.
In consequence of the Industrial Revolution, the late 18th century had witnessed a considerable expansion in the automation of processes that had once been the preserve of small groups of highly skilled workers employed in so-called `cottage industries'. The textile industry was one sphere were industrialisation had rendered obsolete such skills. Whereas, prior to the development of mechanical looms and weaving machines, lengths of fabric had to be woven slowly by hand, the advent of powered tools for carrying out this task meant that quantities of fabric could be mass-produced at a far quicker rate than previously, thereby reducing its expense. There was one area, however, where the new machines could not compete with skilled manual workers: in the generation of cloth containing anything other than a plain (or at best extremely simple) woven pattern. The Jacquard Loom provided a solution to this problem so that, with it in use, extremely intricate patterns and pictures could be automatically woven into cloth at much the same rate as a plain length of fabric could be generated. The key idea behind Jacquard's loom was to control the action of the weaving process by interfacing the behaviour of the loom to an encoding of the pattern to be reproduced. In order to do this Jacquard arranged for the pattern to be depicted as a groups of holes `punched' into a sequence of pasteboard card. Each card contained the same number of rows and columns, the presence or absence of a hole was detected mechanically and used to determine the actions of the loom. By combining a `tape' of cards together the Jacquard loom was able to weave (and reproduce) patterns of great complexity, e.g. a surviving example is a black and white silk portrait of Jacquard woven under the control of a 10,000 card `program'.
Jacquard's invention of the punched card is now recognised as important largely because of the influence it had on other developers of computing machinery. One of these, Charles Babbage, will be discussed later in this section. Another significant offshoot resulting from Jacquard's idea is found in the work of Herman Hollerith (1860-1929)
Societies, or more correctly the wielders of power in societies, have long been concerned with accurately assessing statistical data relating to population, i.e. the activity that is called census taking. Many ancient sources contain records of contemporary censuses, ranging from Biblical reports (e.g. 2 Samuel 2:1-9, Luke 2:2) to surviving accounts of Roman census taking: in classical Roman government the r&ole of Censor^1 was an important public office.
1) The noun `censor' in English carries two meanings: that of `person responsible for conducting a census' and that of `person responsible for delineating changes to texts, films, etc so that these are in accordance with what is deemed acceptable for public consumption'. This dual meaning arises from the fact that the office of Public Censor in Roman society held both responsibilities.
There were a number of reasons for carrying out such counts: exact information on the size of the current population giving details of the proportions of men, women and children; numbers in different occupations, and income could be used in assessing tax levies, determining entitlement to representatives in legislative bodies, and in planning future policy.
It is immediately apparent that conducting a full census of even a moderate size population, entails collecting, preparing, and collating an enormous quantity of information. The U.S. Constitution (Article 1, Sect. 3) set in motion the constitutional requirement to hold a decennial census, the first of which commenced on August 2nd 1790. Censuses have been held at the required interval ever since: Britain and other European countries adopted similar practises over a century later. The 1790 census took over nine months to gather and process all of the information involved. Even at this early stage and dealing with a population of about 3.8 million people a problem is apparent: processing the information gathered is costing a considerable amount of time and expense. By the time of the 1860 census the U.S. population had increased to 31.4 million people and it had become necessary to place a limit of 100 questions on the census form. Even with this restriction it was becoming apparent that without any kind of mechanical assistance a point would be reached where the results of the previous census would not have been processed before the statutory requirement to hold the next one came into effect. For the 1870 census, a crude device invented by Charles Seaton was available to assist with the processing task. This, however, was little more than a convenient data entry and output tool.
Hollerith became involved with this problem following the 1880 census, having started work with the Census Office in 1881. At this time he met John Shaw Billings, who had been involved in statistical analysis of the 1880 returns. Hollerith's biographer records that the idea for an improved method for processing census forms came to Billings and Hollerith during dinner at the former's house^2
2) Hollerith's biographer, G.D. Austrian, claims that Hollerith wished to make the acquaintance of Billings' daughter: on first meeting her he had attempted to impress her by buying all but one of the lottery tickets that she was selling - naturally the one ticket left unpurchased was the winning one.
Hollerith, himself, attributed the idea to Billings reporting their discussion as:
Our description of Hollerith's development of automated punched card analyses for the purpose of collating census data has taken this historical review into the early twentieth century. Hollerith's work represents one of the earliest large-scale applications of mechanical methods in a domain where computer systems are now commonplace: that of data processing, i.e. the storage, maintenance, and analysis of recorded information. Computer technology has, however, traditionally been associated with another, rather different field: the rapid evaluation of intricate algebraic or arithmetic formulae. Arguably the first serious attempt to realise such a facility, with devices conceptually similar to modern computer components, can be found in the efforts of Charles Babbage (1791-1871) and his co-researcher Augusta Ada Byron, Countess of Lovelace (1816-52). Between them, Babbage and Countess Lovelace greatly extended the functionality and sophistication of calculating devices based on mechanical gears. The engineering concepts and designs underlying this work were principally the contribution of Babbage. These, important though they were, represented no tremendous conceptual advance, however; we have already seen that the exploitation of systems of mechanical gears in order to emulate arithmetic processes, was central to the basic calculating devices of Schickard, Pascal, and Leibniz dating from over one hundred years earlier. True, Babbage determined that such mechanisms could be configured to perform much more complicated tasks than the four basic arithmetic operations and, moreover, that the engineering technology of the time allowed an effective demonstration of this potential - from a present day perspective, however, the real significance of Babbage's and Lovelace's work lies other than in mere engineering legerdemain. Thus, it is perhaps rather the case that two innovations, due in no small degree to Countess Lovelace, should be seen as the most important legacy to modern computing left by these two. The innovations in question? Principally the concept of a stored program; and, secondly, the suggestion that there is a direct analogue between semiotic manipulation as a facet of computational artifice and semiotic manipulation in the classical mathematical context of algebra. This latter concept is fundamental to the bases on which the mathematical theories of computation are constructed. Before considering Babbage's early work and his joint endeavours with Countess Lovelace in more detail, it is worth briefly reviewing the background of both.
Babbage first became noted as a prolific inventor whose work naturally led him to consider the possibility of building better mechanical computing devices. While his first major idea - the so-called Difference Engine - could only be partially built^3, for almost the last twenty years of his life, Babbage was obsessed with the design and construction of a much more powerful machine - the Analytic Engine. The ambitious scope of this was far beyond the engineering capability of the time^4.
3) Independently a complete, working, though less ambitious machine based on much the same ideas was realised by the Swedish partnership of Georg Scheutz (1785-1873) and his son Edvard (1821-1881).
4) Whether the machine could ever have been built, prior to the advent to electronic devices, is open to question.
Nevertheless, unlike the Difference Engine, work on which Babbage ceased when the concept of the Analytic Engine occurred to him (since the latter would have encompassed the former) - the Analytic Engine is, arguably, the first real attempt to construct something resembling a modern computer. By the end of his life Babbage had become extremely enbittered by the lack of public and (more importantly as regards financing) government recognition of the significance of the Analytic Engine, a full working design of which is not known to have been completed. In his seventies, Babbage had turned into that rather tiresome character: the `English Victorian eccentric'. Among his proclivities at this stage was a healthy and fierce dislike of street musicians: upon hearing these he used to race into the road to chase them away from his house. An almost equal intolerance of children was created as a result of local children taunting him by imitating the noise and cries of street-corner musicians outside his home.
The background of Ada, Countess of Lovelace was entirely different from that of Babbage whose family ran a prospering banking concern. Had it not been as a result of the success of one of his earliest calculators, the two might never have met. Augusta Ada Byron was the only daughter of the great English poet Lord Byron, born from a marriage undertaken by Byron in order to quieten the contemporary scandal surrounding his, then considered to be, vigorous and unorthodox love life. Lord Byron died in 1829 (in Greece) when she was only 14 and as the only (legitimate) daughter of an English aristocrat, her life would normally have consisted of the then usual round of so-called upper class society events, followed by marriage to someone of a similar background, followed by subsequent obscurity caring for husband and children (in that order). Countess Lovelace was, however (and fittingly for a daughter of Byron!) an extremely gifted, intelligent and independent-minded woman. She first encountered Babbage at one of the, then popular, society events dedicated to showing-off interesting and amusing new inventions. Here she came across a prototype of the Difference Engine upon which Babbage was working at the time. Fascinated by the device she became intent on meeting its inventor and discussing it with him. From the time they met until her death Babbage and Countess Lovelace were in constant touch with each other, she, in her letters, suggesting and describing, a number of significant ideas for enhancing such artefacts. It is only recently that her contribution to the development of modern computer principles has received the recognition it deserves. It was as a tribute to her work that a newly designed and now widely used programming language was named, in her honour, ADA.
Babbage's interest in computing machines arose while he was checking tables produced for the Royal Astronomical Society, in 1820^5
5) Babbage's autobiography gives a different version, but this is considered to be unreliable.
These tables, containing astronomical data, values of logarithms, trigonometric functions, and various physical constants, formed the basis for the analysis of scientific experiments and for navigation. They had been produced by hand, in some cases the measures given had been compiled over two centuries previously, and thus due to human errors in the calculations and copyists mistakes in transcribing the tables for publication, the standard tables were rife with errors. By the 1820s the standard Government tables for navigational purposes contained well over 1000 known errors and the corrigenda ran to 7 volumes. Even the corrigenda required further corrections. While engaged in the tedious task of checking such tables Babbage realised that much of the calculation required was of a routine and mechanical nature. Thus producing a mechanical device which could generate the tables automatically would have significant benefits: calculating and transcription errors would be eliminated.
Babbage's first important idea in this area was the so-called Difference Engine. This was intended to evaluate polynomials^6
6) A polynomial is a function, f( x ) which may be written in the form f( x ) = sum from k=0 to n a(k) x^k} for some choice of constants {a(0),..., a(n)}, e.g. 41+x+x^2.
The term `difference' came about from the principle used to evaluate such expressions: a mathematical technique called the Method of Differences, on which Babbage had carried out important work. By this technique all polynomial evaluation could, in principle, be reduced to addition. In 1822 Babbage presented a paper to the Royal Astronomical Society in which he proposed constructing a machine to generate and print scientific tables. The process of carrying out addition mechanically was well understood by this time and so Babbage was able to demonstrate a machine he had constructed to print tables of squares, cubes, and a single more complicated polynomial. Impressed, the Society supported Babbage's proposal to build a machine that would work to the accuracy of 20 decimal places. Babbage now faced a problem that has bedevilled the development of science and engineering: money. Babbage attempted to obtain Government funding to construct his proposed machine. In 1823, after some debate the Exchequer approved the award of 1500 pounds to meet the costs of developing a large Difference Engine. Babbage planned to take 2-3 years designing and building the machine and estimated that about 5000 pounds^7 would be needed. It had been understood by Babbage that such funds as would required in addition to the initial 1500 pounds grant would be forthcoming. Unfortunately for the subsequent history of the Difference Engine the Exchequer's understanding differed from Babbage's.
7) In 1823 an income of 100 pounds per annum would allow a comfortable standard of living. In modern terms the grant awarded to Babbage was of the order of 750,000 pounds; the amount he actually believed was needed would be around 2.5 million at today's costs.
The Difference Engine was never finished. After 10 years work, involving acrimonious disputes with the Government over financing, arguments with influential scientific figures of the time, allegations of fraud, and the expenditure of 34,000 pounds ^8 (at least half of which came from Babbage's own resources out of the estate inherited from his father) Babbage ceased work on the Difference Engine. What remains of it is now on display in the Science Museum in London.
8) About 17 million at current prices.
Undoubtedly the main reason why Babbage did not continue work on the Difference Engine was because he had conceived the idea of a machine which would render it obsolete: the Analytic Engine. Babbage's description of the components and function of this machine display extraordinary prescience when considered in the light of modern digital computers:
The range and ambitious scope of the Analytical Engine was far beyond the capabilities of the technology available at the time. Mechanical gears and steam power might have been adequate for the limited needs of earlier machines, however, these could not have been manufactured to the precision required to make the Analytical Engine a reality. Nevertheless, as a theoretical concept, the idea of the Analytical Engine and its logical design are of enormous significance. This is the first realisation that, by mechanical means, it might be possible to program complicated algorithms. The Analytic Engine had, in principle, all of the important components (Memory, Processor and Input/Output protocol) that are present in modern-day computer systems. For this reason Babbage has a strong claim to be the inventor (even if not the first builder) of the modern computer.
The achievement of the autodidactic English mathematician George Boole may not, at first sight, seem as significant as the concepts moted by Babbage and amplified by Ada Lovelace. Nevertheless, he was responsible for formalising and developing a system which underpins the operation of every modern digital computer: the system, named in his honour, of Boolean algebra.
Boole was not primarily concerned with the automation of calculating activities. His motivation for developing the system was to assist in expressing and evaluating the soundness of logical propositions. For example, suppose we have a number of assertions P, Q, R, S, etc. Boole considered the question of what could be said of assertions made by combining these in various ways, e.g. P AND Q AND R, ( P OR S ) AND ( Q OR R ). By considering assertions to by true or false, Boole developed an algebraic calculus to interpret whether composite assertions were true or false in terms of how they composition was formed (i.e. the combination of AND, OR, etc) and the truth or falsity of the atomic assertions. Boole published his work in the mid 19th Century^9
9) An Investigation of the Laws of Thought, Dover Publications, Inc., 1854
Its importance with respect to computer design was realised in the 20th century when approaches to constructing digital computer were being investigated. Boole's calculus was instrumental in breaking the tradition of reducing computation to addition: the route that had, in effect, dominated the design of automatic calculating machines from Schickard through to Babbage, since by exploiting Boolean algebra and electrical (or electro-mechanical) switching components^10 it became possible to build reasonably reliable systems capable of carrying out complex computing tasks.
10) A switching component is one which is always in one of two `states' (on or off) and can be moved from one to the other on receipt of a suitable stimulus.
The nineteenth century developments in automatic computation form a bridge between the mechanical methods of early calculating machines and the advent of digital computer systems in the twentieth century. Babbage and Lovelace conceived the idea of constructing a machine that in its composition was similar to the machines present today. That they failed to realise their conception was largely due to the inadequacies of the contemporary engineering technology. Their work, however, delineated the components that were to be adopted in subsequent machines. These, in combination with Boole's formalisation of an algebraic system that was to prove subsequently to be of immense value, were ultimately to lead to the development of electronic computing systems in the following century.