Analytical engine
From Wikipedia, the free encyclopedia
The analytical engine, an important step in the history of computers, was the design of a mechanical general-purpose computer by the British mathematician Charles Babbage. It was first described in 1837, but Babbage continued to work on the design until his death in 1871. Because of financial, political, and legal issues, the engine was never built. In its logical design the machine was essentially modern, anticipating the first completed general-purpose computers by about 100 years.
Some believe that the technological limitations of the time were a further obstacle to the construction of the machine; others believe that the machine could have been built successfully with the technology of the era if funding and political support had been stronger. Charles Babbage was notoriously hard to work with and alienated a great number of people who had at first supported him, including his engineer Joseph Clement.[1]
Contents |
[edit] Design
Charles Babbage's first attempt at a mechanical computing device was the difference engine, a special-purpose calculator designed to tabulate logarithms and trigonometric functions by evaluating approximate polynomials. As this project faltered for personal and political reasons, he realized that a much more general design was possible and started work designing the analytical engine.
The input (programs and data) 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 (i.e., a memory) capable of holding 1,000 numbers of 50 decimal digits each (ca. 20.7kB). An arithmetical unit (the "mill") 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,[2] with the long store exiting off to one side. (Later drawings depict a regularized grid layout.)[3] Like the central processing unit (CPU) 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," in order to carry out some of the more complex instructions the user's program might specify.[4] (See microcode for the modern equivalent.)
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 long before Alan Turing's concept. 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 King, Countess of Lovelace, who had become interested in the engine ten 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 honour.
[edit] Partial 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.[4] But in 1878, a committee of the British Association for the Advancement of Science recommended against constructing the analytical engine, which sank Babbage's efforts for government funding.[clarification needed]
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. (Popular images of this section have sometimes been mislabelled, implying that it was the entire mill or even the entire engine.)
Henry also proposed building a demonstration version of the full engine, with a smaller storage capacity: "perhaps for a first machine ten[columns] would do, with fifteen wheels in each".[5] 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 [twenty thousand] cards should not be used if necessary, in an Analytical Engine for the purposes of the mathematician."[5]
[edit] Influence
[edit] Computer science
The analytical engine was almost forgotten, with three known exceptions. Percy Ludgate wrote about the engine in 1915 and even designed his own analytical engine (it was drawn up in detail but never built). Ludgate's engine would be much smaller than Babbage's of about 8 cubic feet (230 L) and hypothetically would be capable of multiplying two 20-decimal-digit numbers in about six seconds. Leonardo Torres y Quevedo and Vannevar Bush also knew of Babbage's work, though the three inventors likely did not know of each other.
Closely related to Babbage's work on the analytical engine was the work of George Stibitz of Bell Laboratories in New York just prior to WWII, as well as Howard Hathaway Aiken at Harvard University during and just after WWII. They both built electromechanical (i.e. relay-and-switch) computers which were closely related to the analytical engine, though neither was quite a modern programmable computer. Aiken's machine was largely financed by IBM and was called the Harvard Mark I. Aiken was inspired by a piece of the Analytical engine deposited at the university by Henry Babbage in 1886, and discovered by him in the 1930s. He gained access to Babbage's writings and later claimed, pointing to Babbage's books:[6]
There's my education in computers, right there; this is the whole thing, everything I took out of a book.
In molecular nanotechnology, the earliest proposal for a way to implement extremely small and fast computers relied upon logic gates constructed from sliding rods and stubby protrusions to conditionally restrict their motion.[1] Similar computational "rod-logic" was present in the sliding control levers and studded barrel devices which were used to access the microprogram in Babbage's design.[4]
As soon as an Analytical Engine exists, it will necessarily guide the future course of the science.
—Passages from the Life of a Philosopher, Charles Babbage
[edit] Fiction
- 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 (or the Clockwork Ouroboros as it is also known there) 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.
- 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-1800s. 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 started 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.
- 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 Pokrov. It is used to calculate income tax.
[edit] Comparison to other early computers
If the Analytical Engine had been built, it would have been in many ways more advanced than some of the first computers that emerged in the 1940s. 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.
Name | First operational | Numeral system | Computing mechanism | Programming | Turing complete |
---|---|---|---|---|---|
Zuse Z3 (Germany) | May 1941 | Binary | Electro-mechanical | Program-controlled by punched film stock | Yes (1998) |
Atanasoff–Berry Computer (US) | 1942 | Binary | Electronic | Not programmable—single purpose | No |
Colossus Mark 1 (UK) | February 1944 | Binary | Electronic | Program-controlled by patch cables and switches | No |
Harvard Mark I – IBM ASCC (US) | May 1944 | Decimal | Electro-mechanical | Program-controlled by 24-channel punched paper tape (but no conditional branch) | No |
Colossus Mark 2 (UK) | June 1944 | Binary | Electronic | Program-controlled by patch cables and switches | No |
ENIAC (US) | July 1946 | Decimal | Electronic | Program-controlled by patch cables and switches | Yes |
Manchester Small-Scale Experimental Machine (UK) | June 1948 | Binary | Electronic | Stored-program in Williams cathode ray tube memory | Yes |
Modified ENIAC (US) | September 1948 | Decimal | Electronic | Program-controlled by patch cables and switches plus a primitive read-only stored programming mechanism using the Function Tables as program ROM | Yes |
EDSAC (UK) | May 1949 | Binary | Electronic | Stored-program in mercury delay line memory | Yes |
Manchester Mark 1 (UK) | October 1949 | Binary | Electronic | Stored-program in Williams cathode ray tube memory and magnetic drum memory | Yes |
CSIRAC (Australia) | November 1949 | Binary | Electronic | Stored-program in mercury delay line memory | Yes |
[edit] References
- ^ Disagreeable Babbage
- ^ Babbage’s Analytical Engine: The First True Digital Computer
- ^ Calculating Engines - The Babbage Pages
- ^ a b c Difference Engines - Tim Robinson's Meccano Computing Machinery web site
- ^ a b The Analytical engine By Major-General H. P. Babbage - From the Proceedings of the British Association, 1888; Paper read at Bath, September 12, 1888
- ^ Babbage and Aiken - IEEE Annals of the History of Computing, Volume 10 , Issue 3 (July 1988)
[edit] 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" (1840), plus a modern description of operational & programming features. (Part of a site at Stanford University entitled "Precursor to Modern Computing: Charles Babbage and His Calculating Engines.")
- Image of a later Plan of Analytical Engine with grid layout (1858)
- Randell, Brian, 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, demonstrating its feasibility for storing and accessing a micro program. (Modern CPUs still rely on an analogous capability.)
- Special issue, IEEE Annals of the History of Computing, Volume 22, Number 4, October–December 2000.