History of Informatics: Ada Lovelace Renske Weeda (9913467) e-mail: [email protected] 10th May 2004 Contents 1 Introduction 3 2 Biographical facts 3 3 Contributions 3.1 The Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 The Analytical Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 4 5 4 Anecdotes 6 5 Conclusion 7 1 Introduction When I look around me at the institute for informatics in Nijmegen, I realize that females in this field are short from becoming extinct. Yet, after a short investigation into the history of informatics I found a fact that bedazzeled and puzzeled me: the first computer programmer ever, happened to be female! This intrigued me to investigate the details of a woman who has made her way into history books: Ada Lovelace. If we look into computer history, women helped design, program, and fund the first modern computers, contributing greatly to the development of computers, but their contributions to computing history have traditionally been ignored. Before the invention of modern computers, women were often employed to perform computations using hand calculators. The calculations could take weeks to perform but the women were rarely credited for their work. Because the modern computer was developed during the second world war, the first computer programmers were almost entirely women. Women were stereotyped as ideal programmers because ”programming requires lots of patience, persistence, and a capacity for detail and those are traits that many girls have”[3] Ada Augusta Lovelace is best known as the first computer programmer in history. With a set of instructions which she composed, she created a forerunner of modern programming languages[1]. Furthermore, she wrote about Charles Babbage’s ”Analytical Engine” with such clarity and insight that her work became the premier text explaining the process now known as computer programming[1]. 2 Biographical facts Augusta Ada Lovelace was a mathematician and musician, born in London in 1815. She was from a family of high status. Her father was the famous British poet, Lord Byron, and her mother, Annabella Milbanke, mathematician and a poet. Her father was accused of taking his half-sister to be his mistress (after whom Ada had been named), and the controversy surrounding this ended his marriage to Adas mother, less than 5 weeks after Ada had been born. Her mother feared that her daughter would turn out like her father, and therefore taught her disregard her artistic talents, and instead nurtured her mathematical and scientific abilities[12]. One of her mathematical tutors as a child was the well-known Augustus de Morgan. She was raised in the aristocratic society of England, which colored her life with theater, concerts, aristocratic parties. At one of these parties she was introduced to Charles Babbage, demonstrating a model of his Difference Engine, she later worked heavily with this man. Ada married Lord William King, who became Earl of Lovelace and she Countess of Lovelace, together they had three children. After publishing a paper in 1843 that predicted the development of computer software, artificial intelligence, and computer music, her life was plagued with illness. At he age of 14 she caught the measles and became paralyzed, and at age 29 she suffered a mental and physical breakdown. She was said to use dangerous combinations of beer, wine, brandy, opium and morphine that only contributed to her health problems. Some sources say the drugs were used to treat her illnesses, yet other sources speak of a period of explicit experimental drug and alcohol use. Throughout her life she enjoyed spending time gambling, which occurred more frequently 3 as she became older. Even using her acute mathematical skills to devise winning methods of playing, she managed to gamble away her husband’s family fortune. She died of cancer in 1852 at the age of 36. Lady Lovelace had what we can describe as a multidimensional life, from her passionate desire to flourish in a ”man’s world”, to a battle with drug addiction and chronic sickness, from being mother and wife, to het reputation as a wild gambler and lover. 3 Contributions At 18, Ada Lovelace met Charles Babbage, a British mathematician and inventor, whom invited her to study his Difference Engine. After Babbage’s first meeting with Ada he noted, ”She seems to understand it better than I do, and is far, far better at explaining it”. Intrigued by the machine, and curious to learn how it worked, Ada observed what Babbage had designed and soon became an expert on the his work. When Babbage changed his plans and began to design an even more ambitious machine, Lovelace saw tremendous potential in the machine and collaborated with Babbage to invent the Analytical Engine, an archetype of the modern digital computer. It was capable of executing arithmetical calculations, reading data from punched cards, and storing data. Components of Ada’s work remain in the modern digital electronic computer that receives a set of instructions, then carries out those instructions[1]. 3.1 The Notes An Italian mathematician Menabrea attempted to explain how the Analytical Engine worked based on a series of lectures that Babbage gave at a scientific conference in Vienna in 1842[4]. Lovelace translated his paper from French to English, and while doing so, she added footnotes and explanatory sections which greatly enhanced the original. By the time she was finished, the paper was three times as long as Menabrea’s, and much more useful. Babbage was very pleased. He published and distributed Lovelace’s work, modestly signed with only her initials ”A.A.L.” Although this paper was the summit of her career, she felt it was unbecoming for a woman of her social class to publish anything so ”unfeminine”[2]. It was nearly 30 years before the identity of ”A.A.L.” was commonly known. 3.2 Programming In spite of het lengthy notes, this is not what she is most well known for. She was primarily interested in the ideas behind programming the Analytical Engine, rather than merely automating laborious calculations. She referred to the ”sequences of instructions” as language and thought about and used loops, subroutines, and jumps in her programming. Programming was done by the use of Punched Cards, which was taken from Jacquard, who used them for automating weaving via a loom. Traditionally, these cards were executed sequentially. Ada modified this approach to allow for a looping behavior similar to an unconditional jump. The cards were executed in order until the loop instruction was encountered, and then the Engine would sort back through the cards, when the proper card was selected the Engine would again begin executing normally. Ada’s idea of writing a set of instructions, as a library, which could then be used for that operation from that point on can be seen as a set of subroutines. 4 The idea of a conditional jump lies in a similar line of thought, if a condition were true then the Engine would cycle a particular number of cards forward, without executing them, and then continue execution. Ada used these programming techniques to write programs for the Analytical Engine, without the Engine ever having been completed. One of the programs she wrote using these techniques was a program to compute Bernoulli numbers, which is now regarded as the first ”computer program”[6]. 3.3 The Analytical Engine Charles Babbage’s first project was the Differential Engine, a machine capable of executing not merely arithmetical calculations, but even all those of analysis, if their laws are known. However, its use is confined to simple additions or subtractions, lacking application for many other problems in the field of mathematical analysis. Upon realization of this incompatibility, Mr. Babbage conceived the plan of another machine, the Analytical Engine, whose operations can be specified using algebraic notation. Two main principles on which the construction of the machine is based are the execution of numerical calculations and correct distribution of values obtained (eg. (a + b)(c + d) = ac + ad+bc+bd). It is capable of executing successive operations without human intervention, and thus independently yielding an appropriate result; a finite automaton which acts according to the laws imposed upon it. This last statement may seem trivial and fundamental. However, when dividing one number by another, the usual rules of arithmetic allowed for a method of guessing which now had to be formalized into an algebraic formula for execution the engine. Having formalized the four operations of arithmetic (addition, subtraction, multiplication and division), the machine was capable of performing any numerical calculation, because each calculation can ultimately be broken down into those four operations (later refined by Alan Turing). Initially the idea was conceived as a machine with a series of vertical columns of circular discs marked with the ten decimal digits, by arranging these discs it is possible to express any finite number, as was also to be found in the Difference Engine. Representing the number 5312 would be as follows: 5 3 1 2 The Analytical Engine would probably have at least two hundred columns, but the precise form and arrangement was not determined exactly at that time. The Analytical Engine has two types of cards. The first are the Operation cards, arranging the machine’s parts in such a manner to execute any determinate series of operations, such as additions, subtractions, multiplications, and divisions. The second type of cards are the Variables, which indicate on which column the results are to represented. The columns of Variables may be regarded as a store of numbers, the machine’s memory. When the machine is in action, the cards successively arrange the various parts of the machine according to processes that are to be executed, and executes. 5 V1 V 2 V 3 V4 V5 V6 − + + − − + 0 0 0 4 0 0 0 0 0 8 1 0 9 0 0 0 0 4 8 7 2 0 0 8 n +x (a) (n) (x) (axn + x) (a − x) ( axa−x ) Representing three quantities: a = −98, n = 7, x = 2. Calculating for example (axn ) would require 6 multiplications to get (xn ), one multiplication to get (a · xn ), and one addition to get (a×xn +x), thus requiring a total of 7 multiplications and one addition {7(×),+}. Calculating n +x ( axa−x ) would require operations {7(×), + , − , ÷ }. The intermediate result of (a − x) can be retained separately if we please, as has been done in V5 . The series of operations commanded by the cards, and the results obtained, are represented in the following table: Operation Number 1 ... 6 7 8 9 10 4 Operation Symbol × ... × × + − ÷ Input Columns V 3 × V3 = ... V 3 × V4 = V 1 × V4 = V 3 × V4 = V 1 × V3 = V 4 × V5 = Output Column V4 ... V4 V4 V4 V5 V6 Operation Progress = x2 ... = xn = a · xn = a · xn + x =a−x n +x = a·x a−x Anecdotes After the divorce of her parents, Ada’s mother carried on with Ada’s upbringing and education. She gave Ada her first introduction in mathematics, after which it soon became clear that Ada had a gift for the subject. By the age of eight, Ada had also demonstrated an interest in mechanical devices and was building detailed model boats. She received training in mathematics from Augustus DeMorgan, who is today famous for one of the basic theorems of Boolean Algebra which forms the basis for modern computers. The one person young Ada most longed to meet was Mary Sommerville, a mathematician who had just published The Mechanism of the Heavens, a book on mathematical astronomy. Fortunately, after they met the two became friends. It was Sommerville who arranged for Ada to meet Lord William King, who later became Ada’s husband. For Ada, Sommerville was a role model - a female mathematician she could look up to. We thus see that Ada was fortunate to have come in contact and worked with people who today we consider extremely famous for their theories and their works in the field of science. It seems as if her whole life was one coincidence after another, yet this is not entirely true. Sadly enough, had Ada lived just one year longer, she would have witnessed the presentation of the first working difference engine. Lovelace was often drawn by her love of music. She had shown much promise as a young woman and many of her friends expected her to pursue musical studies. Furthermore, this 6 would be much more appropriate for a woman of her social class. While exploring the analytical engine, she thought about the potential of such machines to compose music. Now, a century after she predicted it, her dream has come true. Computers are composing music! Ada’s father, Lord Byron, was a poet famous not only for his poetry but also his wild and scandalous behavior. Like her father, Ada lived only until she was 36. Even though she never met her father after the divorce of her parents when she was only one, and their lives were extremely different, she undoubtedly admired her father and was inspired by his unconventional and rebellious nature. For a woman of her aristocracy, having strong interests in mathematics and science was surely unconventional! 5 Conclusion Although Ada contributed greatly to the foundation of our modern day computer, she suffered the fate of many women engineers and scientists of her day. It was not common for a woman to be rewarded for technological ideas. Ada’s work was not to be fully recognized until many years after her death. Fortunately today, women are becoming more and more commonplace in the fields of science and engineering. We thank the fundamental basis of modern digital electronic computer, receiving a set of instructions and subsequently carrying them out, to some of Ada’s work. Apparent in the modern computer, her writings discussed the following aspects in full detail: • Operations necessary for solving mathematical problems • Distinction between types and operators • Loop statements • Arrays • Subroutines • Stored programs The United States Department of Defense honored Ada’s accomplishments in the computer field and in 1977 they named their high-level, universal computer programming language, Ada, after her[5]. Contrary to what many believe, we have seen that women have been vital to the development of computers since the concept was first developed, and they continue to be pioneers in the computing industry. Ada’s work inspired the Lovelace award, which today honors pioneering women in computer science. And so I have learned that much more women have been involved in the history of computer science than I could ever have imagined. Due to society they never got the credit they deserved. But more importantly, where I felt I was completely on my own, I now have found a role model! 7 References [1] http://www.ideafinder.com/history/inventors/lovelace.htm. February 18th, 2004. [2] http://www.aimsedu.org/Math History/Samples/ADA/Ada.html. February 13th 2004. [3] http://www.tcnj.edu/∼burger3/extracurricular/girls/historyofwomenincomputing.ptt. Jessie Burger. February 20th, 2004. [4] http://www.adahome.com/articles/1997-12/al birthday.html. April 4th 2004. [5] http://www.adahome.com/articles/1998-01/ar intro.html. February 20th 2004. [6] http://www.agnesscott.edu/lriddle/women/love.htm. April 5th 2004. [7] gopher://gopher.well.sf.ca.us/00/Science/ada. April 5th 2004. [8] http://www.fourmilab.ch/babbage/baas.html. April 5th 2004. [9] http://www.tutorgig.com/encyclopedia/getdefn.jsp?keywords=Ada Byron%27s notes on the analytical April 5th 2004. [10] http://www.tutorgig.com/encyclopedia/getdefn.jsp?keywords=Bernoulli number. April 5th 2004. [11] http://www.fourmilab.ch/babbage/sketch.html. April 5th 2004. [12] http://www.cs.unm.edu/ storm/docs/lovelace.htm. May 7th 2004. 8