About 175 years ago, Charles Babbage conceived a general-purpose machine that could be programmed by the user to execute a repertoire of instructions in the desired order. The design of the so-called “Analytical Engine,” mechanical in nature, includes most of the logical parts of a modern computer. Capable of storing 1000 numbers of 50 digits each, it could never be built by Babbage, because at that time the available technology was not up to the project.

Charles Babbage was born in Great Britain on 26 December. A mathematician by profession, he devoted almost his entire life to the development of a mechanism capable of automatically producing number tables—similar to logarithm tables—that were used at the time as instruments to facilitate calculations. Babbage knew that the available tables contained errors, generally due to how tedious it was to manually perform the hundreds of thousands of calculations needed to produce them. A machine, even if its design and construction presented a very high difficulty, would be free from these problems. Far from being discouraged by the challenge that such an endeavor represented, Babbage based his work on earlier efforts by Blaise Pascal and Gottfried Leibniz, who had built calculating machines years before to design his devices.

Babbage's Analytical Engine
Charles Babbage

The Difference Engine and the Need for Programmability

Babbage's first major project was a “mechanical computer” called the “Difference Engine.” Although the machine was never built—mainly for economic reasons—its design was capable of producing tables of logarithms and trigonometric functions through a method that used polynomials. However, despite its advantages, the Difference Engine could not be used for calculations other than those mentioned. Babbage realized that, to be truly useful, his machine had to be able to modify its operation so that the operator could use it to produce any table he needed. In other words, the machine had to be “programmable.”

Babbage began to give shape to a general-purpose machine, which he would call the “Analytical Engine.” Recall that this was happening in the early decades of the 19th century, and electronics were still unknown, so the machine he designed had to be mechanical in nature. For years Babbage worked on the design of the Analytical Engine, making calculations and drawing plans. The final model required the power of a steam engine to operate, and measured about ten meters wide by thirty meters long. Despite being completely mechanical, it could be programmed in a language similar to the “assembly” used by modern computers.

How the Analytical Engine Worked

For this, Babbage had provided a unit capable of reading punched cards (which were already used in looms and other similar equipment) and one for punching cards with the results. To get an idea of this machine's capacity, it could retain in its “memory” 1000 numbers of 50 digits each, and had an “arithmetic unit” capable of performing common arithmetic operations. In addition to punching cards, the Analytical Engine was equipped with a printer and a bell that announced that the artifact had finished its work.

Babbage's Analytical Engine
Plan of Charles Babbage's Analytical Engine

The design of this printer alone is enough to consider Charles Babbage a genius. A century and a half after it was designed, the Science Museum in London used Babbage's plans to build a functional model of it, which has more than 8000 parts and weighs about 2.5 tons. Despite being simply one of the Analytical Engine's peripherals, the device allows modifying parameters such as line spacing, typography (one of two available), and the number of columns of printed tables.

A True Programming Language

But what makes the Analytical Engine completely different from all machines designed up to that moment is, of course, its ability to alter its internal operation based on the dictates of a program. This “programming language” allowed loops (like modern While-End or For-Next) and decision-making (in the style of If-Then). Babbage had planned the use of three different kinds of punched cards: one for arithmetic operations, one for introducing numerical constants, and another for operations that used the data memory. The Analytical Engine had three different readers, one for each type of card.

Babbage's Analytical Engine
The Machine, at the Science Museum in London.

Why It Was Never Built

But just as with the Difference Engine, Babbage never got to see his brilliant invention built. Although the plans were correct, the problems derived from alloys and the precision with which gears were built, added to the meager government funds obtained to carry out construction, prevented its practical realization. Henry P. Babbage, Charles's son, built in 1910 a part of the Analytical Engine, which despite lacking memory and not being reprogrammable, was able to calculate a list with the multiples of PI. The list contained some errors, but practically demonstrated that the designs were correct. Today it is rightly considered that Charles Babbage is one of the fathers of computing.

Babbage's Analytical Engine
Babbage's Analytical Engine

Read more about the Analytical Engine on Wikipedia.