Charles Babbage - The First Computer Visionary
Charles Babbage - The First Computer Visionary
Written by Mike James   
Article Index
Charles Babbage - The First Computer Visionary
Difference and Analytical Engines

Born in 1791, Charles Babbage was the man who invented calculating machines that, although they were never realised in his lifetime,  are rightly seen as the forerunners of modern programmable computers. This is the story of his life, his Difference Engine and Analytical Engine.


Can you imagine a steam-driven computer the size of a room?


No, far from it. A computer can be implemented using all sorts of technology - electromechanical (relays), valves, transistors and, most recently of all, integrated circuits.

The idea of a computer is independent of the hardware used to implemented it and a purely mechanical computer is just a feasible as a purely electronic one. Charles Babbage may never have built his computer but it was a computer - designed in metal and intended to be driven by a steam engine.

A Victorian eccentric?

No, the father of computing and a surprisingly modern thinker.



Charles Babbage
(December 26, 1791- October 18, 1871)


Charles Babbage was born in Surrey on Boxing Day 1791, the son of a banker. This may have been the source of his fascination with numbers but whatever the reason he occupied the Lucasian chair of mathematics at Cambridge from 1828 to 1839. To characterise Babbage as a mathematician is misleading because his interests were much more wide ranging - a polymath is closer.

Number crunching

In Babbage's day mathematics was capable of delivering in theory more than it could in practice. The reason was simply the difficulties in performing the huge amounts of arithmetic needed for tide prediction, navigation and life insurance risks to name but three important numerical problems of the time. Even a few tens of years ago mathematical tables of all sorts were commonplace.

Now it is cheaper, simpler and more reliable to calculate every result from scratch every time it is needed. Before the computer tables were vital but the only way to produce them was laborious and error prone using human effort. Sir John Herschel, the astronomer, said

"an undetected error in a logarithmic table is like a sunken rock at sea"

- dramatic but none the less true.

The solution to the problem was some kind of calculating aid but before the development of electrical science this is easier said than done. There had been mechanical calculating devices before Babbage. Perhaps the best known is the Pascaline, an arrangement of cogs and gears invented by Pascal in 1642. These machines may not have been powerful or reliable but they did show that it was possible to add and subtract using mechanical gear wheels to count up or down. (And we all know that multiplication is just repeated addition and division is just repeated subtraction.)

Babbage didn't just make a better mechanical calculator, however, he built a machine that would perform a specific type of calculation.

The task of producing almost any mathematical table can be reduced to evaluating a suitable polynomial. A polynomial is an expression that involves nothing but squares, cubes and so on of a value.

For example,


is a fourth order polynomial because the highest power that it involves is x4.

By selecting the order and the coefficients correctly you can make a polynomial fit most other functions reasonably well. This means that you can create a table by finding a polynomial that fits the function you are interested in reasonably well and then tabulating the polynomial. The only problem is that the polynomial involves lots of multiplications and additions and isn't the sort of thing that you want to spend your life tabulating.

This is where an interesting mathematical property of polynomials becomes important. For example, consider the simple polynomial x3, i.e. x cubed. If you make a table of this function from 1 to N and then take the difference between each successive result you this is called the `1st difference'. Taking the difference between successive values in the 1st difference column gives the 2nd difference and so on. If you actually construct a difference table for x3 you will see something like the followig table.



x x3 1D 2D 3D
0 0
1 1 1
2 8 7 6
3 27 19 12 6
4 64 37 18 6
5 125 61 24 6
6 216 91 30 6



Notice that the result of the 3rd difference is a constant and so the fourth and subsequent differences would be zero.

This isn't an accident. If you take differences of an nth order polynomial the nth differences are constant and hence all subsequent differences vanish.

Well as I said an interesting property but how can it be useful?

Suppose I ask you to now work out 63 - unaided by machine!

You could start multiplying 6 by itself three times but you already know the value in the 3rd difference column of the table, 6, and adding 6 to 24 gives the next value in the 2nd difference column, i.e. 30, and adding 30 to 61 gives the next value in the 1st difference column i.e. 91 and finally adding this the to the result of 53 gives the solution 216.

So you managed to work out the result of 6 cubed by making three additions!

This is the power of the difference table.




The whole method generalises to any polynomial of any degree. All you need are the first n results in the table from which you can work out the n-1 differences. Once you have these calculating the next and subsequent values in the table is just a matter of n regular additions.

You should be able to see that this procedure is ideal for use by a machine. It is also incredibly well suited to a mechanical implementation.

All you have to do is build an adding mechanism and repeat it for each of the difference sums that you need. At the start of the calculation you would set the number wheels the values the differences and then simply turn the handle to get the next result and the next set of differences. An entire table could be produced by simply repeatedly turning the handle.



Babbage's Brain Is On Display At the London Science Museum
Photo Alan Levine







Last Updated ( Monday, 26 December 2016 )

RSS feed of all content
I Programmer - full contents
Copyright © 2017 All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.