The following was OCRed, HTMLed, ... - which are imperfect arts. The serious user should examine an original.

Annals Hist Comput (1991) 13:141-145

©Springer-Vurlag New York Inc.

Babbage's Expectations
for his Engines

MAURICE V. WILKES Babbage's expectations for his Difference Engine were those of a young enthusiast. Although he failed to complete his version of the engine, an independent implementation of his ideas was carried through by Georg and Edvard Scheutz. Two Scheutz engines were built and put to work, one at the Registrar-General's Office in London and one at the Dudley Observatory in Albany, N. Y. They performed as intended, but failed to revolutionize the making of mathematical tables as Babbage had hoped they would.

When Babbage was 45 years old. he wrote, but did not publish, a description of the Analytical Engine. Here he showed vision verging on genius. His judgment on the design and utility of the Analytical Engine was a sound as his judgment on matters concerned with the Difference Engine was weak. Studies by A. G. Bromley, based on an examination of his notebooks, have brought out his remarkable achievements at what we would now call the microprogram level and also the insights that eluded him at the user level. His failure to publish may have been because he never arrived at what he regarded as a satisfactory system for programming at the user level.

Categories and Subject Descriptors: K2 [Computing Milieux]: History of Computing - hardware, people.
General Terms: Algorithms, Design, Economics, Experimentation, Performance, Reliability.
Additional Keywords and Phrases: Difference Engine, Analytical Engine, L. J. Comrie, BA Tables Committee.

Maurice V. Wilkes was formerly Professor of computer technology at Cambridge, England, and was head of the Computer Laboratory. He is a Fellow of the Royal Society, a Distinguished Fellow of the British Computer Society, a Foreign a Honorary Member of the American Academy of Arts and Sciences, and a Foreign Associate of both the National Academy of Sciences and the National Academy of Engineering. He delivered the ACM Turing Lecture in 1967. AFIPS presented him with the Harry Goode Memorial Award in 1968 and the Eckert-Mauchly Award in 1980.

Author's Address: Olivetti Research Ltd., 24a Trumptingon Street, Cambridge, C132 1QA, ENGLAND

In Passages from The Life of a Philosopher (1864) Babbage records that one day, while still a student, he was sitting in pensive mood in the rooms of the Analytical Society with a book of logarithm tables open before him. Another member entering asked him what he was dreaming about. He replied "I am thinking that all these tables might be calculated by machinery." What exactly did he mean by this?

Those who have seen Babbage described as the Father of the Computer, but otherwise know nothing of his work, will see no problem; clearly, a computer can be used to compute mathematical tables. However, the claim for Babbage to be Father of the Computer derives from his work on the Analytical Engine. The anecdote belongs to a period long before he had thought of the Analytical Engine and was only just beginning to develop his ideas for the earlier machine that he called the Difference Engine.

The Difference Engine would generate polynomials by the method of differences. This has application to mathematical tables since, across a certain number of entries, a table, such as the table of logarithms that Babbage had open in front of him, can be represented by a polynomial. This remains true as we go down the table, although a gradual change takes place in the parameters of the polynomial.

Until the coming of digital compute, mathematical tables played a central role in numerical computation. It will be appropriate; therefore; to begin by saying Something about the way in which tables were computed at the end of that period, and about the role played by differences. Inevitably, this means talking about the work of the British Association Mathematical Tables Committee, which carried scientific methods of table- making to their pre-computer zenith.

A committee concerned with mathematical tables - charged with making a list of available tables and identifying deficiencies - is first mentioned in the annual report of the British Association for the Advancement of Science (BA) for 1873. Various other committees concerned with mathematical tables were appointed in subsequent years and, by the time of the first world war, a committee for the calculation of mathematical tables had emerged as a continuing commitment.

I was invited to join the BA Tables Committee in 1938. The Committee had then reached a high water mark of sophistication and I regard myself as fortunate to have been exposed to such an exquisite and noble science, a phrase I borrow from Mark Twain, who applied it to the piloting of steam boats on the Mississippi, the profession of his youth.

The work of the BA Tables Committee depended heavily on the use of a mufti-register accounting machines for calculations with differences (Comrie 1936). The credit for this development goes almost entirely to L. J. Comrie who, in 1931, became Superintendent of the British Nautical Almanac Office. Comrie joined the BA Committee in 1928, becoming secretary in the following year.

The machine that lent itself outstandingly well to calculations with differences was the National Class 3000 Accounting Machine ("National"). This machine had six registers and a moving carriage. It could perform various transfer and adding operations between the registers. What it did in each position of the carriage was determined by linear cams attached to a bar that moved with the carriage The cams were set up in advance so that in each position of the carriage the requisite operations were performed.

When the bar had been set tip for differencing a table, all that the operator had to do was to enter a value from the table and press the operating key seven times in succession. The machine would print the entered tabular value at the first position of the carriage; and differences up to the fifth at succeeding positions of the carriage. Finally, in the last position, the entered value was again printed. The latter was not a copy of what the operator had entered, but a value recomputed from the differences as printed. Its agreement with the entered value, therefore, provided a check on the operation of the machine. Comrie was not a man to trust a machine any more than a human being!

Differences are of fundamental importance in numerical computation. However, differencing by hand, even with the aid of a desk calculating machine, was laborious and prone to error, The effect was to restrict the use of differences in practical computing. As Comrie remarks, this changed with the coming of the National machine, when all the drudgery, uncertainty, and copying of figure vanished overnight (Comrie 1944).

By far the most important use made of differences computed on a National machine was for bringing to light errors in a table. An error in one of the tabular values, too small to be noticed, gives rise to magnified and therefore more noticeable errors in the higher differences. Once inspection of the difference table has led to an error being suspected, recalculation of the tabular value, or values, concerned settles the matter. In days of desk machine computing, checking by differences was an indispensable procedure, not only for a final table, but for intermediate temporary tables as well.

Ever since the eighteenth century, mathematical tables have been made by a method that came to be known as subtabulation. The first step is the computation of a table of pivotal values. These are at wider intervals in the argument than is required in the final table, but still close enough to be locally represented by a polynomial. The intermediate values required for the final table are then filled in by using the method of differences in one or other of its variants. Comrie showed how a National machine could be used for subtabulation. Leading differences for starting the operation were pre-computed from a difference table for the pivotal values, together with bridging differences for passing from one interval of subtabulation to the next. Once the process was under way, the only figures the operator had to enter were the (three) bridging differences required when passing from one interval to the next. The pivotal values as printed were computed from the differences in the same way as the other printed values, and their agreement with the original values provided an excellent check on the work of the operator and on the correct functioning of the machine. The whole operation of subtabulation was highly streamlined and could be left to a technician.

The role that Babbage intended his Difference Engine to fill was exactly that of subtabulation in the sense defined above. Instead of a printer, he designed a device for producing papier mache moulds from which stereo plates for printing the table could be formed. In this way typesetting errors would be eliminated.

Generating tabular entries, by method of differences was all that the Difference Engine could do. It was not capable of generating differences from tabular values supplied by an operator. Thus it was only available for one of the two major roles in which the National machine was later used. A close examination of the writings of Babbage and his contemporaries reveals that they were strangely unfamiliar with the use of differences for checking, or at any rate, with the use of differences beyond the first (Wilkes 1987). They appeared to proceed on the assumption that the only way to find errors in a table was to repeat the calculations or, ideally, to compare the table with one computed entirely independently.

Babbage, in his self-important way, describes how he lent the government a copy of a set of French tables, that were in his possession, in order that they might he compared with a table published by M. Taylor in 1792 (Taylor 1792). The comparison revealed a number of hitherto unknown errors in Taylor's table. Yet all the errors could have been found by differencing. In fact, in many cases, any one of my senior colleagues on the BA Mathematical Tables Committee in 193$ would only have had to go down the table forming first differences in his head to become suspicious.

It would be interesting to know what formulae Babbage proposed to use for subtabulation and how he intended to compute the differences to be set on the Difference Engine. It would then be possible to compare his methods with those used by others, before his time and since. Nowhere, as far as I have been able to discover, does he supply this information. Light could perhaps be shed on this matter by a careful examination of Babbage's notes and of the calculations that were made for the Scheutz engines (see below). Some calculations for a table of sines made by Henry Babbage have also been preserved. There is in existence an abstract of the method used by William Gravatt, but I find this unhelpful (Scheutz 1857).

When Babbage spoke of calculating tables by means of the Difference Engine, he was guilty of an overstatement, since all that the Difference Engine was designed to do was the final tabulation by the method of differences. Even if it were true that, without the aid of a Difference Engine, forming the final tabular values constituted tie major part of the labor of making a table, what remained after that labor had been eliminated by mechanization, would still be onerous. I am at a loss to understand why Babbage persisted in saying that the Difference Engine could calculate tables, unless it was that like other inventors, before and since, he had become so emotionally committed to his invention that he tended to exaggerate its importance. As early as February 1929, Whewell remarked that Babbage's anxiety about the success and fame of his machine was "quite devouring and unhappy" (Todhunter 1876).

To sum up the story of the Difference Engine and the lessons learned from it, I would like to stress two points.

Two Scheutz Engines were built.

In spite of the fact that these determined efforts were made to exploit them, both engines failed to establish themselves and soon fell out of use. This is the second point that I want to stress, namely that the Difference Engine - in the shape of the Scheutz implementation -- failed in spite of the fact that it did exactly what it was designed to do. It may be that its range of application was too narrow to justify its use, or it may simply be that it was found to be more trouble than it was worth.

The British Government had spent £17,000 on Babbage's Difference Engine and refused to spend more. They have frequently been subjected to obloquy for alleged short-sightedness and for holding back the age of the digital computer. Personally, I do not see how the decision, taken in 1842, not to spend more money on the Difference Engine can be faulted. The government took much trouble to get the best advice, and events were to show that the balance of that advice was sound. It was just not true that the Difference Engine was going to revolutionalize the making of mathematical tables. As for holding back the age of the digital computer, this charge is sheer nonsense, The Difference Engine is not an ancestor of the digital computer and, if Babbage had stopped at the Difference Engine no one now would have heard of him.

The Analytic Engine is another matter. Here Babbage showed vision verging on genius. The Analytical Engine would have been capable of evaluating an arbitrary formula in much the way that a modern digital computer can. Without question it would have been of immense value over a wide range of applications. Babbage envisaged there being one in every capital city and university, available for use by all those who could profit by them. These expectations were entirely realistic.

His judgement on the design and utility of the Analytical Engine was as sound as his judgement on matters concerned with the Difference Engine was weak.

At no time did Babbage make a request to the government to support work on the Analytical Engine. He hints, clearly though, that he felt that they ought to approach him, and this indeed would have been quite in accordance with his somewhat inflated idea of what was his due. The government did not approach him, and they cannot be blamed for that; governments, very properly, wait to be asked, and in any case the British government had not found Babbage a very satisfactory man with whom to deal. Apart from these considerations, the surviving documentation, including the contents of Babbage's notebooks, shows clearly that the design details were not sufficiently clear in his head for him to have been able to draft a convincing project Proposal.

The most coherent description of the Analytical Engine is contained in a document entitled On the Mathematical Powers of the Calculating Engine dated December 1837, at which time Babbage was 45 years old. This document is preserved among the Buxton papers in the History of Science Museum, Oxford, and is printed by Randell (1973).

Babbage obviously intended to publish it and why he did not do so is unclear. He did not even keep a copy among his own papers. I think it possible that the explanation is that he was not satisfied with one important a aspect of the proposal, namely the exact manner in which the formula to be evaluated was to be set up on the machine. As his notebooks show, he worked on this the rest of his life without achieving finality. Perhaps for this reason, Babbage's notebooks and drawings present special problems for the student. Studies by Bromley have done much to expose his remarkable achievements at what we would now call the microprogram level and also the and also the insights eluded him at the user level (Bromley 1982, 1987).

Although Babbage never arrived at a satisfactory system for setting the machine up at the he top level to evaluate a formula proposed by a user, he thoroughly understood the mechanical principles of automatic sequencing as applied to such built-in operations as multiplication, division, and the extraction of square roots. For me, it is this work that establishes, more than anything else, his stature as nil original thinker.

It is possible to, design a machine to perform a specific operation, such as the extraction of a square root, because one knows in advance what the problem is. One can decide on an algorithm, and then work out the number of storage registers required, the steps to be performed, and the conditional tests to be made. The method cannot he applied to design a general purpose machine simply because the problem is not known in advance. The designer has only, a general knowledge - what the machine wilt, be used for until it is opened for service, and the first user walks in through the door.

What the designer of any general purpose computer must do is to define a small closed set of fundamental operations - an instruction set, in fact - from which a program for solving any computational problem can be constructed. A digital computer can be regarded as an assemblage of special purpose machines, each of which performs one of the elementary operations in the instructions set. Once these operations have been identified and the instruction set defined, all that is further necessary is contrivance for executing sequentially the instructions in a program.

Babbage understood the above clearly enough as far as arithmetical operations were concerned - although there is in his notebooks nothing remotely resembling a draft of a formal instruction set - but he did not understand it as far as conditional operations and operations determining the flow of control were concerned. This becomes clear if the notations that appear in Lady Lovelace's notes - and which some have mistakenly taken to be programs in the modem sense - are carefully examined. The lines referring to arithmetic operations do, it is true, closely resemble instructions in a modem program; but there aye no corresponding lines referring to the flow of control. Instead, loops are indicated by curly brackets with annotations, of which the following is typical: "here follows a repetition of operations 13 to 23."

In one place, Babbage mentions a "superintendent of the engine" who would presumably have acted as an interface with the ultimate user. I think it probable that Babbage assumed that the superintendent would play an essential part in setting up the Analytical Engine to execute the loops.

I was myself once the `superintendent' of a mechanical differential analyzer, A differential analyzer had to be set up for a particular problem by putting in place an array of gear wheels. Figuring out the set-up and physically putting the gears in place was part of my job. Babbage probably had it in mind that his superintendent would, in a somewhat similar way, make changes to the mechanical configuration of the Analytical engine according to the formula to be evaluated.

Babbage would not have needed to invent the stored program principle in order to arrive at a satisfactory solution to the sequencing problem. In modern times, the Bell relay machines, the ENIAC, and the Harvard Mark I have all had thoroughly workable sequencing systems and none of them would be described as stored program computers. As Bromley (1987) has pointed out, Babbage was hampered - as indeed the designers of the machines just mentioned - by the fact that he never arrived at the idea of numbering storage locations sequentially and exploiting that numbering in the implementation of cycled in a program.