Would you like to make this site your homepage? It's fast and easy...
Yes, Please make this my home page!
A Selection and Adaptation From Ada's Notes
found in "Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D.
(Strawberry Press, Mill Valley, CA)
Introduction
What captured my attention about Ada Byron, Lady Lovelace, in 1976 when I
was getting my doctorate at the University of California at Berkeley, was
how strange it was that the daughter of the famous poet Lord Byron was
connected with the birth of the computer revolution. What expanded my sense
of strangeness was when I was at Oxford working with Ada's letters from
1984-1987, I
would take a break at Blackwell's Bookstore and be overwhelmed by the tens
of books on the shelves about "Ada" the programming language. In 1991 I
wrote an article for "Ada's Letters" entitled " Ada Byron, Lady Lovelace,
Analyst and Metaphysician" and had the good fortune to have Colonel Gross
review the article. It was Ada's mind-set, her creative critical skills
that not only laid the groundwork for her ability to write the first
computer program but correctly predict the future of computing. It does
take imagination, a leap of faith, to go from the structure of language,
lines of code, to creative thinking, context and creativity, skills that Ada
exhibited and I try to promote and had the expert help of Colonel Gross. As
Ada programmers you might see other relationships between Ada's mind-set and
the nature and execution of Ada, the programming language.
The first step is to see how Ada went about her task and what follows is a
few pages from my book "Ada, The Enchantress of Numbers."
To start with, Ada added a footnote to her translation of Menabrea
article. She emphasized the difference between Pascal's machine, which can
be compared to a calculator, and Babbage's Analytical Engine, which can be
compared to a modern day computer. Ada translated what Menabrea wrote: RFor
instance, the much-admired machine of Pascal is now simply an object of
curiosity, which, whilst it displays the powerful intellect of its inventor, is
yet of little utility in itself. Its power extended no further than the
execution of the first four operations . . . Ada augments Menabrea's
statement and clearly defines the boundaries of Babbage's Analytical Engine.
Ada emphasized the fundamentally different capability of the Analytical
Engine, that is, to be able to store a program (a sequence of operations or
instructions) as well as data (informational values themselves). At this
point, she began to recognize and to amplify the increased responsibility
this new capability placed upon the machine's user, to specify the stored
program both precisely and in complete accordance with the user's interest.
Her recognition of this increased responsibility is a remarkable insight, in
that the magnitude of this specification task (a task we refer to today as
software development) is only now being appreciated.
It is accordingly most fitting, and most honouring to her insight, that the
programming language Ada, developed in the early 1980's by the U.S.
Department of Defence, provides the most precise facilities for this
software development (specification) task of any general-purpose software
language for large-scale problems existing today.
In the following passage, Ada explained the difficulty of the software
development task, that is, the difficulty of communicating to the machine
what it is we expect it to do. But note that in so doing, she also, in
effect, extolled the power of mathematical language when it is precise.
Thus, a software language capable of great precision in specification (like
the Ada language) also provides great power.
Ada exhibited the principle that power comes from disciplined creativity.
From Note A, p. 693:
The confusion, the difficulties, the contradictions which, in consequence of
want of accurate distinctions in this particular, have up to even a recent
period encumbered mathematics . . . It may be desirable to explain, that by
the word operation, we mean any process which alters the mutual relation of
two or more things, be this relation of what kind it may. This is the most
general definition, and would include all subjects in the universe . . .
They will also be aware that one main reason why the separate nature of the
science of operations has been little felt, and in general little dwelt on,
is the shifting meaning of many of the symbols used in mathematical
notation. First, the symbols of operation are frequently also the symbols
of the results of operations . . .
Secondly, figures, the symbols of numerical magnitude, are frequently also
the symbols of operations, as when they are the indices of powers [e.g., 2
and 32] . . . In the Analytical Engine . . . whenever numbers meaning
operations and not quantities (such as indices of powers), are inscribed on
any column or set of columns, those columns immediately act in a wholly
separate and independent manner . . .
One of Ada's most famous quotes is from Note A, p. 694:
Again, it [the Analytical Engine] might act upon other things besides
number, were objects found whose mutual fundamental relations could be
expressed by those of the abstract science of operations, and which should
be also susceptible of adaptations to the action of the operating notation
and mechanism of the engine . . . Supposing, for instance, that the
fundamental relations of pitched sounds in the science of harmony and of
musical composition were susceptible of such expression and adaptations, the
engine might compose elaborate and scientific pieces of music of any degree
of complexity or extent.
Once Ada had made the distinction between numbers and the operations to be
performed, it was not difficult for her to project further how the
Analytical Engine would then be capable of giving two types of results;
numerical and symbolic, (eg algebraic). In effect, an Analytical Engine
could generate new programs as well as numbers. As a result the Analytical
Engine opened up a vast new territory for the analysis of information.
Here again, the Ada software language contains somewhat unique facilities
corresponding in a sense to Ada's insight. One such Ada facility is the
generic subprogram, a template for future software generation. Having
defined a generic subprogram for data of one type, the Ada software
developer can create new copies automatically tailored to data of other
types.
Another often quoted selection from Note A, p. 696
The distinctive characteristic of the Analytical Engine, and that which has
rendered it possible to endow mechanism with such extensive faculties as bid
fair to make this engine the executive right-hand of abstract algebra, is
the introduction into it of the principle which Jacquard devised for
regulating, by means of punched cards, the most complicated patterns in the
fabrication of brocaded stuffs. It is in this that the distinction between
the two engines lies. Nothing of the sort exists in the Difference Engine.
We may say most aptly that the Analytical Engine weaves algebraically patterns
just as the Jacquard-loom weaves flowers and leaves.
In addition to Ada's prescient comments linking the Analytical Engine to its
potential use for sound and graphics she provided what might be justly
called "the first computer program", a plan for the Analytical Engine to
calculate Bernoulli numbers, a very complicated chore. This table is also
found in this chapter.
However, of all the material in the translation, the following Note has
probably engendered the most controversy today in light of its denial of the
possibility of creating original knowledge through so-called Artificial
Intelligence.
From Note G, p. 722
It is desirable to guard against the possibility of exaggerated ideas that
might arise as to the powers of the Analytical Engine. In considering any
new subject, there is frequently a tendency, first, to overrate what we find
to be already interesting or remarkable; and, secondly, by a sort of natural
reaction, to undervalue the true state of the case, when we do discover that
our notions have surpassed those that were really tenable.
The Analytical Engine has no pretensions whatever to originate any thing.
It can do whatever we know how to order it to perform. It can follow
analysis; but it has no power of anticipating any analytical relations or
truths. Its province is to assist us in making available what we are
already acquainted with. This it is calculated to effect primarily and
chiefly of course, through its executive faculties; but it is likely to
exert an indirect and reciprocal influence on science itself in another
manner. For, in so distributing and combining the truths and the formula of
analysis, that they may become most easily and rapidly amenable to the
mechanical combinations of the engine, the relations and the nature of many
subjects in that science are necessarily thrown into new lights, and more
profoundly investigated.