The Countess of Lovelace died young, soon 37 years old, from uterine cancer. It was exactly 171 years ago, on November 27, 1852. Unfortunately, she always had a bad health. You can find in you search engine a daguerreotype, probably taken in 1843, where she looks rather weak. Note that some sites present a daguerreotype with a teenage girl but she can not be Ada, as the idea of photography was then just being explored, and moreover you can verify that on all the other portraits she had a long thin nose.
After designing a Difference Engine, Charles Babbage started working on the Analytical Engine, a mechanical decimal computer, around 1833. But is was not built entirely because he lacked the funds. In 1840, he exposed the principles of his machine to italian scientists in Turin. Luigi Federico Menabrea then published a French paper about the machine in a Swiss journal in 1842:
- L.-F. Menabrea, « Notions sur la machine analytique de M. Charles Babbage », Bibliothèque universelle de Genève, tome 41e, p. 352-376, 1842.
This paper was translated in English by Ada Byron in 1843, and Babbage suggested to the mathematician she could add notes with her thoughts, and to the 25 pages written by Menabrea she therefore added 41 pages:
- L.-F. Menabrea, of Turin, Officer of the Military Engineers, “Sketch of the Analytical Engine invented by Charles Babbage”, Scientific Memoirs, Selected from the Transactions of Foreign Academies of Science and Learned Societies, and from Foreign Journals. Editors R. and J. E. Taylor, p. 666, 1843. An HTML version: Sketch of The Analytical Engine
Note that the history of this text offers an interesting view on the intellectual life in Europe in that century.
In her note G, Ada Byron explains how to compute a Bernoulli number with the machine. That program is presented in this blog post: What Did Ada Lovelace’s Program Actually Do? The author has also published a C version of the program. It is trivial to write a Fortran version, or maybe a FORTRAN one, although I am not sure what kind of loops would mimic best the mechanism of the Engine: DO, WHILE, IF and GOTO?
Menabrea alluded to repeating operations but the note C of Ada Byron exposes more clearly what would be a loop, with punched cards able to go backward in the mill (the executing unit of the computer) when needed. She can indeed be considered as the first non-trivial (non-sequential) programmer. In the note E, she even talks about “cycles of cycles of cycles”… In note F, she says that with repetitions three punched cards could replace thousands or millions cards.
After a unique reading of the papers, it is not clear for me if the machine had really something equivalent to if
tests (George Boole had not yet published his books on logic). But there are a few allusions in the notes: “V10 always decides which of two courses the succeeding processes are to follow, by feeling for the value of n through means of a subtraction”. Or: "and the engine follows the one or the other of the two courses just explained, contingently on the one or the other result of Operation 7. "
It is also delightful to read Ada Byron explaining what is a Variable (a CPU register), the fact that it can vary or not (storing a constant), and the different kinds of variables in a program (input datas, intermediate variables, results variables). And in Menabrea’s text and the note of his translator, there are interesting thoughts about the fact that the machine is not a thinking being. But Ada Byron was conscious that this machine was more than a computing machine and could manipulate more abstract symbols, and even one day compose for example algorithmic music. She was also conscious of the necessity of choosing an algorithm adapted to the way the machine works: "One essential object is to choose that arrangement which shall tend to reduce to a minimum the time necessary for completing the calculation. "
Reading both Menabrea and Byron’s papers is fascinating. Imagine that Babbage had successfully build completely his Analytical Machine, one century before the World War 2. That thought is vain as it did not happened, but I can’t help thinking about it. How computer science would have developed? What impact would it had on the history of the 19th and 20th centuries? Probably I have already read some comic strips with such retro-futurist scenario, but it is fascinating to play with such an idea. Would a language similar to Fortran be born a hundred years sooner? The compiler would probably have been far too slow, as multiplying two numbers with 20 digits was expected to take three minutes with Babbage’s machine! But many technologies could have developed faster, for the better and the worse…
At the end of the century, Menabrea published a short letter at the Académie des sciences (French only, except the quotation of Babbage’s letter) where he regretted that Babbage’s machine was never built. He also exposed how Babbage sent him a letter, revealing the identity of A.A.L., the mysterious translator of his paper: Augusta Ada Lovelace:
- Note de M. le général L.-F. Menabrea, « Comptes rendus hebdomadaires des séances de l’Académie des sciences / publiés… par MM. les secrétaires perpétuels ». Académie des sciences (France), p. 179-182, 1er juillet 1884.
Some ideas just come too soon. Like Leibniz’ idea of a machine using marbles and holes for binary computing, as exposed in his 1679 manuscript, but that’s another story.
For more information about A.A.L and the machine: