8
Vol. 15, No. 2, 2006 19 Modeling the Difference Engines of Charles Babbage Tim Robinson Figure 1. A selection of Meccano parts. Introduction The English polymath Charles Babbage is best remem- bered today for his mechanical calculating engines, which included two different designs for Difference Engines, and the much more sophisticated card-programmable Analyt- ical Engine. Although none of his designs was successfully built in his own lifetime, he is now recognized as the ear- liest pioneer of automatic computing. Indeed his Analyt- ical Engine anticipated many of the features of modern computers, not reinvented until the 1950s. A few years ago I became interested in understanding the details of some of Babbage’s mechanisms, and in an attempt to improve my understanding I used Meccano to model various components. Readers, particularly in the United States, may not be familiar with Meccano. It is a child’s educational construction system similar to Erec- tor. Meccano was invented in 1901 in England by Frank Hornby and although its heyday was in the 1920s and 1930s it is still manufactured eventoday. For a toy, Mec- cano includes a surprisingly sophisticated set of gears and other mechanical components, manufactured to a preci- sion adequate to allow the construction of quite complex mechanisms (Figure 1). Having achieved an understanding of the mechanism of Difference Engine #1, I decided to attempt to build in Meccano a complete working model to demonstrate its operation. While at first this seemed likely to be beyond the capabilities of a mere toy, with a little ingenuity and a lot of perseverance I eventually achieved a working model. More recently I have completed a much more ambitious, fully functioning model of Babbage’s Difference Engine #2 also using only standard Meccano parts. The Tables Crisis In the 19th century, tables of standard mathematical functions were used extensively by astronomers and by navigators at sea. Published tables were calculated labo-

Modeling the Difference Engines of Charles Babbage

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modeling the Difference Engines of Charles Babbage

Vol. 15, No. 2, 2006 19

Modeling the Difference Engines of Charles Babbage

Tim Robinson

Figure 1. A selection of Meccano parts.

Introduction

The English polymath Charles Babbage is best remem-bered today for his mechanical calculating engines, whichincluded two different designs for Difference Engines, andthe much more sophisticated card-programmable Analyt-ical Engine. Although none of his designs was successfullybuilt in his own lifetime, he is now recognized as the ear-liest pioneer of automatic computing. Indeed his Analyt-ical Engine anticipated many of the features of moderncomputers, not reinvented until the 1950s.

A few years ago I became interested in understandingthe details of some of Babbage’s mechanisms, and in anattempt to improve my understanding I used Meccano tomodel various components. Readers, particularly in theUnited States, may not be familiar with Meccano. It isa child’s educational construction system similar to Erec-tor. Meccano was invented in 1901 in England by FrankHornby and although its heyday was in the 1920s and

1930s it is still manufactured even today. For a toy, Mec-cano includes a surprisingly sophisticated set of gears andother mechanical components, manufactured to a preci-sion adequate to allow the construction of quite complexmechanisms (Figure 1).

Having achieved an understanding of the mechanismof Difference Engine #1, I decided to attempt to buildin Meccano a complete working model to demonstrate itsoperation. While at first this seemed likely to be beyondthe capabilities of a mere toy, with a little ingenuity and alot of perseverance I eventually achieved a working model.More recently I have completed a much more ambitious,fully functioning model of Babbage’s Difference Engine#2 also using only standard Meccano parts.

The Tables CrisisIn the 19th century, tables of standard mathematicalfunctions were used extensively by astronomers and bynavigators at sea. Published tables were calculated labo-

Page 2: Modeling the Difference Engines of Charles Babbage

20 Journal of the Oughtred Society

riously by hand and were known to contain many errors,either from mistakes in the calculations themselves, or in-troduced in the typesetting and printing process. Therewas the very real potential that errors in tables couldresult in shipwreck [1].

Babbage was a connoisseur of printed tables. His per-sonal collection ran to over 300 volumes [2] and throughhis astronomical interests he became involved in the cre-ation of new tables. In a perhaps apocryphal statementwhen reviewing with astronomer John Herschel the errorsin a newly computed set of tables, Babbage is supposedto have exclaimed “I wish to God these calculations hadbeen executed by steam!” Beginning around 1821 he tookup the issue of mechanizing the calculation and printingof mathematical tables, a quest that occupied the rest ofhis life.

Method of DifferencesA common method used at the time for the manual calcu-lation of tables is known as “the method of differences”.It is a way of tabulating the value of a polynomial ex-pression using nothing but simple addition. Since manycommon mathematical functions can be approximated, atleast over some range, by a polynomial this is a powerfulmethod and it is ideally suited to mechanization in thedifference engine.

The method was perhaps most famously applied byBaron Gaspard de Prony in France in the 1790s to pro-duce the manuscripts for 18 volumes of tables of loga-rithms and trigonometrical functions, calculated to be-tween 14 and 29 decimal places. [3] A few expert math-ematicians determined the most appropriate formulæ touse for the calculations. A second group of lesser mathe-maticians used the formulæto compute sets of initial val-ues for a third, much larger group of people, only skilledin simple arithmetic, to do the vast bulk of the work.This third group was divided into two sets to performthe same calculations independently. Finally, the secondgroup was employed again to check the results by com-paring the data from the two sets of calculations. Despitethe monumental effort that went into creating the man-uscripts, they were never published because the moneycould not be raised to cover the enormous cost of type-setting and proofreading.

Babbage realized that the entire work of the thirdgroup could be eliminated by machinery, and since thecalculations would be automatic, without the possibilityof human error, much of the work of the second groupcould be dispensed with as well. Further, he proposed toautomate not only the calculation, but also the produc-tion of stereotype molds to be used to make the printingplates, so that no human error could enter at the type-setting stage.

The best way to understand the method is with asimple example. Suppose we wish to calculate a table ofsquares. In Table 1 below, successive values of n are listedin the first column. The corresponding values of n2 arein the result column, R. The column headed D1 contains

the first differences, i.e., the difference between successivepairs in the R column, while the D2 column contains thesecond differences, i.e., the differences between successivepairs in the D1 column. Note that the entries in the D2column are constant.

n R D1 D21 1 3 22 4 5 23 9 7 24 16 95 25

Table 1.Given just the first few rows of the table we can now con-struct the rest of the table, for arbitrary values of n, withnothing but addition. Obviously the next entry in the D2column is the constant 2. To get the next entry in the D1column, just add the value from the same row of the D2column to the current entry in the D1 column. Likewiseto get the next entry in the R column, just add the valuefrom the same row in the D1 column to the current entryin the R column.

It is a general result, that for a polynomial of degreen, the nth difference will be constant. For example inTable 2, the same method is applied to the polynomialn3 − 2n2 + 3n − 2 where each new table entry can becomputed with just three additions.

N R D1 D2 D31 0 4 8 62 4 12 14 63 16 26 204 42 465 88

Table 2.Most mathematical functions of interest can be approxi-mated over some range by a polynomial which can thenbe tabulated in this way. Of course considerable math-ematical skill may be required to select the appropriatepolynomial, the range over which it is valid to the desiredaccuracy, and the starting values for the tabulation.

The PrototypesBabbage began work on his first difference engine around1822. With support from the Royal Society he persuadedthe British government of the day to fund the construc-tion, but not being a businessman, he failed to secureformal written agreement. This was later to be a majorfactor in the failure of the project.

After ten years, much of which was spent developingthe lathes and other precision machine tools needed tomanufacture the parts, about 90% of the required com-ponents were completed. However, the project collapsed,in part because of a quarrel with his principal engineerJoseph Clement over relocation of the work to a new fire-proof building, and in part because of difficulty with ob-taining continued funding from the government. At the

Page 3: Modeling the Difference Engines of Charles Babbage

Vol. 15, No. 2, 2006 21

time of the suspension of the project, about £17,000 ofgovernment money, and a perhaps equal sum from Bab-bage’s own resources had been expended. [4] In 1832,Babbage did assemble a small fragment of Difference En-gine #1 from the parts which had been manufactured,and this is now in the collection of the Science Museumin London. Babbage used this extensively as a demon-stration vehicle, and it functions perfectly to this day.See Figure 2.

Figure 2. Fragment of Babbage’s Difference Engine #1on display in the Science Museum, London. [ScienceMuseum, Science and Society Picture Library, image#10303371]

After the project collapsed, with time on his hands,Babbage contemplated how the machine might be gener-alized, and very quickly conceived of a machine he calledthe Analytical Engine. By 1841 this had evolved into afairly complete design for a punched-card programmabledigital computer. He continued refining it for the nextfew years, with no real interest in actually attemptingto construct it, being content instead with the pure in-tellectual challenge. The enormously greater complexityof this machine led Babbage to a number of significantsimplifications, and in 1848 he decided to design a sec-ond Difference Engine based on the principles developedfor the Analytical Engine. This is the only complete andfully consistent set of plans Babbage left. Again he madeno attempt to construct it, but simply left the plans forposterity. In his autobiography Babbage wrote [5]:

“If, unwarned by my example, any man shallundertake and shall succeed in really con-structing an engine embodying in itself the

whole of the executive department of math-ematical analysis upon different principles orby simple mechanical means, I have no fearof leaving my reputation in his charge, for healone will be fully able to appreciate the na-ture of my efforts and the value of their re-sults.”

In 1991, the Science Museum in London, as part oftheir bicentennial celebration of Babbage’s birth, actuallyconstructed the machine from these plans. [6] After a fewminor inconsistencies in the plans were corrected, the ma-chine functions just as Babbage intended. It stands sevenfeet tall and weighs approximately five tons. (Figure 3)

Figure 3. Babbage’s Difference Engine #2 constructed bythe Science Museum, London in 1991. [Science Museum,Science and Society Picture Library, image #0303337]

Meccano Model of Difference Engine #1I began contemplating a working Meccano model of Dif-ference Engine #1 after reading the contemporary de-scriptions [1] [5]. It is a popular myth that Babbage hadfailed to build the machines in his own day because ofthe limited precision of Victorian engineering. Modernscholarship has shown that his engineer, Clement, manu-factured the parts reproducibly to about two thousands ofan inch accuracy [7], and that this is far better than wasactually necessary. Even so, it may seem outrageous toconsider building such a complex machine from a child’stoy. I had experimented with a few Meccano mechanismsas part of the process of understanding how the originalwould have worked, so I could see at least the potentialfor a complete Meccano model.

Very little technical detail of the construction is in-cluded in the contemporary accounts. Presumably Bab-bage and his supporters considered the conceptual aspectsof a fully automatically sequenced machine to be moresignificant than the mechanical details of its construc-tion. Most of the original drawings of Difference Engine#1 were lost before it made its way into the collectionof the Science Museum and I made no study of the few

Page 4: Modeling the Difference Engines of Charles Babbage

22 Journal of the Oughtred Society

original drawings that do survive.When I began, I was skeptical that a working model

would be possible within the constraints of the Meccanosystem, so I started with small experimental mechanisms,which gradually evolved and finally grew into the com-pleted model (Figure 4). As a result there was little“top-down” planning, and this resulted in one of the mostobvious differences between my model and the prototype,namely that the model has the result column on the leftwhere the prototype has it to the right. A second majordifference is that in the prototype, the operating crankmoves back and forth in an oscillating motion, alternatelytransmitting power to the odd and even axes by a systemof ratchets, while my model operates with a continuousrotation of the crank, taking four complete turns to pro-duce each new result.

Figure 4. Meccano model of Difference Engine #1. Thefour-digit result is read from top to bottom on the leftcolumn. Four turns of the large hand crank are requiredto produce each new result.

I chose to implement a four-digit result and three or-ders of differences, sufficient to give a demonstration ofthe method of differences, but much too small to be ofpractical use in calculating a meaningful table. The sec-ond and third differences are implemented as just threeand two digits respectively, since in the method of differ-ences, higher order differences are inherently of smallermagnitude than the results. An unfortunate side effectof this is that negative numbers, which have to be rep-resented in 10s complement form, cannot be handled inthese columns, but this is not an issue for simple demon-strations. Indeed Babbage made a similar simplification

in his own demonstration assembly which included justa single-digit third difference (that is tucked away at thebottom of the first difference column).

A couple of other features of the prototype are ignoredin my model, namely the inclusion of a separate counterto keep track of successive values of the index during acalculation run, and the feedback columns seen in frontof the dials in Figure 2. Babbage had a fascination withthe idea of a mechanism that could proceed for a longperiod according to one rule, and then apparently switchto a different rule as a result of some form of feedbackfrom a result digit. While from our modern perspective,such complex behavior of a digitally sequenced machineseems natural enough, to Babbage and his peers it wasa source of wonder, and he even speculated that such amechanism in nature may be the basis of “miracles”. [8]

There were a number of Meccano-specific technicalchallenges to be overcome. First is the lack of parts withten-fold symmetry from which to construct the decimalcomponents. This was overcome with a fortuitous combi-nation of standard Meccano gears which provide a ratio of5:3, so that a motion of 1/10th of a rotation of one shaft istranslated to a rotation of 1/6th of a second. Parts withsix-fold symmetry are available and provide the requireddetents to define one of ten discrete positions of the mainwheels.

Figure 5. Selected sub-assemblies from the addition mecha-

nism of Difference Engine #1.

Addition operations in the difference engine proceedin two distinct phases. In the first, the individual digits ofone column are read out and the values added to the cor-

Page 5: Modeling the Difference Engines of Charles Babbage

Vol. 15, No. 2, 2006 23

responding digits in the adjacent column. Any instanceswhere the resulting value passes from 9 to 0 are notedso that in the second phase carries can be propagated tothe next higher digit. The most challenging aspect of themodel was making the individual digit readout mecha-nism operate reliably without disturbing the value beingread. It makes use of the Meccano ratchet wheel, whichby great good fortune happens to have 20 teeth, a multi-ple of ten. A rotating pawl is engaged to the ratchet wheelwhich is carried round by it until the pawl is disengagedat a position which depends on the digit value currentlystored. This motion is transferred to the adjacent wheelthrough a train of gears in constant mesh. An additionalmechanism is needed to handle the special case of zero,where no motion at all should be transferred. A selectionof the sub-assemblies can be seen in Figure 5.

The final challenge is the distribution of powerthrough the machine. Meccano axles are quite thin andit is difficult to transmit high torque without componentsslipping. The solution is a system of gear and chain-drivesat the top of the machine which distribute the power di-rectly. Any individual fixing to an axle only has to carrythe torque required by that particular axle.

Adjustment of the various mechanisms must be car-ried out meticulously and the slightest upset of these ad-justments will cause incorrect operation. It is also neces-sary to crank the machine with a very steady hand. Thisrequires practice because the load presented to the op-erator varies throughout the cycle, and if the handle isturned too quickly, even for a short part of the cycle, apart of the mechanism may not have the time required tooperate reliably. Indeed, when a colleague was attempt-ing to replicate the machine, he was almost at the pointof giving up when trying to get everything adjusted. Hedecided to add an electric drive so as to make it easierto operate, and at once he found the machine to be reli-able. The motor drive provided the steady rate of turningrequired!

Once correctly adjusted the model is quite reliable. Ipublished detailed constructional plans for the model onthe web and in one of the specialist Meccano magazines[9] [10], and it has now been successfully replicated severaltimes.

Meccano Model of Difference Engine #2Although Babbage’s Difference Engine #2 is designed tosolve exactly the same problem as Difference Engine #1,the details of its mechanism are entirely different. As aresult of his years of work on the much more complexAnalytical Engine, Babbage had found ways to simplifythe basic mechanisms, and had formed a clear conceptualseparation of data and control. As with the first model, Iinitially experimented with Meccano assemblies as an aidto understanding some of Babbage’s mechanisms.

Babbage’s principal innovation was the use of columnsof gears that could be lifted in and out of engagement atthe appropriate times in the cycle, to eliminate the needfor the elaborate per-digit readout apparatus of Differ-

ence Engine #1. This results in a calculating sectionthat is conceptually very simple. Figure 6 shows one ofBabbage’s original drawings for this mechanism, whileFigure 7 shows a realization of this in Meccano, demon-strating proof of principle for the mechanisms used in thefull model.

Figure 6. One of Babbage’s original 1848 drawings showing

details of the addition mechanism from Difference Engine #2.

Figure 7.Figure 7. Meccano trial piece for the addition mechanism

shown in Figure 6.

Addition is performed by lowering a column of gears(known as sectors) between two columns of wheels thatrepresent the numbers. By reducing one column of wheelsto zero, the wheels in the other are advanced by the corre-sponding amount. This provides the basic digit-by-digitaddition. A separate mechanism is needed to keep track ofwhere carries must be applied. Of course this mechanismperforms a “destructive” readout of the source number,but it can be recovered by noting that the intermediatesector wheels have stored the original number. Babbage

Page 6: Modeling the Difference Engines of Charles Babbage

24 Journal of the Oughtred Society

arranged for the sector wheels to have teeth of greaterlength around part of their circumference. They can beraised halfway so as to disengage from the result wheelswhile remaining engaged with the source wheels, so thatthe original value can be restored.

When I began studying the operation of DifferenceEngine #2 it seemed very unlikely a Meccano-basedmodel would be possible. Babbage was able to designspecial gears with elaborate tooth profiles to enable theengagement of the movable columns. Meccano gears incontrast have a relatively fine pitch, and there is no wayto make them slide in and out of mesh with the required

precision. Furthermore, custom parts such as the sec-tors are not available. However, as I thought about thisI decided to build some composite “gears” out of stan-dard Meccano parts, using bolts as the cog teeth. Aswith Difference Engine #1, I began this exercise just asa way of solidifying my understanding, but once again itstarted to look as though a real model might be possible.Understanding the subtleties of the machine was greatlyfacilitated by the excellent report on the work of the Sci-ence Museum team in constructing their replica [11], towhich the success of this model owes a lot.

Figure 8. Meccano model of Difference Engine #2. The 12-digit result is produced on the leftmost column of wheels. Power

is provided by the hand crank at the right adjacent to the control mechanism.

All the logical complexity in Difference Engine #2 ismoved into a control section. This consists of a stackof cams and an elaborate system of levers and cranksarranged to raise, lower, or rotate the various axes of themachine in a precisely timed sequence of operations. Thebeauty and elegance of the mechanism can really only beappreciated by watching it in action. [12]

The operation of the control section is independent (tofirst order) of the scaling of the rest of the machine. In-creasing the precision simply involves adding more digitwheels to the columns. Increasing the order of differ-ences just requires increasing the number of columns. The

prototype handles seven orders of difference on 31 digitnumbers and one might wonder why Babbage chose thisenormous precision.

Error propagation in the method of differences is suchthat many digits are lost from the final result. To seequalitatively how this happens, consider that the highestorder difference, as represented to the finite precision ofthe machine, must have an error on the order of half of aleast significant digit. If we wish to be able to computeN table entries from a single setting of the machine, thenthis error will be added N times to the next higher dif-ference column. Similarly, this increased error will itself

Page 7: Modeling the Difference Engines of Charles Babbage

Vol. 15, No. 2, 2006 25

be added N times to the next higher difference and so on,so that the error accumulating in the result column willbe roughly proportional to N7 (neglecting some combi-natorial factors which reduce this somewhat). For N ofthe order of a few hundred, we might end up losing 10-15digits of the result.

A second reason for the large number of digits is thatBabbage included a simple way to divide the machinehorizontally into two independent sections operating inparallel, each with reduced precision. This would mostlikely have been done so that one section of the machinecould operate as a simple counter (using only one orderof difference) to keep track of the index, while the largerpart of the machine did the main calculation.

For the Meccano model (Figure 8) I chose 12-digitnumbers and four orders of difference. I wanted a ma-chine large enough to be able to compute real mathe-matical tables, but small enough to have some chance ofbeing buildable within the constraints of Meccano. Thesechoices make it possible to compute a few hundred entriesof a trigonometric table from a single set of pivotal values,obtaining results accurate to four significant figures. Thusit is possible to demonstrate the model directly recreatingthe entries in a section of a four-figure table such as theone in Figure 9 taken from the set of tables I actually usedin high school. Twelve digits are not enough to allow themodel to be partitioned, so it is necessary to keep trackof the index manually.

Figure 9. An example of a four-figure trigonometric table

which can be reproduced by the model.

This choice of size for the machine also results in afinal model that follows roughly the proportions of theprototype. Just as the Science Museum decided not toattempt construction of the printing and stereotyping ap-paratus when they first built Difference Engine #2 in1991 (though they have done subsequently), I, likewise,decided not to attempt this in my model. While the cal-culating section is perhaps the most interesting part ofthe machine, the printing and stereotyping section wasconsidered essential by Babbage, because the only wayto ensure accuracy of the final product, printed mathe-matical tables, was to have the typesetting process au-

tomated along with the calculation. There is in fact asmuch complexity in the printing section as in the calcu-lating section, because of the need to format the printedpage automatically.

There are a number of significant detailed differencesbetween my model and the prototype. The wheels in themodel are composite, built from smaller parts and usingbolts as the cogs. The model wheels have twofold ratherthan fourfold symmetry, with 20 teeth compared to the40 of the prototype. This required a change to the layoutof the columns. In the model the axes and sector columnsare arranged in a single line, whereas in the prototype theaxes and sector columns are offset in a zig-zag pattern.

Figure 10. Babbage’s timing diagram. Although this diagram

is known to contain several errors, it provides valuable insight

into the operation of the machine.

Babbage provided a detailed timing diagram for theoperation of the engine (Figure 10). It is known that thisdiagram has minor errors, but when studying the timingof the mechanism it became apparent that Babbage hadeither not noticed, or had chosen not to exploit, a num-ber of simplifications. Babbage may have been concernedabout the loading on the control mechanism and the con-sequent potential for wear during operation. He providedcompletely independent control paths for the odd sectors,even sectors, odd axes and even axes. For the model I wasable to combine some of these controls, substituting a sin-gle rotary motion for all the columns for the four Babbageprovided, and combining the vertical motions of the oddand even axes into a single control. A similar simplifi-cation was possible for the rotary motion of the carry

Page 8: Modeling the Difference Engines of Charles Babbage

26 Journal of the Oughtred Society

columns, where the model uses a single control comparedto Babbage’s two.

But the biggest difference between the model and theprototype is in the implementation of the timing controlitself. In the prototype, Babbage used a stack of 14 com-plementary cam pairs. Each individual motion is gen-erated by a cam follower acted on by one of these campairs. The cams are complementary in profile so that thecontrol lever is driven positively in both directions, withno springs required. The cam follower connects to a hor-izontal rod running along the machine. Lateral motionof this rod is translated into either a rotary motion usinga rack and pinion, or a vertical motion by a bell crank,as required. These controls are required to handle a sub-stantial load since an individual axis to be raised has aweight of the order of 100 pounds.

Although the Meccano model is of much lighter con-struction and somewhat smaller scale, it is not possibleto duplicate this mechanism in the same form. Thereare two reasons. First, it is not possible to create camswith the elaborately machined profiles Babbage specified,and second, Meccano parts would be nowhere near strongenough to handle the large forces that such a mechanismwould be called on to transmit.

Figure 11. Close-up of the control section showing cam stack,

differential power transmission gearing, and operating levers.

My solution (Figure 11) is to employ for each control,an intermittent motion mechanism based on a differentialgear. Power from the main crank is transmitted to thehub of this differential and from there to either one or theother output. Most of the time, one shaft (which drivesthe load) is locked in place and the other output turns

freely. The cam operates a plunger that unlocks the out-put shaft to the load and simultaneously locks the other,normally freely turning output. Power is thus transmit-ted to the load. Each trigger from the cam gives preciselyone half a turn at the output. This is then translated viaa crank into either a rotary or a lateral motion of a shaftrunning along the machine. At each column this motioncan then be converted back to either a lifting motion ora rotary motion of the column.

In this way the cam stack only has to provide light-weight control, the power being delivered indirectly viathe differential mechanisms. This works well once cor-rectly set up, but does have one big disadvantage com-pared to Babbage’s solution. The prototype is stateless,whereas the model’s control is statefull. Consider a lift-ing motion in which an axis can be either up or down.In the prototype this would correspond to a cam profileraised in one portion of the cycle and lowered in another,whereas in the model it corresponds to two points on thecycle where the mechanism is triggered to provide a halfturn of motion. Via the crank, one of these raises the axisand the other lowers it. Should this mechanism ever getout of phase for any reason, disaster ensues!

The completed model stands approximately three feettall, four feet long and one foot deep. It contains almost25000 individual parts (including nuts and bolts), andweighs about 250 lbs. It calculates at a rate of one re-sult every 6-8 seconds, comparable to the speed of theprototype. I estimate having spent over 1000 hours in itsconstruction. Its first public demonstration took placeat the inaugural Maker Faire held in April 2006 in SanMateo, California.

References

[1] Lardner, D., “Babbage’s Calculating Engine”, EdinburghReview, 59, pp263-327, 1834.

[2] Williams, M.R., “The Scientific Library of Charles Bab-bage”, Annals of the History of Computing, 3:3, pp235-240, 1981.

[3] Grattan-Guinness, I., “The computation factory: de Prony’sproject for making tables in the 1790s”, in Campbell-Kelly, M.,Croarken, M. Flood, R., & Robson, E. (eds.), The History of Math-ematical Tables, Oxford: Oxford University Press, 2003.

[4] Collier, B., The Little Engines that Could’ve: The Calcu-lating Machines of Charles Babbage, Harvard PhD thesis, 1970.Reprinted New York: Garland, 1991.

[5] Babbage, C., Passages from the Life of a Philosopher,reprinted in The Works of Charles Babbage, v.11, p338, New York:New York University Press, 1989.

[6] Swade, D., The Cogwheel Brain, London, Little Brown andCompany, 2000.

[7] ibid., p229[8] Babbage, C., The Ninth Bridgewater Treatise, Chapters

VIII & XIII, reprinted in The Works of Charles Babbage, v.9, NewYork: New York University Press, 1989.

[9] http://meccano.us/difference engines/rde 1/index.html[10] Robinson, T.B., “Difference Engine No. 1” Constructor

Quarterly, 67, 13-27, March 2005.[11] Swade, D., “Charles Babbage’s Difference Engine No. 2:

Technical Description”, Science Museum Papers in the History ofTechnology No.5, London: Science Museum, 1996.

[12] Brief clips of the Science Museum’s Difference Engine #2in operation can be seen in the film “To Dream Tomorrow”. Seehttp://www.mith.umd.edu/flare/lovelace/