The Turing Guide

(nextflipdebug5) #1

RANDEll | 73


The most obvious aspect of the concept is the idea of holding the program that is control-
ling the operation of a computer, not in some external read-only medium such as punched
cards, tape, or pluggable cables, but rather in one memory, together with the information
that is being manipulated by the computer under the control of this program. This idea is an
essentially practical one, in response to a problem that had not existed with card-controlled
or tape-controlled mechanical or electromechanical devices, whose calculation speeds were
reasonably well matched to the speed with which the cards or tape that controlled them
could be read. The advent of electronics, and the first attempts at building programmable
electronic calculating devices such as Colossus and ENIAC, exposed a need for some means
of representing programs that could cope with the required program sizes, whose access
speed matched that of the (fully electronic) operations they were controlling, and which
allowed adequately fast means of replacing a program whose task had been finished with
the next program to be executed. Although in particular the plugs, cables, and switches used
for programming Colossus and ENIAC were well matched to the calculation speed of their
electronics, switching from one program to the next was a slow manual business. This was
particularly the case with ENIAC, whose programs were much more complex than those that
controlled Colossus.
There was a further practical advantage, over and above the speed of switching between
programs, of holding the program and the data in the same memory (once the means of build-
ing adequately sized memories had been developed). The various different types of application
envisaged required differing relative amounts of storage for instruction and (both variable and
constant) data, so having separate memories made for difficult decisions regarding memory
provisions. Using a single memory removed the need for such decisions.
These practical considerations, coupled with the crucial realization that a set of pluggable
cables and switches were ‘just’ a means of information representation, seem to be the basic rea-
soning that lay behind the plans of the Moore School team for a successor machine to ENIAC—
namely, EDVAC. It is these plans that are the commonly accepted origin of the stored-program
computer concept—at least the aspect related to holding the program in, and executing it from,
the computer memory, even if not that of regarding the program as information that could itself
be produced or manipulated by a computer.
The suggestion that Babbage had conceived the idea of storing and manipulating program
instructions (the second aspect of the stored-program concept, to use modern terminology)
rests in part on one brief passage in Lady Lovelace’s notes on his Analytical Engine:^24


Figures, the symbols of numerical magnitude, are frequently also the symbols of operations, as
when they are the indices of powers . . . of course, if there are numbers meaning operations
upon n columns, these may combine amongst each other, and will often be required to do so,
just as numbers meaning quantities combine with each other in any variety. It might have been
arranged that all numbers meaning operations should have appeared on some separate portion
of the engine from that which presents numerical quantities; but the present mode is in some
cases more simple, and offers in reality quite as much distinctness when understood.


This rather obscure passage is somewhat contradicted by other statements in Lady Lovelace’s
notes. In fact, perhaps more significantly, a brief passage in one of Babbage’s sketchbooks dated 9
July 1836 comments on the possibility of using the Analytical Engine to compute and punch out
modified program cards that could later be used to control a further computation, a relatively
clear indication that he viewed programs as just a further form of manipulable information.

Free download pdf