Jump to content

Analytical engine

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by ArthurBot (talk | contribs) at 15:54, 12 September 2011 (r2.6.3) (Robot: Adding cs:Analytický stroj). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Trial model of a part of the Analytical Engine, built by Babbage,[1] as displayed at the Science Museum (London)

The Analytical Engine, an important step in the history of computers, is a design for a mechanical general-purpose computer first described by English mathematician Charles Babbage in 1837.[2] It was the successor to Babbage's difference engine, a design for a mechanical calculator. The Analytical Engine incorporated an arithmetical unit, control flow in the form of conditional branching and loops, and integrated memory, making it the first Turing-complete design for a general-purpose computer.[3][4]

Babbage was never able to complete construction of any of his machines due to conflicts with his chief engineer and inadequate funding.[5][6] It was not until 100 years later, in the 1940s, that the first general-purpose computers were actually built.

Design

Two types of punched cards used to program the machine. Foreground: "operational cards", for inputting instructions; background: "variable cards", for inputting data.

Babbage's first attempt at a mechanical computing device, the difference engine, was a special-purpose calculator 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.[7][8]

During this project he realized that a much more general design, the Analytical Engine, was possible. 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 (that is, a memory) capable of holding 1,000 numbers of 50 decimal digits each (ca. 20.7 kB). 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,[9] with the long store exiting off to one side. (Later drawings depict a regularized grid layout.)[10] 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.[5] (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 Byron, 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.

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.[5] 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 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.[11]

Henry Babbage's Analytical Engine Mill, built in 1910,[11] in the Science Museum (London)

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".[12] 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."[12]

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.[13] 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.[14] Swedish engineers Georg and Edvard Scheutz had made a working version of the difference engine in 1853, although on a different scale – table-sized instead of room-sized.[6][15]

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.[16][17]

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?"[18]

Computer science

From 1872 Henry continued diligently with his father's work and then intermittently in retirement in 1875.[19] 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, 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".[20] The Mark I showed no influence from the Analytical Engine and lacked the Analytical Engine's most prescient architectural feature, conditional branching.[21] 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.[22][23]

Fiction

  • In the novel Perdido Street Station, by British author China Miéville, analytical 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.
  • 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.[24][25] 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.[26] The comic is based on thorough research on the biographies and correspondence between Babbage and Lovelace, which is then twisted for humorous effect.

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
Analytical Engine (never built) Decimal Mechanical Program-controlled by punched cards Yes
Zuse Z3 (Germany) May 1941 Binary floating point Electro-mechanical Program-controlled by punched 35 mm film stock (but no conditional branch) Yes (1998)
Atanasoff–Berry Computer (US) 1942 Binary Electronic Single purpose; not programmable 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
ENIAC (US) July 1946 Decimal Electronic Program-controlled by patch cables and switches Yes

References

  1. ^ Babbage's Analytical Engine, 1834–1871. (Trial model) -Science Museum, London
  2. ^ http://radar.oreilly.com/2010/10/the-100-year-leap.html
  3. ^ http://www.sciencemuseum.org.uk/onlinestuff/stories/babbage.aspx?page=5
  4. ^ http://www.newscientist.com/article/mg20827915.500-lets-build-babbages-ultimate-mechanical-computer.html
  5. ^ a b c Difference Engines - Tim Robinson's Meccano Computing Machinery web site
  6. ^ a b http://books.google.com/books?id=m4SB4BHzFeIC&pg=PA84
  7. ^ http://books.google.com/books?id=ocx4Jc12mkgC&pg=PA176
  8. ^ http://books.google.com/books?id=uw9UqlkPvMkC&pg=PA105
  9. ^ Babbage’s Analytical Engine: The First True Digital Computer
  10. ^ Calculating Engines - The Babbage Pages
  11. ^ a b Henry Babbage's Analytical Engine Mill, 1910 Science Museum, London
  12. ^ 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
  13. ^ Disagreeable Babbage "Difference Engine No. 2 was the first full sized Babbage calculating engine to be completed. It was made as a research machine for display at the 1991 exhibition..."
  14. ^ http://www.computerhistory.org/babbage/modernsequel/
  15. ^ "Babbage, Charles." Complete Dictionary of Scientific Biography. 2008. Retrieved January 30, 2011 from Encyclopedia.com: http://www.encyclopedia.com/doc/1G2-2830905456.html
  16. ^ "Campaign builds to construct Babbage Analytical Engine". BBC News. October 14, 2010.
  17. ^ http://www.plan28.org
  18. ^ Babbage, Charles (1864). "VIII". Passages from the Life of a Philosopher. Retrieved 2011-02-08.
  19. ^ "The Babbage Engine - Key People - Henry Provost Babbage". Computer History Museum. Retrieved 2011-02-08.
  20. ^ Cohen, Bernard. "8, "Aiken's Background in Computing and Knowledge of Babbage's Machines"". Howard Aiken: Portrait of a Computer Pioneer. pp. 61–72.
  21. ^ http://books.google.com/books?id=Ld7TgLeQXs4C&pg=PA72
  22. ^ Interview of Presper Eckert by Nancy Stern, October 28, 1977, Blue Bell, Pennsylvania, page 27. "To the best of my knowledge [the nested subroutine] was Mauchly's idea. I don't know whether any of those ideas showed up earlier, because I was not familiar with Babbage's work."
  23. ^ NBS Colloquium talk by John Mauchly, February 23, 1973, Ambler, Pennsylvania. "with this first electronic computer, the ENIAC, we solved the same problem [of the simultaneous carry that Babbage had solved]. It happens that the men who were building the ENIAC didn't know about Babbage. I can tell you that on a personal basis because I knew Mr. Eckert and my name is Mauchly and it just so happened that - yes, I'd heard of Babbage but of course I'd also heard at the same time that he was interested in some kind of mechanical calculators back in the previous century, so it never occurred to me that we should even look up a single reference on Babbage at that time. We knew how we were going to build an electronic calculator. What in the world profit could we get from looking up these old references on the last century? So we went busily ahead getting an ENIAC, only to find out when we got through that Babbage wasn't exactly out of touch with what we were trying to do next - namely, an EDSAC. But that's the kind of history that has a chance of repeating too, and the same thing happened to Aiken..."
  24. ^ The Thrilling Adventures of Lovelace and Babbage
  25. ^ Experiments in Comics with Sydney Padua
  26. ^ Babbage and Lovelace Vs The Client