Read It Began with Babbage Online
Authors: Subrata Dasgupta
26
. Campbell-Kelly, op cit., pp. 217â222.
27
. Babbage, op cit., 1994, pp. 47â49.
28
. Campbell-Kelly, op cit., p. 29.
29
. D. Swade. (2001).
The Difference Engine: Charles Babbage and his quest to build the first computer
. New York: Viking.
30
. Campbell-Kelly, op cit., p. 31.
THE ANALYTICAL ENGINE
has a startling place in the history of computing. To the best of our knowledge, no machine had ever before been conceived along its lines. More remarkably, some of its key principles of design would actually be reinvented a century later by people who were, apparently, ignorant of it. If imitation is the sincerest form of flattery, then so is
re
invention or
re
discovery, at least when born from ignorance. It tells us much about how ahead of one's time the original creator was. This reinvention of Babbage's idea was particularly poignant because it would become the fount of fruitful and rich phylogenetic pathways in the later evolution of the digital computer and the emergence of computer science.
1
Dissatisfaction
is a prime generator of the creative urge, dissatisfaction with the status quo and the desire to change it to something better.
2
Charles Babbage was unhappy with the waste of human mental labor in computing mathematical tables, which led to his desire to free human beings from this tediumâhence, the Difference Engine.
However, the Difference Engine produced its own discontent. As Luigi Frederico Menabrea (1809â1896), an Italian military mathematician (and, later, prime minister of Italy) would explain
apropos
the Difference Engine, its use was limited to one particular kind of computation. It could not be applied to the solution of “an infinity of other questions” of interest to mathematicians. It was this limitation and the attendant discontent
that led Babbage to conceive the machine he called the
Analytical Engine
, the operation of which he believed would encompass the full range of algebraic problems.
3
The Difference Engine was not general enough. Babbage desired a computing engine that could range over the whole of “mathematical analysis.” As he explained in a letter to the Earl of Rosse, then president of the Royal Society, his Analytical Engine would have the power to perform the “most analytical complicated operations.”
4
Here, then, is Babbage's promise: a mathematical machine with “nearly unlimited” powers.
Babbage's name for his new machine is significant. The Difference Engine could only compute functions according to the method of differencesâhence its name. In mathematics, the study of infinite processes, also called
transcendental functions
(for example, the function sin
x
=
z
/1! â
z
3
/3! +
z
5
/5
! â â¦), is called
analysis
5
âhence, Analytical Engine, a mathematical machine of the most general sort.
We get a sense of how general the Analytical Engine's capabilities would have been if it had been implemented (which it was not) by reading both Menabrea's
Sketch of the Analytical Engine
(1842) as well as the notes on the machine appended to the “Sketch” (written originally in Italian) by its translator into English, Augustus Ada, Countess of Lovelace. (We read more about this remarkable woman later in this chapter.) Thus, Menabrea takes us, in great detail, through the sequence of operations the engine would execute to solve a pair of simultaneous linear equations.
6
And in one of her notes, Lovelace demonstrates, again in detail, the execution sequence by the engine for computing Bernoulli's numbers.
7
There was another source of discontent regarding the Difference Engine. Babbage was disappointed with the slowness of its adding mechanism. To speed it up, he invented a complex scheme called “anticipated carriage” (a forerunner of the carry look-ahead adder in modern computers). However, in the Difference Engine, this mechanism would have to be replicated for the many different stages in which addition was performedâinvolving the difference columns and the table columnâand this would be prohibitively expensive. So the problem was to implement this faster arithmetic mechanism at a reasonable cost.
In the language of modern computer science (we are indulging in present-centeredness [see Prologue, section VII]), the logical or functional organization of a computer is called its
architecture
(discussed much more later). One of Babbage's major acts of creation in conceiving the Analytical Engine was in response in part to this need to realize an economic implementation of the anticipatory carriage-based addition mechanism. This response was to separate the function of representing numbers in the machine from the task of performing operations upon those numbersâthe creation of a single,
centralized
arithmetic unit (or, in present-centered language,
processing
unit) and to separate it from the means to hold these numbers. In the Difference Engine, the two mechanisms were conjoined.
FIGURE
2.1 Architecture of the Analytical Engine A1/A2, accumulators; A/C, arithmetic/control mechanism; B, buffer; T1, T2, ⦠T9, table of constants 1, 2, ⦠9.
This separation of processing from storage was an architectural innovation of the highest order. Babbage named the part of the machine that would perform the arithmetic operations the
mill
, and the part that would hold the numbers or values of algebraic variables the
store
. The contents of the store would pass to the mill and, after an operation is performed by the mill, the resulting value would be returned from the mill to the store.
8
Schematically, the situation is as depicted in
Figure 2.1
. As for the terms
store
and
mill
, a noted Babbage scholar suggests that Babbage drew on these terms metaphorically by appealing to the milieu of textile making wherein yarns were brought from the store to the mill, therein woven into fabric, which was then returned to the store.
9
If the separation of storage from processing was a profoundly significant innovation (to an extent, as we will see later, that even Babbage may not have appreciated), the other was the manner in which Babbage achieved the “unlimited” power for his mathematical engine as he had promised in the letter mentioned earlier, and as extolled by Menabrea and Lovelace. Where did this generality come from? A generality that, Lovelace said, would even allow the engine to compute functions of any number of other functions, such as
F
(
x, y, z
, log
x
, sin
y, x
n
, â¦.)
10
Babbage envisioned his promised generality by way of an
analogy
. The use of analogy is one of the most common ways of creative thinking. The process is roughly along the
following lines: First, search for a similarity between the problem with which a person is grappling and some other situation with a solution that is well understood. Second, establish a correspondence between features of the two situations. Third, extract from the familiar, understood situation relevant aspects and “map” them to the unfamiliar problem. Fourth, and last, use these mappings to solve the problem.
11
There are no guarantees that analogical thinking will always work, but when it does, the outcome can be fruitful, rich, unexpected, and consequential. Sometimes, the analogy may become embedded in one's language and thus becomes a
metaphor
.
12
We must remember that there is nothing mechanical about this process of analogical thinking. Creativity may be demanded in all its stages, not the least of which in detecting similarity between the problem situation and something else, which might be completely unconnected, far removed from the problem at hand.
Babbage's great insight was to construct an analogy between his problem of establishing a general or “universal” computing capability for his Analytical Engine and a technique from the realm of textile manufacture, as textile was clearly much in his mind as he grappled with the idea of his new engine.
In the simplest terms, weaving involves the intercrossing of longitudinal threads called the
warp
with transverse threads called the
woof
. When cloth with an intricate design (and, perhaps, many colors, as in brocade) is woven, it becomes necessary to allow certain warp threads to cross the woof threads and to prevent other such crossings. This is how designs are woven, and the weaving process follows a
pattern
. The pattern, in other words, dictates the sequences of crossing and noncrossing of warp and woof.
In 1801, a Frenchman Joseph-Marie Jacquard (1752â1834) acquired a patent for automating pattern weaving. As so often happens in technology, Jacquard combined features developed by earlier textile machine inventors, made slight modifications, and produced a machine that came to be called the
Jacquard loom
âan invention that won him a gold medal, glory, and (presumably) wealth.
13
The crux of Jacquard's invention was to encode the pattern in a batch of stiff, punched cards. Each card carried a part of the overall pattern according to the pattern of holes punched into the card; the whole stack represented the entire design. By an elaborate arrangement of mechanisms, the holes would be sensed (or not, in their absence) and the loom would accordingly weave patterns of threads by crossing each other (or not). The batch of cards formed a “closed loop,” and so their repeated presence would ensure that the same design was repeated in the woven cloth.
14
Again, taking a present-centered view of the past, we easily recognize the punched cards in the Jacquard loom for what they areâas a
memory
that holds the pattern the loom will “recall” and “obey,” as a
blueprint
for how a piece of cloth is to be woven, and as a
program
that drives the loom. All these metaphors, of course, share the following: that the pattern to be woven by the loom into a cloth can be altered by simply changing the patterns of holes in the stack of punched cards.
This
was the source of Babbage's insight.
So here was the analogy. In the Jacquard loom, each distinct pattern to be woven is defined by a specific encoding of the pattern in a closed-loop series of punched cards. The loom reads this pattern and weaves the cloth accordingly. By changing the batch of punched cards, the loom weaves a different pattern. The same loom, a
finite
device, has the capability for, potentially, an
infinity
of weaving patterns.
In the Analytical Engine, computation of each distinct mathematical function is determined by an ordered sequence of (arithmetic) operations on the values of variables. These sequences of operations (in present-centered language, programs) can be encoded as patterns of holes on punched cards. The machine reads a particular set of punched cards and performs the sequence of operations they represent. By changing the set of punched cards, a different sequence of operations corresponding to a different mathematical computation is performed. In the evocative words of Lovelace, the Analytical Engine would weave “algebraic patterns” much as the Jacquard loom wove “flowers and leaves.”
15
It is, thus, in its architectureâthe separation of store from mill certainly, but even more in its universal character, rendered possible by the use of punched cardsâthat the Analytical Engine stood apart from its historical precedents. But, we also recognize the
modernity
of these architectural principlesâa recognition coming from the fact that this architecture was reinvented for the electronic digital computer a century later.
For Lovelace, the punched-card principle placed the Analytical Engine on a different plane from all that had gone before. The machine had stepped beyond “the bounds of arithmetic.” It was no longer a “mere” calculating device. Lovelace recognized that the punched-card mechanism imbued the Analytical Engine with an ability to “combine together general symbols” of “unlimited variety.” It was no mere number cruncher but a
symbol processor
. By this virtue, it established a link between the strictly material artifact (which the Analytical Engine was) and abstract mental processes characteristic of mathematics itselfâa link, in other words, between the machinations of a material artifact and the kinds of symbol manipulations the mind carries out in mathematical reasoning.
16