History of Informatics: Ada Lovelace

Anuncio
History of Informatics:
Ada Lovelace
Renske Weeda (9913467)
e-mail: rweeda@sci.kun.nl
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
Descargar