Why is Ada, Countess of Lovelace, celebrated as a computer pioneer and the first programmer when she lived and died in the 19^{th} century long before the advent of digital computers? Ada Lovelace, as she is usually called, was the only legitimate daughter of the notorious romantic poet Lord Byron. Her mother, Lady Wentworth, separated from Byron only a month after Ada’s birth and was determined that her daughter did not fall prey to her father’s grand romantic notions. She therefore arranged for Ada to have training in mathematics as a disciplined antidote to her father’s well documented excesses.

Ada’s connection with computers came from a meeting with the famous mathematician Charles Babbage in 1833 when Ada was only seventeen. Ada had been invited to one of Babbage’s celebrated evening entertainments attended by the leading scientists of the day and by the rich and famous. She was fascinated by his pioneering – and expensive – government-funded project to build a mechanical machine to automate mathematical calculations. Tabulations in such publications as the British Nautical Almanac were known to contain many errors, either from mistakes in calculations or from typesetting the tables. Such errors were popularly supposed to have been the cause of numerous shipwrecks. Babbage had invented his famous *‘Difference Engine’* – named after the particular mathematical method used to perform the calculations – in order to eliminate these mistakes. Two weeks after this first meeting, Babbage gave her a personal demonstration of his small working prototype of the machine. Unfortunately the Difference Engine became the first Government-funded computing project which ended up over budget and unfinished. This was principally due to the absence of mass production manufacturing technology and at the time there were not even agreed standards for simple components like screws. In 1991, Doron Swade and a team working at the Science Museum in London were able to vindicate Babbage’s design by constructing a working, full-scale, Difference Engine.

Before the Difference Engine had even been completed, in 1834 Babbage had abandoned his original design for a much more flexible and powerful machine he called the *‘Analytical Engine’*. While the Difference Engine was designed only to perform very specific mathematical operations, the Analytical Engine was designed to be able to perform any arithmetic or logic operation. In this sense, his new machine was effectively a design for a general-purpose computer that could be programmed to implement any well-defined algorithm or program. It is this sense that Babbage anticipated the ideas of the modern stored program computer, first outlined by von Neumann in his ‘First Draft of a Report on the EDVAC’ in 1944.

Babbage never published any scientific papers on the Analytical Engine but he did give a seminar on his design in 1840 to Italian scientists in Turin. A report of this meeting was written up by Luigi Menabrea, a remarkable individual who later became a General in the Italian army and then Prime Minister of Italy. By this time, Ada had got married and had had three children but she clearly felt the need for some more intellectual stimulus. In 1839 she wrote to Babbage asking him to recommend a mathematics tutor for her. He recommended Augustus De Morgan, a well-known mathematician, who later wrote Ada could become *‘an original mathematical investigator, perhaps of first-rate eminence’*. At the suggestion of a mutual friend, Ada translated Menabrea’s paper on Babbage’s new machine for publication in English. Babbage then suggested she add some notes to the paper and gave her further material and examples from his talk in Turin. There is controversy among computer historians about exactly how much of her example programs in the notes is due to her contribution. However it is certainly true that Ada can be credited with finding the first ‘programming bug’ in one of Babbage’s examples!

Ada’s notes on programming the Analytical Engine contributed greatly to making Babbage’s achievement understandable to a much larger audience. In addition, while there is no evidence that Babbage thought seriously about using his machine for algebraic manipulations, by contrast, Ada was very forthright about the Engine’s capabilities:

*‘Many persons … imagine that because the business of the Engine is to give its results in numerical notation the nature of its processes must consequently be arithmetical and numerical, rather than algebraical and analytical. This is an error. The engine can arrange and combine its numerical quantities exactly as if they were letters or any other general symbols; and in fact it might bring out its results in algebraic notation, were provisions made accordingly.’ *

The image of Ada as the first programmer has clearly captured the public’s imagination and her name is now remembered in many different ways – as the name of the Ada programming language created by the US Department of Defense, as the Lovelace Medal awarded annually by the British Computer Society, and now in Ada Lovelace Day celebrated in mid-October every year. Ada, along with Babbage’s machines, also feature in an ‘alternative reality’ science fiction novel called *‘The Difference Engine’* written by William Gibson and Bruce Sterling. This imagines a Victorian era in which Babbage’s machines had been successfully built so that all our transactions could be recorded by the Government’s vast Engines, managed by professional computer operators they called *‘clackers’*. As a final example, Sydney Padua has written a wonderfully readable webcomic/graphic novel called *‘The Thrilling Adventures of Lovelace and Babbage’*.

For more details on the early history of computing, my book ‘The Computing Universe: Journey through a Revolution’ contains a readable, introductory account.

Blog article also published at:

http://www.cambridgeblog.org/2017/11/ada-lovelace-programming-pioneer/

Tony Hey

November 6^{th} 2017