A well known British mathematician, named Charles Babbage, came up with the idea of a machine that could compute polynomials of a variable, i.e. functions like a0 + a1x + a2x2+…+anxn. By that time the importance of such functions had already been demonstrated in the work of the French physicist J.B. Fourier (1822). Fourier was studying the problem of heat propagation. He discovered what is now referred to in the fields of physics and mathematics as the ‘Fourier series’ or ‘Fourier transform’. His discovery was that one can approximate a general function using sums of periodic functions like sin(nx) and cos(nx), in which n is an integer. In a sense, these periodic functions serve as a basis for the approximation. It was well known then, that polynomial functions may be used in a similar way. Therefore, a machine that computes polynomial functions could be used to compute an approximation for almost any function.
In the machine’s design, Babbage used a method of differences. For example, to compute f(x)= 2x2 +3x +1 for any x, it is enough to compute the value of the function for some low x’s like f(1), f(2), f(3) and f(4), the differences between those values: f(2)-f(1), f(3)-f(2), f(4)-f(3), and the differences of the differences: (f(3)-f(2))-(f(2)- f(1)) and (f(4)-f(3))- (f(3)-f(2)). In this way, it is possible to compute the value of the function at any high x. To compute f(15), the machine works through 15 cycles, at each cycle only adding ‘differences’. The machine is activated by a crank, the operator rotating a handle the necessary amount of times (in this example, 15 times). In the spirit of his time, Babbage thought of using a steam engine to work the crank and handle, so to make the operation of the machine easier.
In order to help clarify this principle, we bring the following table for our function
f(x)= 2x2 +3x +1 :
|x||f(x)||First difference||Second difference|
The machine has three cogwheels. The operator places the left wheel at state 6, the middle wheel at state 9 and the right wheel at state 4 (this corresponds to the upper diagonal in the table above). At the first half cycle, a clutch (like the one in your car) joins the left and middle wheels. The machine turns the middle wheel to zero position, that is, 9 steps clockwise, moving the left wheel 9 steps counterclockwise – bringing the left wheel to state 15. At this point, the clutch is drawn back and a spring returns the middle wheel back to its original position – state 9. At the next half cycle, the clutch joins the middle and right wheels. The machine turns the right wheel 4 steps clockwise, moving the middle wheel 4 steps counterclockwise to position 13. A spring now returns the right wheel to its original position – state 4. This completes a full cycle and brings each of the cogwheels to its next position (the second diagonal from the top).
Babbage called the machine a “difference engine “. He made a small model of it and presented it at his evening cocktail parties, as the “thinking machine”. However, he could not build the complete machine. At the time, even the most advanced technology available was far from satisfactory for the needs of such a machine. Babbage himself manufactured some of the parts necessary for the machine. In addition to a generous fund granted to him by the British government for the purpose of building such a machine, Babbage also invested all of his savings in the project.
In 1832, Babbage was a highly influential scientist in England, a well known professor at Cambridge, a member of Parliament, a member of the Royal Society (of sciences), and a famous figure in the world of economy. The next machine he was about to invent, the ‘analytical engine’, was an information- processing machine, which reflected his background in economy.
Babbage was thinking about the principle of ‘division of labor’, an economic term that had been in use since the time of Adam Smith (see the “Wealth of Nations”, 1776). According to this principle, the most efficient way to manufacture a product is to divide the work between several workers, each specializing in a certain aspect of the process. The worst, least efficient way is to let each one of the workers do the whole job.
Towards the end of the 18th century this idea was taken seriously by Gaspard de Prony, who was in charge of the new tax and measurement system in France. De Prony conceived the idea of building a huge information ‘machine’. This ‘machine’ was based on distributing the mathematical work necessary for computing between three groups of people. At the top of the computing pyramid De Prony placed several famous French mathematicians of that period, including Legendre and Carno, who gave the mathematical formulas and instructions for the computing process. At the middle of the pyramid he placed less famous mathematicians, whose task was to interpret the formulas to simple computations, and to collect results from the computing section. At the bottom of the pyramid were the ‘human computers’, whose main task was to compute, mainly adding numbers. At that time, the word ‘computer’ referred to a person whose job was to compute, not to a machine.
Babbage learned about the project during a visit to France. But De Prony’s information machine was not one of a kind. 19th century banks used ‘Clearing Houses’. These were rooms to which agents from every branch of each bank in London would arrive in at the end of each day in order to balance checks and transfer money. Babbage was visiting one of these clearing houses just before he came up with the idea of the analytic engine. This gave him a strong sense that computation includes also manipulation of symbols.
In the analytic engine, the labor of computing is divided between several parts. There is the ‘mill’, where the machine actually calculates. Babbage used notions from the cotton industry. He was inspired by the automatic looming machines of his time, especially the Jacquard loom.
Another part in the analytical engine is the ‘store’ where numbers are stored, waiting to be used by the machine. A third part of the machine includes a drum. On top of the drum there is a roll of punched cards. The cards include codes of operations and codes for the places in the ‘store’ where the variables lie. Suppose now the first card includes a code of an operation, such as subtraction or multiplication, and the second card includes a code for the locations of the variables in the ‘store’. Having read the first card, the machine tunes itself to the appropriate mode (subtraction or multiplication). After reading the second card, the machine looks for the correct place in the ‘store’. Using the cogwheels, the machine reads numbers from the ‘store’ and multiplies (or subtracts) them. The next card tells the machine where to store the result. The ‘mill’ uses the cogwheels to write the result in the ‘store’…
Looking at the machine from a distance, one could see the drum revolving and the ‘mill’ moving to and fro in front of the ‘store’. When the computation was completed the result could be read from a certain point at the ‘store’.
Babbage’s analytical engine includes all the components of a modern computer. There is the memory- the ‘store’, the central processing unit- the ‘mill’, and the program or software- the punched cards. Babbage understood that one can use numbers as codes or as data. He spent two years figuring out this scheme of computations.
It was a struggle to build the difference engine at that time, so you can imagine how building the analytical engine was virtually impossible. The British government stopped financing the project but Babbage was obsessed by his invention and seeked recognition outside England. In 1840 he traveled to Italy in order to deliver a lecture about his engines. In Italy Babbage met a mathematician named Luigi Federico Menabrea, later to become the Italian Prime Minister. Menabrea wrote a paper describing Babbage’s analytical machine, and Babbage’s old friend Ada Lovelace, a mathematician and daughter of Lord Byron, translated Menabrea’s paper into English and added a mathematical appendix (longer than the paper itself) explaining the operation of the engine. In the appendix Lovelace wrote that Babbage’s machine weaves numbers like a loom (you may have heard the name ADA, it’s a programming language named after Lady Lovelace).
I would like to conclude with Menabrea’s vision about the future role of the analytical engine, probably quoting Babbage:
“Again, who can foresee the consequences of such an invention? In truth, how many precious observations remain practically barren for the progress of the sciences, because there are not powers sufficient for computing the results! And what discouragement does the perspective of a long and arid computation cast into the mind of a man of genius, who demands time exclusively for meditation, and who beholds it snatched from him by the material routine of operations! Yet it is by the laborious rout of analysis that he must reach truth: but he cannot pursue this unless guided by numbers; for without numbers it is not given us to raise the veil which envelopes the mysteries of nature. Thus the idea of constructing an apparatus capable of aiding human weakness in such researches, is a conception which, being realized, would mark a glorious epoch in the history of the sciences.”
Babbage never lost his interest in the machine, but became angry, bitter, and frustrated with the British government for what he called a loss of sight. Well, I guess he was right!
Digital computers were forgotten for about a hundred years, from the failure of Babbage’s project to their resurrection in the 1940’s.
The difference engine, Charles Babbage and the quest to build the first computer, by Doron Swade, Penguin Group, 2000.
Jacquard’s web, How a hand loom led to the birth of the information age, by James Essinger, Oxford University Press, 2004.
About the author: Boaz Tamir holds a Ph.D. degree in Mathematics from the Weizmann Institute of Science. In 2008 he recived a second Ph.D. from the department of History and Philosophy of Science at the Bar Ilan University.