The analytical engine, an important step in the history of computers, is the design of a mechanical, modern general purpose computer by the British professor of mathematics Charles Babbage. It was first described in 1837, but Babbage continued to work on his design throughout his life, which ended in 1871. Because of financial and technical (eg, legal problems) issues, the engine was never actually finished. It is generally acknowledged that the design was correct and that the engine would have worked, however the precision required for the gears would not be possible until decades later. Logically comparable general purpose computers did not come into existence until about 100 years later.
Babbage began by designing and partially constructing his Difference engine, a mechanical special purpose computer designed to tabulate logarithms and trigonometric functions by evaluating approximating polynomials. When he realized that a much more general design was possible, he started to work on the analytical engine instead.
The machine was to be powered by a steam engine and would have been over 30 metres long and 10 metres wide. The input (programs and data) were to be provided to the machine on punch cards, a method being used at the time to direct mechanical looms. For output, the machine was planned to have a printer, a curve plotter and a bell. The machine could also punch numbers onto cards to be read in later. It employed ordinary base-10 fixed point arithmetic. There was a store (ie, memory) capable of holding 1000 numbers of 50 digits each. An arithmetical unit (called the "mill") was able to perform all four arithmetical operations.
The programming language to be employed was akin to modern day assembly languages. Loops and conditional branching were possible and so the language as conceived would have been 'equivalent' to modern computer programming languages in the range of programs which it could specify. Three different types of punch cards were used: one for arithmetical operations, one for numerical constants, and one for load and store operations, transferring numbers from the store to the arithmetical unit or back. There were three separate readers for the three types of cards.
In 1842, the Italian mathematician Menabrea, who had met the travelling Babbage in Italy, wrote a description of the engine in French, which was translated into English and extensively annotated by Lady Ada Augusta, Countess of Lovelace in 1843. She had already become interested in the engine -- 10 years earlier. Based on her additions to Menabrea's paper, she has been described as the first computer programmer. The modern computer programming language Ada, is named in her honour.
In 1878, a committee of the British Association for the Advancement of Science recommended against constructing the analytical engine.
In 1910, Babbage's son Henry P. Babbage reported that a part of the mill and the printing apparatus had been constructed and had been used to calculate a (faulty) list of multiples of Pi. This constituted only a small part of the whole engine; it was not programmable and had no storage.
The analytical engine was then all but forgotten. However, George Stibitz of Bell Laboratories in New York just prior to WWII, and Howard Hathaway Aiken at Harvard, during and just after WWII, both built electromechanical (ie, relay and switches) computers which were closely related to the Anaytical Engine, though neither was (quite) a modern programmable computer. Aiken's machine was largely financed by IBM and was called the Harvard Mark I.
From Babbage's autobiography:
- As soon as an Analytical Engine exists, it will necessarily guide the future course of the science.
The cyberpunk novelists William Gibson and Bruce Sterling co-authored a steampunk novel of alternative history entitled The Difference Engine in which Babbage's difference and analytical engines became available to Victorian society. The novel explores the consequences and implications of the early introduction of computational technology.