| Line 2: |
Line 2: |
| | '''Ada Lovelace''' (1815-1852) was a British mathematician involved in the extremely early history of computers, long before the "modern era" of actual construction of working computers. She worked with [[Charles Babbage]] on an extremely visionary, completely mechanical, computer called the "analytical engine". It was never built, because Babbage's design was way ahead of its time. | | '''Ada Lovelace''' (1815-1852) was a British mathematician involved in the extremely early history of computers, long before the "modern era" of actual construction of working computers. She worked with [[Charles Babbage]] on an extremely visionary, completely mechanical, computer called the "analytical engine". It was never built, because Babbage's design was way ahead of its time. |
| | | | |
| − | She is noteworthy for writing an 1843 paper with Luigi Menabrea (it actually started out has her translation of Menabrea's shorter paper from French to English; she then added extensive notes) about the analytical engine<ref name "thepaper">[http://www.fourmilab.ch/babbage/sketch.html Menabrea's Sketch and Ada's Notes]</ref>. The paper ends with the famous "Note G", in which she analyzes an algorithm for calculating [[Bernoulli numbers]] and shows the code for it on the (never built) machine. Because of this, she is often credited with "writing the first computer program" and "being the world's first computer programmer."<ref name="sciam">[http://www.cs.virginia.edu/~robins/Ada_and_the_First_Computer.pdf Scientific American, May 1999, pp76]</ref><ref>http://cs-www.cs.yale.edu/homes/tap/Files/ada-bio.html</ref><ref>http://www.cs.fit.edu/~ryan/ada/lovelace.html</ref><ref>http://www.well.com/user/adatoole/bio.htm</ref><ref>[http://www.cs.fit.edu/~ryan/ada/lovelace.html Augusta Ada Byron (1815-1852)] - Ryan Stansifer, Associate Professor - Department of Computer Sciences - Florida Institute of Technology</ref>. While this was not a program written in anything that would be recognized as a programming language in the modern sense, it was the first mathematical algorithm ''encoded for the purpose of being executed by an automatically controlled digital computer''. That is, she wrote the first published, surviving computer program designed to solve a real problem. | + | She is noteworthy for writing an 1843 paper with Luigi Menabrea (it actually started out has her translation of Menabrea's shorter paper from French to English; she then added extensive notes) about the analytical engine<ref name "thepaper">[http://www.fourmilab.ch/babbage/sketch.html Menabrea's Sketch and Ada's Notes]</ref>. The paper ends with the famous "Note G", in which she analyzes an algorithm for calculating [[Bernoulli numbers]] and shows the code for it on the (never built) machine. Because of this, she is often credited with "writing the first computer program" and being "the world's first computer programmer."<ref name="sciam">[http://www.cs.virginia.edu/~robins/Ada_and_the_First_Computer.pdf Scientific American, May 1999, pp76]</ref><ref>http://cs-www.cs.yale.edu/homes/tap/Files/ada-bio.html</ref><ref>http://www.cs.fit.edu/~ryan/ada/lovelace.html</ref><ref>http://www.well.com/user/adatoole/bio.htm</ref><ref>[http://www.cs.fit.edu/~ryan/ada/lovelace.html Augusta Ada Byron (1815-1852)] - Ryan Stansifer, Associate Professor - Department of Computer Sciences - Florida Institute of Technology</ref>. While this was not a program written in anything that would be recognized as a programming language in the modern sense, it was the first mathematical algorithm ''encoded for the purpose of being executed by an automatically controlled digital computer''. That is, she wrote the first published, surviving computer program designed to solve a real problem. |
| | | | |
| | But the issue is not clear-cut, because there are different opinions about what constitutes a "program" and what constitutes a "computer". Perhaps the main objection is that the computer for which her program was written was never built, so her program did not actually run. Ada had to write the algorithm on paper, rather than at a keypunch or computer terminal, of course. But, to use modern terminology, she actually "wrote code". Also, since the term "program" had not been coined, she described her algorithm as a "plan". In the 20th century, the program was carefully analyzed and simulated, and found to have a minor "bug". The controversy will be discussed at length below. | | But the issue is not clear-cut, because there are different opinions about what constitutes a "program" and what constitutes a "computer". Perhaps the main objection is that the computer for which her program was written was never built, so her program did not actually run. Ada had to write the algorithm on paper, rather than at a keypunch or computer terminal, of course. But, to use modern terminology, she actually "wrote code". Also, since the term "program" had not been coined, she described her algorithm as a "plan". In the 20th century, the program was carefully analyzed and simulated, and found to have a minor "bug". The controversy will be discussed at length below. |
| Line 18: |
Line 18: |
| | | | |
| | ==What did Ada's Bernoulli program look like?== | | ==What did Ada's Bernoulli program look like?== |
| − | The program, and detailed technical commentary, appeared in a paper "Sketch of the Analytical Engine Invented by Charles Babbage" that Ada wrote in 1843. The program itself has been reproduced in the "sidebar" on page 79<ref name="sciam"/>. First there is a list of the six input and output variables that are used: V1, V2, V3, V21, V22 and V23. And the temporary variables V4 through V13. In modern terminology in a strongly typed language such as C++, we would write something like: | + | The program, and detailed technical commentary, appeared in the paper "Sketch of the Analytical Engine Invented by Charles Babbage"<ref name="thepaper"/> that Ada wrote in 1843. The program itself has been reproduced in the "sidebar" on page 79<ref name="sciam"/>. It can also be seen in the original paper. First there is a list of the six input and output variables that are used: V1, V2, V3, V21, V22 and V23. And the temporary variables V4 through V13. In modern terminology in a strongly typed language such as C++, we would write something like: |
| | | | |
| | int V1, V2, V3; // inputs | | int V1, V2, V3; // inputs |
| Line 48: |
Line 48: |
| | The Analytical Engine was basically a Difference Engine programmed by the punched cards of a Jacquard loom. The Difference Engine part of it is what we would now call the "Arithmetic Logic Unit", or ALU. (At the time, it was called the "mill".) | | The Analytical Engine was basically a Difference Engine programmed by the punched cards of a Jacquard loom. The Difference Engine part of it is what we would now call the "Arithmetic Logic Unit", or ALU. (At the time, it was called the "mill".) |
| | | | |
| − | The Analytical Engine design got the attention of Luigi Federico Menabrea (1809-1896), an Italian professor of mechanics at University of Turin (and later premier of the Kingdom of Italy), and of Ade Lovelace. Menabrea wrote a paper about it in 1842, and, at Babbage's suggestion, Lovelace translated it from French to English. She also added notes of her own, that in fact comprised about 3/4ths of the final paper, and are frequently quoted even today. | + | The Analytical Engine design got the attention of Luigi Federico Menabrea (1809-1896), an Italian professor of mechanics at University of Turin (and later premier of the Kingdom of Italy), and of Ada Lovelace. Menabrea wrote a paper about it in 1842, and, at Babbage's suggestion, Lovelace translated it from French to English. She also added notes of her own, that in fact comprised about 3/4ths of the final paper, and that are frequently quoted even today. |
| | | | |
| | Biographer Betty Toole wrote: "Her 'Notes' also predict that, given the right algorithms, calculating engines might compose music and create graphics. She even presaged Alan Turing and the 'garbage-in, garbage out' effect, saying, 'The Analytical Engine has no pretensions whatever to originate any thing. It can do whatever we know how to order it to perform -- it has no power of anticipating any analytical relations or truths.'" This statement is often quoted even today as a profound truism about computers. | | Biographer Betty Toole wrote: "Her 'Notes' also predict that, given the right algorithms, calculating engines might compose music and create graphics. She even presaged Alan Turing and the 'garbage-in, garbage out' effect, saying, 'The Analytical Engine has no pretensions whatever to originate any thing. It can do whatever we know how to order it to perform -- it has no power of anticipating any analytical relations or truths.'" This statement is often quoted even today as a profound truism about computers. |
| Line 111: |
Line 111: |
| | ::*Was the Lovelace/Bernoulli program actually first? | | ::*Was the Lovelace/Bernoulli program actually first? |
| | | | |
| − | there may be additional social/political issues because Ada Lovelace was a woman. The issue of [[Women in Science and Mathematics]] has long been a contentious one, because the field is dominated by men. There are those that feel that women who have made significant contributions should be held up as role models to encourage girls to go into these fields<ref>This sometimes gets rather silly: [http://shop.mattel.com/product/index.jsp?productId=4032107]</ref> (the effect is particularly pronounced in the case of Marie Curie), and those who disagree. As often happens, people sometimes mix these issues with other political issues, such as the entire issue of feminism.
| + | There may be additional social/political issues because Ada Lovelace was a woman. The issue of [[Women in Science and Mathematics]] has long been a contentious one, because the field is dominated by men. There are those that feel that women who have made significant contributions should be held up as role models to encourage girls to go into these fields<ref>This sometimes gets rather silly: [http://shop.mattel.com/product/index.jsp?productId=4032107]</ref> (the effect is particularly pronounced in the case of Marie Curie), and those who disagree. As often happens, people sometimes mix these issues with other political issues, such as the entire issue of feminism. |
| | | | |
| | But one should keep in mind that nothing about modern feminism or educational/social issues has any bearing on what happened 170 years ago. | | But one should keep in mind that nothing about modern feminism or educational/social issues has any bearing on what happened 170 years ago. |