HopperAutoCodingPaper 1955

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

AUTOMATIC CODING FOR

DIGITAL COMPUTERS

A TALK PRESENTED AT
THE HIGH SPEED COMPUTER
CONFERENCE, LOUISIANA STATE
UNIVERSITY, 16 FEBRUARY 1955

BY

DR. GRACE MURRAY HOPPER


DIRECTOR OF PROGRAMMING RESEARCH
ECKERT MAUCHLY DIVISION
Automatic coding is a means for re- of operations through the computer.
ducing problem costs and is one of He must have a thorough knowledge
the answers to a programmer's of the computer components and
prayer. Since every ptoblem must their relative speeds and virtues.
be reduced to a series of elemen tary Receiving diagrams and equations
steps and transformed in to compu ter or statements from the analysts,
instruc tions, any method which will he will produce detailed flow
speed up and reduce the cost of charts for transmission to the
this process is of importance. coders. These will differ from the
charts produced by the analysts in
Each and every problem must go that they will be sui ted to aparti-
through the same stages: cular computer and will contain
more detail. In some cases, the
Analysis, analyst and programmer will be the
Programming, same person.
Coding,
Debugging, It is then the job of the coder to
Production Running, reduce the flow charts to the de-
Evaluation tailed list of computer instruc-
tions. At this point, an exact and
The process of analysis cannot be comprehensive knowledge of the
assisted by the computer itself. computer, its code, coding tricks,
For scientific problems, mathema ti- details of sentinels and of pulse
calor engineering, the analysis code are required. The computer
includes selecting the method of is an extremely fast moron. It
approximation, setting up specifi- will, at the speed of light, do
cations for accuracy of sub-routines, exactly what it is told to do--no
determining the influence of round- more, no less.
off errors, and finally presenting
a list of -equations supplemented After the coder has completed the
by definition of tolerances and a instructions, it must be "debugged".
diagram of the operations. For Few and far between and very rare
the commercial problem, again a are those coders, human beings,
detailed statement describing the who can write programs, perhaps
procedure and covering every even- consisting of several hundred in-
tuality is required. This will structions, perfectly, the first
usually be presented in English time. The analyzers, automonitors,
words and accompanied again by a and other mistake hunting routines
flow diagram. that have been developed and re-
ported on bear witness to the need
The analysis is the responsibility of assistance in this area. When
of the mathematician or engineer, the program has been finally de-
the methods or systems man. It bugged, it is ready for production
defines the problem and no attempt running and thereafter for evalua-
should be made to use a computer tion or for use of the results.
until such an analysis is complete.
Automatic coding enters these
The job of the programmer is that operations at four points. First,
of adapting the problem definition it supplies to the analysts, in-
to the abili ties and idiosyncracies formation about existing chunks of
of the particular computer. He program, subroutines already tested
will be vitally concerned with in- and debugged, which he may choose
put and output and with the flow to use in his problem. Second, it

- 1 -
supplies the programmer with Slml- may be reduced from a matter of
lar facilities not only with re- weeks to a mat ter of minutes. Thus,
spect" to the mathematics or pro- the need for some type of automa-
cessing used, but alsO with re- tic coding is clear.
spect to using the equipment. For
example, a generator may be pro- Actually, it has been evident ever
vided to make editing routines to since the first digital computers
prepare data for printing, or a first ran. Anyone who has been
generator may be supplied to pro- coding for more than a month has
duce sorting routines. found himself wan ting to use pieces
of one problem in another. Every
It is in the third phase that auto- programmer has detected like se-
matic coding comes into its own, quences of operations. There is a
for here it can release the coder ten year history of attemps to
from most of the routine and drud- meet these needs.
gery of producing the instruction
code. It may, someday, replace Th e sub ro uti ne, the pie ceo f cod i n g ,
the coder or release him to become required to calculate a particular
a programmer. Haster or execu ti ve function can be wired into the com-
rou tines can be designed whi ch will puter and an instruction added to
withdraw subroutines and generators the computer code. However, this
from a library of such routines construction in hardware is costly
and link them together to form a and only the most frequently used
running program. routines can be treated in this
manner. Mark I at Harvard included
If a routine is produced by a mas- several such routines -- sin x,
ter routine from library components, loglOx, lOx. However, they had
it does not require the fourth one fault, they were inflexible.
phase--debugging--from the point Always, they delivered complete
of view of the coding. Since the accuracy to twenty-two digits.
library routines will all have Always, they treated the most
been checked and the compiler general case. Other computers,
checked, no errors in coding can be Mark II and SEAC have included
introduced into the program (all square roots and other subroutines
of which presupposes a completely partially or wholly built in. But
checked computer). The only bugs such subroutines are costly and
that can remain to be detected and invariant and have come to be used
exposed are those in the logic of only when speed without regard to
the original statement of the cost is the primary consideration.
p rob lem.
It was in the ENIAC that the first
Thus, one advantage of automatic use of programmed subroutines
coding appears, the reduction of appeared. When a certain series
the computer time required for of operations was completed, a
debugging. A still greater ad- test could be made to see whether
vantage, however, is the replace- or not it was necessary to repeat
ment of the coder by the computer. them and sequencing control could
It is here that the significant be transferred on the basis of
time reduction appears. The com- this test, either to repeat the
puter processes the uni ts of coding operationsorgo on to another set.
as it does any other units of data
--accurately and rapidly. The At Harvard, Dr. Aiken had en-
elap sed time from a programmer I s visioned libraries of subroutines.
flow chart to a running routine At Pennsylvania, Dr. Mauchly had

- 2 -
discussed the techniques of in- (1) Interpretive routines which
structing the computer to program translate a machine-like pseudo~
itself. At Princeton, Dr. von code into machine code, refer to
Neumman had pointed out that if stored subroutines and execute them
the instructions were stored in as the computation proceeds -- the
the same fashion as the data, the MIT Summer Session Computer, 701
computer could then operate on Speed-Code, UNIVAC Short-Code are
these instructions. However, it examples.
was not until 1951 that Wheeler,
Wilkes, and Gill in England, pre- (2) Compiling routines, which also
paring to run the EDSAC, first set read apseudo-code, but which with-
up standards, created a library, draw subroutines from a library and
and the required satelli te routines operate upon them, finally linking
and wro te a book abou t i t , "The the pieces together to deliver, as
Preparation of Programs for Elec- output, acomplete specific program
t ronic Digi tal Compu ters". In this for future running -- UNIVAC A --
country, comprehensive automatic compilers, BIOR, and the NYU Com-
techniques first appeared at MIT, piler System.
where routines to facilitate the
use of Whirlwind I by students of (3) Generative routines may be
computers and programming were called for by compilers, or may be
developed. independent routines. Thus, a
compiler may call upon a generator
Many different automatic coding to produce a specific input routine.
systems have been developed - See- Or, as in the sort-generator, the
saw, Dual, Speed-Code, the Boeing submission of the specifications
Assembly, and others for the 701, such as item-size, posi tion of key-
the A--series of compilers for the word, etc. instructs the generator
UNIVAC, the Summer Session Compu ter top roduce a rou tine to perform
for Whirlwind, MAGIC for the MIDAC the desired operation. The UNIVAC
and Transcode for the Ferran ti Com- sort-generator, the work of Betty
puter at Toronto. The list is long Holberton, was the first major
and rapidly growing longer. In automatic routine to be completed.
the process of development are It was finished in 1951 and has
Fortran for the 70~, BIOR and GP been in constant use ever since.
for the UNIVAC, a system for the 705, At the University of California
and many more. In fact, all manu- Radiation Laboratory, Livermore,
facturers now seem to be including an editing generator was developed
an announcement of the form, by Merrit Ellmore--later a routine
was added to even generate the
II ali bra r y 0 f sub ro uti n e s for pseudo-code.
standard mathematical analysis
operations is available to users", The type of automatic coding used
for a particular computer is to
"interpretive subroutines, easy some extent dependent upon the
program debugging - .. , - auto- facilities of the computer itself.
matic program assembly techniques The early computers usually had
can be used." but a single input-output device,
sometimes even manually operated.
The automatic routines fall into It was customary to load the com-
three major classes. Though some puter wi th program and data, per-
may exhibit characteristics of one mit it to "cook" on them, and when
or more, the classes may be so de- it signalled completion, the re-
fined as to distinguish them. sults were unloaded. This pro-

- 3 -
cedure led to the development of with the A--series, will make it
the interpretive type of routine. possible to produce better compil-
SUbroutines were stored in closed ing systems. Currently, under the
form and a main program referred direction of Dr. Herbert F. Mit-
to them as they were requi red. Such chell, Jr., the BIOR compiler is
a procedure conserved valuable in- being checked out. This is the
ternal storage space and speeded pioneer--the first of the true
the problem solution. data-processing compilers.

With the production of computer At present, the interpretive and


systems, like the UNIVAC, having, compiling systems are as many and
for all practical purposes, in- as different as were the computers
finite storage under the computers five years ago. This is natural in
own direction, new techniques be- the early stages of a development.
came possible. A library of sub- It will be some time before anyone
routines could be stored on tape, c an say th is is the way to p ro-
readily available to the computer. duce automatic coding.
Instead of looking up a sub-
routine every time its operation Even the pseudo-codes vary widely.
was needed, it was possible to as- For mathematical problems, Laning
semble the required subroutines and Zeirler at MIT have modified a
into a program for a specific pro- Flexowriter and the pseudo-code in
blem. Since most problems contain which they state problems clings
some repetitive elements, this was very closely to the usual mathe-
desirable in order to make the in- matical notation. Faced with the
terpretive process a one-time problem of coding for ENIAC, EDVAC
operation. and/or ORDVAC, Dr. Gorn at Aberdeen
has been developing a "universal
Among the earliest such routines code". A problem stated in this
were the A--series of compilers of universal pseudo-code can then be
which A-O first ran in May 1952. presented to an executive routine
The A-2 compiler, as it stands at pertaining to the particular com-
the moment, commands a library of puter to be used to produce coding
mathematical and logical subroutines for that computer. Of the Bureau
of floating decimal operations. It of Standards, Dr. Wegstein in
has been successfully applied to Washington and Dr. Huskey on the
many di ff eren t mathematical problems. West Coast have developed techniques
In some cases, it has produced and codes for describing a flow
finished, checked, and debugged chart to a compiler.
programs in three minutes. Some
problems have taken as long as In each case, the effort has been
eighteen minutes to code. It is, three-fold:
however, limited by its library
which is not as complete as it 1) to expand the computer's vo-
should be and by the fact that cabulary in the direction re-
since it produces a program entirely quired by its users.
in floating decimal, it is some-
times wasteful of computer time. 2) to simplify the preparation of
However, mathematicians have been programs bo th in order to re-
able rapidly to learn to use it. duce the amount of information
The elapsed time for problems-- about a computer a user needed
the programming time plus the run- to learn, and to reduce the
ning time--has been materially re- amount he needed to write.
duced. Improvemen ts and techniques
now known, derived from experience 3) to make it easy, to avoid mis-

- 4 -
takes, to check for them, and will remain common and therefore
to detec t them. are the first that are being devel-
oped.
The ultimate pseudo-code is not yet
in sight. There probably will be There is little doubt that the
at least two in common use; one development of automatic coding
for the scientific, mathematical will influence the design of com-
and engineering problems using a puters. In fact, rt is already
pseudo-code closely approximating happening. Instructions will be
mathematical symbolism; and a added to facilitate such coding.
second, for the data-processing, Instructions added only for the
commercial, business and accoun t ing convenience of the programmer will
problems. In all likelihood, the be omitted since the computer,
latter will approximate plain rather than the programmer, will
English. write the detailed coding. How-
ever, all this will not be complet-
The standardization of pseudo-code ed tomorrow. There is much to be
and corresponding subroutine is learned. So far as each group has
simple for mathematical problems. completed an interpreter or com-
As a pseudo-code IIsin XII is prac- piler, they have discovered in
tical and sui table for II compu te the using it "what t hey really wan ted
sine of x II, "PWTII is equally ob- to doll. Each executive routine
vious for "compu t e Ph iladelph ia produced has lead to the writing
Wage Tax", but very few commercial of specifications for a better
subroutines can be standardized in routine.
such a fashion. It seems likely
that a pseudo-code IIgross-pay" will 1955 will mark the completion of
call f or a differen t sub rou tine in several ambitious executive rou-
every installation. In some cases, tines. It will also see the
not even the vocabulary will be specifications prepared by each
common since one computer will be group for much better and more ef-
producing pay checks and another ficient routines since testing in
maintaining an inventory. use is necessary to discover these
specifications. However, the rou-
Thus, future compiling routines tines now being completed will
must be independent of the type materially reduce the time required
of program to be produced. Just as for problem preparation; that is,
there are now general-purpose com- the programming, coding, and debug-
puters, there will have to be gen- ging time. One warning must be
eral-purpose compilers. Auxiliary sounded, these routines cannot de-
to the compilers will be vocabul- fine a problem nor adapt it to a
aries of pseudo-codes and corres- computer. They only eliminate the
ponding volumes of subroutines. clerical part of the job.
These volumes may differ from one
installation to another and even Analysis, programming, definition
within an installation. Thus, a of a problem required 85%, coding
compiler of the future will have a and debugging 15%, of the pre-
volume of floating-decimal mathe- paration time. Automatic coding
matical subroutines, a volume of materially reduces the latter time.
inventory routines, and a volume It assists the programmer by de-
of payroll routines. While gross- fining standard procedures which
pay may appear in the payroll vol- can be frequently used. Please
ume both at installation A and at remember, however, that automatic
installation B, the corresponding programming does not imply that it
subroutine or standard input item is now possible to walk up to a
may be completely different in the c ompu ter, say "wri te my payroll
two volumes. Certain more general chec ks ", and push a but ton. Such
routines, such as input-output, efficiency isstill in the science-
editing, and sorting generators fiction future.

- 5 -
ECD - 1

You might also like