The Analytical Engine

Table of Contents

----------------------------------------

All documents, programs, and downloadable software associated with The Analytical Engine are linked to entries in the following table of contents.

*
Introduction

*
Historical Documents
o
"Sketch of the Analytical Engine" by L. F. Menabrea, translated and with extensive commentary by Ada Augusta, Countess of Lovelace. This 1842 document is the definitive exposition of the Analytical Engine, which described many aspects of computer architecture and programming more than a hundred years before they were "discovered" in the twentieth century. If you have ever doubted, even for a nanosecond, that Lady Ada was, indeed, the First Hacker, perusal of this document will demonstrate her primacy beyond a shadow of a doubt.

o
"On the Analytical Engine", Chapter VIII of Charles Babbage's 1864 autobiography, Passages from the Life of a Philosopher.

o
The Report of the Committee of the British Association for the Advancement of Science which, in 1878, recommended against constructing the Analytical Engine.

o
"The Analytical Engine", paper by Major-General Henry P. Babbage (Charles Babbage's son), read at Bath on September 12th, 1888; published in the Proceedings of the British Association, 1888.

o
"Babbage's Analytical Engine", a 1910 paper by Henry P. Babbage published in the Monthly Notices of the Royal Astronomical Society 70, 517-526, 645 [Errata] (1910), describing his construction of a portion of the Mill and Printing Apparatus, used to compute a table of multiples of Pi.

o
"Pascal's Calculating Machine". After years of work, in 1645 Blaise Pascal built a gear-based mechanical adding machine. This document is Pascal's disclosure of the operation of the machine and the grant of a patent upon it in 1649 by Louis XIV, king of France. This is the original text; even if you're comfortable reading modern French, you'll probably find this seventeenth century document rather quaint.

*
The Analytical Engine Emulator
o
Programming Cards. A detailed description of the various cards used to program The Analytical Engine emulator, including a number of ready-to-run examples.

o
The Java Applet Emulator describes an Analytical Engine emulator which runs as a Java applet within a Web page. If your browser supports Java, you can run Analytical Engine simulations with no additional software or installation.

o
The Command-Line Emulator. Documentation, in Unix manual page style, of aes, a command-line emulator for The Analytical Engine which you can download in either ready-to-run object code or source code form, which runs on any computer with a compatible Java virtual machine implementation.

o
Is the Emulator Authentic? discusses the challenges one faces in developing an emulator for a machine which was never actually built, and the rationale behind some of the design decisions made in implementing it. Various aspects of The Analytical Engine are compared to those of both early electronic and present-day computers.

o
The Mathematical Function Library. Babbage immediately recognised that one great advantage of the Engine was that once a given formula was prepared for it, the cards for that formula could be placed in a library and called on whenever evaluation of it was needed in the future. This document describes a modest library of cards for evaluating the elementary transcendental functions, illustrating how the Engine might compute them.

*
Glossary of Babbage's Terminology

*
Download
These are ZIP compressed archives, some of which contain subdirectories; be sure to specify the appropriate options when extracting to preserve the directory structure. In addition, the source and object code archives contain long, upper and lower case file names. If extracted with a utility which flattens such names into MS-DOS FILENAME.EXT format, they will neither compile or execute correctly.

o
Source code for the mathematical function library. Includes the examples from the function library document and test programs for each function.

o
Object code (.class files) for the command-line emulator.

o
All examples of programs for The Analytical Engine emulator which appear in documents linked to this page.

o
Source code (.java files) for both the applet and command-line emulators. Emulator source code is intended for experienced Java developers, and is utterly unsupported. The program is in the public domain and you can do anything you like with it, but you're entirely on your own.

*
Just for Fun
o
"Picking Locks and Deciphering", Chapter XVIII of Charles Babbage's 1864 autobiography, Passages from the Life of a Philosopher, should lay to rest any lingering doubts you may harbour about Charles Babbage's being a kindred spirit to present-day computer people.

o
Squaring the Bishop. Charles Babbage closes his above memoir on picking locks and deciphering by posing a word puzzle which, to his knowledge, was unsolved. This document reports the results of a present-day computer assault on the puzzle. Spoiler warning! Obviously, if you'd like to have a go at solving the puzzle yourself, don't read this page beforehand.

o
Portrait of Charles Babbage.

o
Portrait of Ada Augusta, Countess of Lovelace. You can also download ZIPped PostScript source code for a full-page version of this drawing.

*
Analytical Engine Resources at Other Sites
o
Difference Engine No. 2, completed in 1991 at the Science Museum in London.

o
A brief biography of Charles Babbage and reading list is published by the University of Minnesota's Charles Babbage Institute.

o
A detailed biography of Charles Babbage, in the History of Computing by J.A.N. Lee at Virginia Tech.

o
A brief biography of Ada Augusta, Countess of Lovelace, the first programmer, with links to other resources related to Ada.

Acknowledgements

Development of The Analytical Engine emulator was tremendously assisted by the incorporation of the BigInt multiple precision integer arithmetic package, developed by Stephen Adams at the Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science.

----------------------------------------

Other Computing History Resources at Fourmilab

Fourmilab Home Page

by John Walker