Analytical Engine
History of computing |
---|
Hardware |
Software |
Computer science |
Modern concepts |
Timeline of computing |
|
The Analytical Engine was a proposed mechanical general-purpose computer designed by English mathematician and computer pioneer Charles Babbage.[2][3] It was first described in 1837 as the successor to Babbage's difference engine, a design for a mechanical computer.[4] 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.[5][6] In other words, the logical structure of the Analytical Engine was essentially the same as that which has dominated computer design in the electronic era.[3]
Babbage was never able to complete construction of any of his machines due to conflicts with his chief engineer and inadequate funding.[7][8] It was not until the 1940s that the first general-purpose computers were actually built, more than a century after Babbage had proposed the pioneering Analytical Engine in 1837.[3]
Design
Babbage's first attempt at a mechanical computing device, the Difference Engine, was a special-purpose machine designed to tabulate logarithms and trigonometric functions by evaluating finite differences to create approximating polynomials. Construction of this machine was never completed; Babbage had conflicts with his chief engineer, Joseph Clement, and ultimately the British government withdrew its funding for the project.[9][10][11]
During this project, he realized that a much more general design, the Analytical Engine, was possible.[9] The work on the design of the Analytical Engine started in c. 1833.[12][4]
The input, consisting of programs and data ("formulae" and "data")[13][9] 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.[14] For output, the machine would have a printer, a curve plotter and a bell.[9] The machine would also be able to punch numbers onto cards to be read in later. It employed ordinary base-10 fixed-point arithmetic.[9]
There was to be a store (that is, a memory) capable of holding 1,000 numbers of 40 decimal digits[15] each (ca. 16.2 kB). An arithmetical unit (the "mill") would be able to perform all four arithmetic operations, plus comparisons and optionally square roots.[16] Initially (1838) 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.[17] Later drawings (1858) depict a regularized grid layout.[18] 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", to carry out some of the more complex instructions the user's program might specify.[7]
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. Babbage developed some two dozen programs for the Analytical Engine between 1837 and 1840, and one program later.[14][19] These programs treat polynomials, iterative formulas, Gaussian elimination, and Bernoulli numbers.[14][20]
In 1842, the Italian mathematician Luigi Federico Menabrea published a description of the engine based on a lecture by Babbage in French. In 1843, the description was translated into English and extensively annotated by Ada 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.
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.[7]
In 1878, a committee of the British Association for the Advancement of Science described the Analytical Engine as "a marvel of mechanical ingenuity", but recommended against constructing it. The committee acknowledged the usefulness and value of the machine, but could not estimate the cost of building it, and were unsure whether the machine would function correctly after being built.[22][23]
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 (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 Babbage's "Analytical Engine Mill" is on display at the Science Museum in London.[21] 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".[24] 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".[24]
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.[5] 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.[25]
In October 2010, John Graham-Cumming started a "Plan 28" 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.[26][27] As of May 2016, actual construction had not been attempted, since no consistent understanding could yet be obtained from Babbage’s original design drawings.[28] By 2017, the "Plan 28" effort reported that a searchable database of all catalogued material was available, and an initial review of Babbage’s voluminous Scribbling Books had been completed.[29]
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.
Allan G. 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 cards could be ordered to move forward and reverse (and hence to loop)...[14]
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.[30]
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?"[31]
Computer science
The incomplete Analytical Engine was put on display to the public at the 1862 International Exhibition in South Kensington, London.[32]
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.[8][33]
From 1872 Henry continued diligently with his father's work and then intermittently in retirement in 1875.[34] 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.
Despite this groundwork, 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".[35] The Mark I showed no influence from the Analytical Engine and lacked the Analytical Engine's most prescient architectural feature, conditional branching.[35] 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.[36][37]
Comparison to other early computers
If the Analytical Engine had been built, it would have been digital, programmable and Turing-complete. It would, however, have been very slow. Luigi Federico Menabrea reported in Sketch of the Analytical Engine: "Mr. Babbage believes he can, by his engine, form the product of two numbers, each containing twenty figures, in three minutes".[38] 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 | Memory |
---|---|---|---|---|---|---|
Difference Engine | Not built until the 1990s | Decimal | Mechanical | Not programmable; initial numerical constants of polynomial differences set physically | No | Physical state of wheels in axes |
Analytical Engine | Not yet built | Decimal | Mechanical | Program-controlled by punched cards | Yes | Physical state of wheels in axes |
Bombe (Poland, UK, US) | 1939 (Polish), March 1940 (British), May 1943 (US) | Character computations | Electro-mechanical | Not programmable; cipher input settings specified by patch cables | No | Physical state of rotors |
Zuse Z3 (Germany) | May 1941 | Binary floating point | Electro-mechanical | Program-controlled by punched 35 mm film stock | In principle | Mechanical relays |
Atanasoff–Berry Computer (US) | 1942 | Binary | Electronic | Not programmable; linear system coefficients input using punched cards | No | Regenerative capacitor memory |
Colossus Mark 1 (UK) | December 1943 | Binary | Electronic | Program-controlled by patch cables and switches | No | Thermionic valves (vacuum tubes) and thyratrons |
Harvard Mark I – IBM ASCC (US) | May 1944 | Decimal | Electro-mechanical | Program-controlled by 24-channel punched paper tape (but no conditional branch) | No | Mechanical relays[39] |
Zuse Z4 (Germany) | March 1945 (or 1948)[40] | Binary floating point | Electro-mechanical | Program-controlled by punched 35 mm film stock | Yes | Mechanical relays |
ENIAC (US) | July 1946 | Decimal | Electronic | Program-controlled by patch cables and switches | Yes | Vacuum tube triode flip-flops |
Manchester Baby (UK) | 1948 | Binary | Electronic | Binary program entered into memory by keyboard[41] (first electronic stored-program digital computer) | Yes | Williams cathode ray tube |
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 (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.
- 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 analytical 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 nanotechnology 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.[42]
- A similar setting is used by Sydney Padua in the webcomic The Thrilling Adventures of Lovelace and Babbage.[43][44] It features an alternate history where Ada Lovelace and Babbage have built the Analytical Engine and use it to fight crime at Queen Victoria's request.[45] The comic is based on thorough research on the biographies of 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.[46]
- 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 (and based on the Babbage concept) was featured on the Murdoch Mysteries (also called The Artful Detective), in Season 5, Episode 9, Invention Convention.[47]
References
- ↑ "Babbage's Analytical Engine, 1834-1871. (Trial model)". Science Museum. 2007-01-16. Retrieved 2012-08-01.
- ↑ John Graham-Cumming (2010-10-04). "The 100-year leap". O'Reilly Radar. Retrieved 2012-08-01.
- 1 2 3 "The Babbage Engine: The Engines". Computer History Museum. 2016. Retrieved 2016-05-07.
- 1 2 Bromley 1982, p. 196.
- 1 2 "Babbage". Online stuff. Science Museum. 2007-01-19. Retrieved 2012-08-01.
- ↑ "Let's build Babbage's ultimate mechanical computer". opinion. New Scientist. 23 December 2010. Retrieved 2012-08-01.
- 1 2 3 Tim Robinson (2007-05-28). "Difference Engines". Meccano.us. Retrieved 2012-08-01.
- 1 2 Weber, Alan S. 19th Century Science, an Anthology. Google Books. Retrieved 2012-08-01.
- 1 2 3 4 5 Collier 1970, p. chapter 3.
- ↑ Lee, John A.n. International Biographical Dictionary of Computer Pioneers. Google Books. Retrieved 2012-08-01.
- ↑ Balchin, Jon. Science: 100 Scientists Who Changed the World. Google Books. Retrieved 2012-08-01.
- ↑ Dubbey, J. M.; Dubbey, John Michael (2004-02-12). The Mathematical Work of Charles Babbage. Cambridge University Press. p. 197. ISBN 9780521524766.
- ↑ Menabrea & Lovelace 1843.
- 1 2 3 4 Bromley 1982, p. 215.
- ↑ Bromley 1982, p. 198.
- ↑ Bromley 1982, p. 211.
- ↑ Bromley 1982, p. 209.
- ↑ "The Babbage Pages: Calculating Engines". Projects.ex.ac.uk. 1997-01-08. Retrieved 2012-08-01.
- ↑ Bromley 1990, p. 89.
- ↑ Bromley 2000, p. 11.
- 1 2 "Henry Babbage's Analytical Engine Mill, 1910.". Science Museum. 2007-01-16. Retrieved 2012-08-01.
- ↑
- Report of the Forty-Eighth Meeting of the British Association for the Advancement of Science (Report). London: John Murray. 1879. pp. 92–102. Retrieved 2015-12-20.
- ↑ "The Analytical Engine (Report 1879)". Fourmilab.ch. Retrieved 2015-12-20.
- 1 2 "The Analytical Engine (Henry P. Babbage 1888)". Fourmilab.ch. Retrieved 2012-08-01.
- ↑ "A Modern Sequel — The Babbage Engine". Computer History Museum. Retrieved 2012-08-01.
- ↑ "Campaign builds to construct Babbage Analytical Engine". BBC News. October 14, 2010.
- ↑ "Building Charles Babbage's Analytical Engine". Plan 28. 2009-07-27. Retrieved 2012-08-01.
- ↑ "Spring 2016 report to the Computer Conservation Society". Plan 28. Retrieved 29 October 2016.
- ↑ "Spring 2017 report to the Computer Conservation Society". blog.plan28.org. Retrieved 2017-06-13.
- ↑ Bromley 2000.
- ↑ Babbage 1864, p. 137.
- ↑ Tongue, Michael (2006). 3D Expo 1862. Discovery. p. 98. ISBN 9197211826.
- ↑ "Charles Babbage Facts, information, pictures | Encyclopedia.com articles about Charles Babbage". Encyclopedia.com. Retrieved 2012-08-01.
- ↑ "The Babbage Engine — Key People — Henry Provost Babbage". Computer History Museum. Archived from the original on 20 February 2011. Retrieved 2011-02-08.
- 1 2 Cohen 2000.
- ↑ "J. Presper Eckert Interview 28 October 1977". Archived from the original on July 24, 2010. Retrieved February 9, 2011.
- ↑ "Computer Oral History Collection, 1969-1973, 1977" (PDF). Archived from the original (PDF) on November 11, 2010. Retrieved February 9, 2011.
- ↑ Menabrea & Lovelace 1843, p. 688.
- ↑ "The Mark I Computer". Collection of Historical Scientific Instruments. Harvard University. Archived from the original on 2015-07-10. Retrieved 2016-05-07.
- ↑ "Konrad Zuse—the first relay computer". History of Computers. Retrieved 2016-05-07.
- ↑ "The Manchester Small Scale Experimental Machine -- "The Baby"". School of Computer Science, University of Manchester. April 1999. Retrieved 2016-05-07.
- ↑ Nimersheim, Jack (1995). "Moriarty by Modem". cheznims.com. Retrieved 2016-05-07.
- ↑ "Dangerous experiments in comics". 2D Goggles. Retrieved 2012-08-01.
- ↑ "Experiments in Comics with Sydney Padua". Tor.com. 2009-10-26. Retrieved 2012-08-01.
- ↑ "The Client | 2D Goggles". Sydneypadua.com. Retrieved 2012-08-01.
- ↑ "Machina Babbagenseii". Orion's Arm. 2014. Retrieved 2016-05-07.
- ↑ "Invention Convention" on IMDb
Bibliography
- Babbage, Charles (1864). "Chapter VIII - Of the Analytical Engine". Passages from the Life of a Philosopher. London: Longman, Green, Longman, Roberts, & Green. pp. 112–141.
- Babbage, Charles (1889). Babbage, Henry P., ed. Babbage’s Calculating Engines - Being a Collection of Papers Relating to Them; Their History, and Construction (PDF). New York: Cambridge University Press. ISBN 978-1-108-00096-3.
- Bromley, Allan G. (July–September 1982). "Charles Babbage's Analytical Engine, 1838" (PDF). IEEE Annals of the History of Computing. 4 (3): 197–217. doi:10.1109/mahc.1982.10028.
- Bromley, Allan G. (1990). "Difference and Analytical Engines" (PDF). In Aspray, William. Computing Before Computers. Ames: Iowa State University Press. pp. 59–98. ISBN 0-8138-0047-1.
- Bromley, Allan G. (October–December 2000). "Babbage's Analytical Engine Plans 28 and 28a-The Programmer's Interface". IEEE Annals of the History of Computing. 22 (4): 5–19. doi:10.1109/85.887986.
- Cohen, I. Bernard (2000). "8 - Aiken's Background in Computing and Knowledge of Babbage's Machines". Howard Aiken: Portrait of a Computer Pioneer. Cambridge: MIT Press. pp. 61–72. ISBN 9780262531795.
- Collier, Bruce (1970). The Little Engines That Could've: The Calculating Machines of Charles Babbage (Ph.D.). Harvard University. Retrieved 2015-12-18.
- Green, Christopher D. (2005). "Was Babbage’s Analytical Engine intended to be a mechanical model of the mind?" (PDF). History of Psychology. 8 (1): 35–45. doi:10.1037/1093-4510.8.1.35. Retrieved 2015-12-25.
- Hyman, Anthony (1982). Charles Babbage: A Biography. Oxford: Oxford University Press. ISBN 9780198581703.
- Menabrea, Luigi Federico; Lovelace, Ada (1843). "Sketch of the Analytical Engine invented by Charles Babbage... with notes by the translator. Translated by Ada Lovelace". In Richard Taylor. Scientific Memoirs. 3. London: Richard and John E. Taylor. pp. 666–731.
- Randell, Brian (October–December 1982). "From Analytical Engine to Electronic Digital Computer: The Contributions of Ludgate, Torres, and Bush" (PDF). IEEE Annals of the History of Computing. 4 (4).
- Wilkes, Maurice Vincent (1971). "Babbage as a Computer Pioneer". Proc. Babbage Memorial Meeting. London: British Computer Society. pp. 415–440.
External links
Wikimedia Commons has media related to Analytical Engine. |
- The Analytical Engine at Fourmilab, includes historical documents and online simulations
- "Image of the "General Plan of Babbage's great calculating engine" (1840), plus a modern description of operational & programming features". Archived from the original on 2008-08-21.
- Image of a later Plan of Analytical Engine with grid layout (1858)
- First working Babbage "barrel" actually assembled, circa 2005
- Special issue, IEEE Annals of the History of Computing, Volume 22, Number 4, October–December 2000 (subscription required)
- Babbage, Science Museum, London