Von Neumann's First Computer Program •
259
secrecy surrounding electronic computers
was lifted when ENIAC was dedicated, and
the great potential for high speed computing
was gradually realized by more and more
people. The principles of EDVAC's design
were very strong influences on all of the
computers constructed during the next
decade (see [14]).
After yon Neumann's first two versions of
instruction codes had been digested by a
number of people, other variations began
to be proposed. In November 1945, Calvin
N. Mooers devised a three-address code as
an alternative to yon Neumann's idea; and
in August 1946, he lectured at the Moore
School about a further development, the
use of flagged data for terminating loops [13,
Vol. 4, lect. 39]. Another interesting three-
address code, due to John Mauchly, was de-
scribed by Eckert in the same series of lec-
tures [13, Vol. 1, lect. 10]. Meanwhile yon
Neumann had developed his ideas somewhat
further; he and Goldstine, in collaboration
with Arthur W. Burks, prepared a mono-
graph which was to be the first widely cir-
culated document about high speed com-
puters, "Preliminary discussion of the logical
design of an electronic computing instru-
ment" [2]. By this time, their proposed ma-
chine had already changed somewhat dras-
tically: It was to have a random-access
(iconoscope) memory of 4096 40-bit words.
Instructions were 20 bits long, packed two
to a word. The operation codes had a differ-
ent flavor, too, resembling today's IBM
7094: "Clear and add x", etc. Left and right
shift operations were included for the first
time.
The EDVAC project itself continued at
the Moore School until August 1949, when
EDVAC was delivered to the BRL. In its
final form, the EDVAC had a four-address
instruction code (the fourth address specify-
ing the location of the next instruction), de-
vised by Samuel Lubkin. Its memory con-
sisted of 128 long tanks, each containing
eight 44-bit words, plus six one-word non-
addressable short tanks, and an auxiliary
drum. One of the only things that remained
unchanged throughout most of its design
was the basic clock rate of one ~sec per bit;
the completed machine processed one word
every 48 ~sec, leaving four "blank" bits be-
tween words. Further development work on
input/output devices was necessary before
EDVAC became operational late in 1951;
then it continued steady and inexpensive
operation for many years, averaging, for
example, 145 hours of useful work per week
in 1961 [11]. It was finally retired from service
in December 1962.
For the story of yon Neumann's other
pioneering contributions to computing, see
Goldstine's recent account [6]. Goldstine and
yon Neumann published three important
supplements to [2] during the next years;
these famous documents [7-9] formed the
foundation for computer programming tech-
niques, covering a wide range of topics from
flowcharts to numerical analysis to reloeat-
able loading routines. Reference [8, Sec. 11]
deals with sorting and merging in consider-
able detail; von Neumann here put the fin-
ishing touches onto the work he had sketched
in 1945.
ACKNOWLEDGMENTS
I wish to thank Drs. Goldstine and Mauehly
for considerable assistance in checking the
historical details presented in this paper,
and for several delightfully informative dis-
cussions.
REFERENCES
1. AUGUSTA, ADA, COUNTESS OF LOVELACE.
Annotated transl, of Menabrea, L. F., Sketch
of the Analytical Engine invented by Charles
Babbage. In Charles Babbage and h~s Cal(ulat-
~ng Engines (Phihp Morrison and Emily Mor-
rison, Eds.), Dover, New York, 1961, pp. 225-
297; see also p. 68.
2. BURKS, ARTHUR W., HERMAN H. GOLDSTINE,
ANn JOHN VON NEUMANN Preliminary discus-
sion of the logical design of an electronic com-
puting instrument. Inst. for Advanced Study,
Princeton, N. J., June 28, 1946; 2nd ed., Sept.
2, 1947 (42 pp). (Reprinted in yon Neumann's
Collected Works, Vol. 5, A. H. Taub, Ed. (Per-
gamon, London, 1963), pp 34-79.
3. DESMONDE, WILLIAM H., AND KLAUS J. BERK o
LING. The Zuse Z-3. Datamation 1~ (Sept.
1966), 30-31
4. ECKERT, J. PRESPER, JR., AND JOHN W.
MAUCHLY. Application of analyzer to a set of
equations for external ballistics. In Proposal
for an electronic difference analyzer (J. G.
Brainerd, Ed ), Moore School of Elec. Eng.,
Computing Surveys, Vol. 2, No. 4,
December 1970