The Analytical Engine was a proposed mechanical general-purpose computer designed by English
mathematician Charles Babbage. It was first described in 1837 as the successor
to Babbage's Difference engine, a design for a mechanical computer. The Analytical Engine
incorporated an arithmetic logic unit, control flow in the form of conditional branching
and loops, and integrated memory, making it the first design for a general-purpose computer
that could be described in modern terms as Turing-complete.
Babbage was never able to complete construction of any of his machines due to conflicts with
his chief engineer and inadequate funding. It was not until the 1940s that the first
general-purpose computers were actually built.
Design
During Babbage's difference engine project, he realized that a much more general design,
the Analytical Engine, was possible. The input was to be provided to the machine via punched
cards, a method being used at the time to direct mechanical looms such as the Jacquard
loom. For output, the machine would have a printer, a curve plotter and a bell. The machine
would also be able to punch numbers onto cards to be read in later. It employed ordinary
base-10 fixed-point arithmetic. There was to be a store capable of holding
1,000 numbers of 40 decimal digits each. An arithmetical unit would be able to perform
all four arithmetic operations, plus comparisons and optionally square roots. Initially it
was conceived as a difference engine curved back upon itself, in a generally circular
layout, with the long store exiting off to one side. Like the central processing unit
in a modern computer, the mill would rely upon its own internal procedures, to be stored
in the form of pegs inserted into rotating drums called "barrels", to carry out some
of the more complex instructions the user's program might specify.
The programming language to be employed by users was akin to modern day assembly languages.
Loops and conditional branching were possible, and so the language as conceived would have
been Turing-complete as later defined by Alan Turing. 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 Luigi Menabrea, whom Babbage had met while travelling in Italy,
wrote a description of the engine in French. In 1843, the description was translated into
English and extensively annotated by Ada Byron, Countess of Lovelace, who had become interested
in the engine eight years earlier. In recognition of her additions to Menabrea's paper, which
included a way to calculate Bernoulli numbers using the machine, she has been described
as the first computer programmer. The modern computer programming language Ada is named
in her honor. Construction
Late in his life, Babbage sought ways to build a simplified version of the machine, and assembled
a small part of it before his death in 1871. 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 Prevost Babbage reported that a part of the mill and the printing
apparatus had been constructed, and had been used to calculate a list of multiples of pi.
This constituted only a small part of the whole engine; it was not programmable and
had no storage. Henry Babbage's "Analytical Engine Mill" is on display at the Science
Museum in London. Henry also proposed building a demonstration version of the full engine,
with a smaller storage capacity: "perhaps for a first machine ten would do, with fifteen
wheels in each". Such a version could manipulate 20 numbers of 25 digits each, and what it
could be told to do with those numbers could still be impressive. "It is only a question
of cards and time", wrote Henry Babbage in 1888, "... and there is no reason why cards
should not be used if necessary, in an Analytical Engine for the purposes of the mathematician".
In 1991, the London Science Museum built a complete and working specimen of Babbage's
Difference Engine No. 2, a design that incorporated refinements Babbage discovered during the
development of the Analytical Engine. This machine was built using materials and engineering
tolerances that would have been available to Babbage, quelling the suggestion that Babbage's
designs could not have been produced using the manufacturing technology of his time.
In October 2010, John Graham-Cumming started a campaign to raise funds by "public subscription"
to enable serious historical and academic study of Babbage's plans, with a view to then
build and test a fully working virtual design which will then in turn enable construction
of the physical Analytical Engine. As of October 2013, no actual construction had been reported.
Instruction set Babbage is not known to have written down
an explicit set of instructions for the engine in the manner of a modern processor manual.
Instead he showed his programs as lists of states during their execution, showing what
operator was run at each step with little indication of how the control flow would be
guided. Bromley has assumed that the card deck could be read in forwards and backwards
directions as a function of conditional branching after testing for conditions, which would
make the engine Turing-complete:
The introduction for the first time, in 1845, of user operations for a variety of service
functions including, most importantly, an effective system for user control of looping
in user programs. There is no indication how the direction of
turning of the operation and variable cards is specified. In the absence of other evidence
I have had to adopt the minimal default assumption that both the operation and variable cards
can only be turned backward as is necessary to implement the loops used in Babbage’s
sample programs. There would be no mechanical or microprogramming difficulty in placing
the direction of motion under the control of the user.
From Bromley, A.G. Babbage's Analytical Engine Plans 28 and 28a. The programmer's interface.
Annals of the History of Computing, IEEE. 2000
In their emulator of the engine, Fourmilab say:
The Engine's Card Reader is not constrained to simply process the cards in a chain one
after another from start to finish. It can, in addition, directed by the very cards it
reads and advised by the whether the Mill's run-up lever is activated, either advance
the card chain forward, skipping the intervening cards, or backward, causing previously-read
cards to be processed once again.
This emulator does provide a written symbolic instruction set, though this has been constructed
by its authors rather than based on Babbage's original works. For example a factorial program
would be written as:
N0 6 N1 1
N2 1 ×
L1 L0
S1 -
L0 L2
S0 L2
L0 CB?11
where the CB is the conditional branch instruction or "combination card' used to make the control
flow jump, in this case backwards by 11 cards. Influence
Predicted influence Babbage understood that the existence of an
automatic computer would kindle interest in the field now known as algorithmic efficiency,
writing in his Passages from the Life of a Philosopher, "As soon as an Analytical Engine
exists, it will necessarily guide the future course of the science. Whenever any result
is sought by its aid, the question will then arise—By what course of calculation can
these results be arrived at by the machine in the shortest time?"
Computer science Swedish engineers Georg and Edvard Scheutz,
inspired by a description of the difference engine, created a mechanical calculation device
based on the design in 1853. Table-sized instead of room-sized, the device was capable of calculating
tables, but imperfectly. From 1872 Henry continued diligently with
his father's work and then intermittently in retirement in 1875. Percy Ludgate wrote
about the engine in 1915 and even designed his own Analytical Engine. Ludgate's engine
would be much smaller than Babbage's of about 8 cubic feet, and hypothetically would be
capable of multiplying two 20-decimal-digit numbers in about six seconds.
Despite this ground work, Babbage's work fell into historical obscurity, and the Analytical
Engine was unknown to builders of electro-mechanical and electronic computing machines in the 1930s
and 1940s when they began their work, resulting in the need to re-invent many of the architectural
innovations Babbage had proposed. Howard Aiken, who built the quickly-obsoleted electromechanical
calculator, the Harvard Mark I, between 1937 and 1945, praised Babbage's work likely as
a way of enhancing his own stature, but knew nothing of the Analytical Engine's architecture
during the construction of the Mark I, and considered his visit to the constructed portion
of the Analytical Engine "the greatest disappointment of my life". The Mark I showed no influence
from the Analytical Engine and lacked the Analytical Engine's most prescient architectural
feature, conditional branching. J. Presper Eckert and John W. Mauchly similarly were
not aware of the details of Babbage's Analytical Engine work prior to the completion of their
design for the first electronic general-purpose computer, the ENIAC.
Comparison to other early computers If the Analytical Engine had been built, it
would have been digital, programmable and Turing-complete. However, it would have been
very slow. Ada Lovelace reported in her notes on the Analytical Engine: "Mr. Babbage believes
he can, by his engine, form the product of two numbers, each containing twenty figures,
in three minutes". By comparison the Harvard Mark I could perform the same task in just
six seconds. A modern PC can do the same thing in well under a millionth of a second.
In popular culture The cyberpunk novelists William Gibson and
Bruce Sterling co-authored a steampunk novel of alternative history titled 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. There is also mention of the Analytical Engine
in The Book of the War, a Faction Paradox anthology edited by Lawrence Miles. This machine
was used to calculate a way into the "Eleven Day Empire". Its use resulted in the destruction
of the original Houses of Parliament. In the novel Perdido Street Station, by British
author China Miéville, engines similar to Babbage's serve as "brains" for the robotic
constructs of the city of New Crobuzon. One such engine even develops sentient thought
due to a recursive algorithmic loop. The British Empire of The Peshawar Lancers
by S. M. Stirling features a massive water powered engine at Oxford, used by two of the
main characters. It is noted that most of the engines run on steam, and that an even
larger one is under construction at the British Capital in Delhi.
In the Michael Flynn novel In the Country of the Blind, a secret society calling itself
the Babbage Society secretly financed the building of Babbage Engines in the mid-19th
century. In the novel, the Society uses the Babbage engines along with a statistical science
called Cliology to predict and manipulate future history. In the process, they predict
the rise of the Nazis and accidentally start the US Civil War.
In the Neal Stephenson novel The Diamond Age, ubiquitous molecular nanotechology is described
to make use of "rod logic" similar to that imagined by Babbage's design for the Analytical
Engine. Moriarty by Modem, a short story by Jack Nimersheim,
describes an alternate history where Babbage's Analytical Engine was indeed completed and
had been deemed highly classified by the British government. The characters of Sherlock Holmes
and Moriarty had in reality been a set of prototype programs written for the Analytical
Engine. This short story follows Holmes as his program is rebooted on modern computers
and he is forced to compete against his nemesis yet again in the modern counterparts of Babbage's
Analytical Engine. A similar setting is used by Sydney Padua
in the webcomic The Thrilling Adventures of Lovelace and Babbage. It features a pocket
universe where Ada Lovelace and Babbage have built the Analytical Engine and use it to
fight crime at Queen Victoria's request. The comic is based on thorough research on the
biographies and correspondence between Babbage and Lovelace, which is then twisted for humorous
effect. Georgia on My Mind is a novelette by Charles
Sheffield which involves two major themes: being widowed and the quest for a legendary
Babbage computer. Hugh Cook's fantasy novels The Wishstone and
the Wonderworkers and The Wazir and the Witch feature an Analytical Engine created by the
scientist Ivan Petrov. It is used to calculate income tax.
The Orion's Arm online project features the Machina Babbagenseii, fully sentient Babbage
inspired mechanical computers. Each is the size of a large asteroid, only capable surviving
in microgravity conditions, and processes data at 0.5% the speed of a human brain.
The flying ships in the anime Last Exile are seen to have analytical engines inside of
them. Although some have more advanced technology, the common ships use analytical engines, and
even some of the advanced ships are seen to have clockwork mechanisms as well.
A working version of the Analytical Engine, created by fictional inventor Ernest Harding
was featured on the Murdoch Mysteries, in Season 5, Episode 9, Invention Convention.
References
External links
The Analytical Engine at Fourmilab, includes historical documents and online simulations
L. F. Menabrea, Ada Augusta, Sketch of the Analytical Engine, Bibliothèque Universelle
de Genève, Number 82, October 1842 Image of the "General Plan of Babbage's great
calculating engine", plus a modern description of operational & programming features
Image of a later Plan of Analytical Engine with grid layout
Brian Randell, From Analytical Engine to Electronic Digital Computer: The Contributions of Ludgate,
Torres, and Bush, Annals of the History of Computing, Volume 4, Number 4, October 1982
First working Babbage "barrel" actually assembled, circa 2005
Special issue, IEEE Annals of the History of Computing, Volume 22, Number 4, October–December
2000 Babbage, Science Museum, London