Blaise Pascal, Gottfried Wilhelm Leibniz, and Charles Babbage all m...
Grace Hopper worked with Howard Aiken on the Harvard Mark I compute...
John Mauchly (1907-1980) was an American physicist who, along with ...
The UNIVAC (UNIVersal Automatic Computer) was a significant advance...
- **UNITYPER:** An input device for the UNIVAC I, it featured a mo...
Hopper is describing a scenario in which high-level programming lan...
THE EDUCATRON OF A COMPUTER
Grace Murray Hopper
Remington Rand Corp.
While the materialization is new, the idea
of mechanizing mathematical thinking is not new.
Its lineage starts with the abacus and descends
through Pascal,Leibnit% and Babbage. Fore
immediately, the ideas here presented originate
from Professor Howard K. Aiken of Harvard
University, Dr. John W. Nauehly of Eckert-
Hauchly and Dr. H. V. Wilkes of the University
of Cambridge. From Professor Aiken came, in
1946, the idea of a library of routines
described in the Hark I manual~ and the concepts
embodied in the Hark III coding machined from
Dr. Hauchly, the basic principles of the "short-
order code" and suggestions, criticisms, and
untiring patience in listening to these present
attempts; from Dr. Wilkes, the greatest help
of all, a book on the subject. For those
of their ideas which are included herein, I
most earnestly express my debt and my
appreciation.
Introd~Qtion
To
start at the beginning, Fig. I
represents the configuration of the elements
required by an operation: input to the
operations; controls~ even if they be only
start and stop; previously prepared tools
supplied to the operation I and output of
products, which may, in turn, become the
input of another operation. This is the basic
element of a production lines input of raw mate-
rial% controlled by human beings, possibly
through instruments~ supplied with machine
tools; the operation produces an automobile,
a rail~ or a san of tomatoes.
The armed services, government, and
INPUT
I CONTROL
~--'~OPERATION ~--~
industry are interested not only in creating
new operations to produce new results, but
also in increasing the efficiency of old
operations. A very old operation, Fig. 2?
is the solution of a mathematical problem.
It fits the operational configuration: input
of mathematical data~ control by the
mathematician~ supplied with memory, formulas,
tables, pencil? and papers the brain carries
on the arithmetic, and produces results.
It is the current aim to replace, as far
as possible, the human brain by an electronic
digital computer. That such computers
themselves fit this configuration may be seen
in Fig.
3.
(With your permission, I shall use
UNIVAC * as synonymous with electronic digital
computer; primarily because I think that way?
but also because it is convenient.)
Adding together the configurations of the
human being and the electronic computer? Fig.
4 shows the solution of a problem in two
levels of operation. The arithmetical chore
has been removed from the mathematician, who
has become a programmer, and this duty
assigned to the UNIVAC. The programmer has
been supplied with a "code" into which he
translates his instructions to the computer.
The "standard knowledge" designed into the
UNIVAC by its engineers, consists of its
elementary arithmetic and logic.
This situation remains static until the
novelty of inventing programs wears off and
degenerates into the dull labor of writing and
checking programs. This duty now looms as an
imposition on the human brain. Also, with the
computer paid for, the cost of programming and
the time consumed, comes to the notice of vice-
presidents and project directors. Co,son sense
dictates the insertion of a third level of
operation, Fig. 5.
OUTPUT
* Registered trade mark.
TOOLS
Fig. I -
AN
OPERATION
Fig, 2- SOLUTION OF
J PROBLEM H
PROBLEM
MATHEMATICIAN I
J
BRAIN
~-~
T
FORMULAS
TABLES
RESULTS
Page 243
~! ii~ ¸ i ¸
!
r
UNITYPER
I
PROGRAM
UNIPRINTER
Fig,
3- UNIVAC SYSTEM
The programmer may return to being a
mathematician. He is supplied with a catalogue
of subroutines. No longer does he need to have
available formulas or tables of elementary
functions. He does not even need to know the
particular instruction code used by the
computer. He needs only to be able to use the
catalogue to supply information to the computer
about his problem. The UNIVAC~ on the basis of
the information supplied by the mathematician,
under the control of a "compiling routine of
type A"? using subroutines and its own in-
struction code? produces a program. This
program~ in turn directs the UNIVAC through
the computation on the input data and the
desired results are produced. A major
reduction in time consumed and in sources of
error has been made. If the library is well-
stocked~ programming has been reduced to a
matter of hours? rather than weeks. The
program is no longer subject either to errors
of transcription or of untested routines.
Specifications for computer information?
a catalogue~ compiling routines? and
subroutines will be given after adding
another level to the block diagram. As Fig. 5
stands the mathematician must still perform
all mathematical operations? relegating to
the UNIVAC programming and computational
operations. However~ the computer information
delivered by the mathematician no longer deals
with numerical quantities as such. It treats
of variables and constants in symbolic form
together with operations upon them. The
insertion of a fourth level of operation is
now possible, Fig. 6. Suppose? for example~
the mathematician wishes to evaluate a function
and its first = derivatives. He sends the
information defining the function itself to
the UNIVAC. Under control of a "compiling
routine of type B"~ in this case a
differentiator~ using task routines? the
UNIVAC delivers the information necessary to
program the computation of the function and
its derivatives. From the formula for the
function? the UNIVAC derives the formulas of
the successive derivatives. This information
processed under a compiling routine of Type
A yields a program to direct the computation.
Expansion makes this procedure look?
and seem? long end complicated. It is not.
Peducing again to the two-component system?
the mathematician and the computer? Fig. 7
presents a more accurate picture of the
computing system.
Presuming that cod% program? input data~
and results are familiar terms~ it remains
to define and specify the forms of infor-
mation and routines acceptable to this system.
These include
catalogued
computer information?
subroutine?
compiling routines~ type A and B~
and task routines.
PROBLEM
PROGRAMMER
1
-~, BRAIN
t
FORMULAS
TABLES
CODE
DATA
OR I
PROGRAM
--~, UNIVAC
Y
STANDARD
KNOWLEDGE ]
OR II
RESULTS
Fig. 4-SOLUTION OF A PROBLEM
Page ~I!I~
OR g
PROIBLEM
OR II
I
MATHEMATICIA~
-~
BRAIN
CATALOGUE
I
COMPUTER ~__~
INFORMATION
COMPILING
ROUTINE
TYPE
A
UNIVAC
,,I
UBROUTINES J
I INPUT
I" DATA
PROGRAM
t
KNOWLEDGE
OP. III
Fig. 5-COMPILING ROUTINES AND SUBROUTINES
RESULTS
Catalogue and Com~ut~r Information
As soon as the purpose is stated to make
use of subroutines, two methods arise. In one,
the program refers to an intmediately available
subroutine, uses it, and continues computation.
For a limited number of subroutines, this
method is feasible and useful. Such a system
has been developed under the nick-name of
the "short-order code 'r by members of the staff
of the Computational Analysis Laboratory.
The second method not only looks up the
subroutine, but translates it, properly adjusted,
into a program. Thus, the completed program
may be run as a unit whenever desired, and
may itself be placed in the library as a more
advanced subroutine.
Each problem must be reduced to the level
of the available subroutines. Suppose a simple
problem, to compute
y - @ sin cx,
using elementary subrou%ines. Each step of the
formula falls into the operational pattern,
Fig. 8 ; that is~
U=e -u
v~ cx
V = s::L v
y=Ug.
I
i
ORI
I'
I
[
PROBLEM
i,,,,.~ I I o~.~:'~'~ .....
LLI COMPUTER LLI
m .,,A.N ..,.,,OR,,ATO,. i. UN.VA° t
1 1
L
' OR III
I COMPILING
TYPE A , 1
:- !i Lo i , '
1
i I ~TAN'~D 1
KNOWLEDGE]
[
OR IV
RESULTS
Fig. 6.- COMPILING TYPE B AND TASK ROUTINES
Page 245