care for floating decimal? complex number? and
double precision programs. For each operation
listed by the mathematician~ a type A routine
will perform the following services:
I. locate the subreutine indicated
by the call-number~
2. from the computer and subroutine
information combined with its record of the
program~ fabricate and enter in the program
the instructions transferring the arguments
from working storage to the subroutines
3. adjust the entrance and normal exit
lines to the position of the subroutine in the
program and enter them in the program~
~. according to the control infor-
mation supplied by the programmer~ adjust
alternate exit lines and enter them in the
program (this process involves reference to
the record);
5. according to the control infor-
mation supplied with previous operations adjust
auxiliary entrance lines and enter them in
the program~
6. modify all addresses in the
subroutine instructions and enter these
instructions in the programs
7. according to information supplied
by the subroutine, leave unaltered all constants
embedded in the subroutine and transfer them to
the program~
8. from the computer and the subroutine
information fabricate and enter in the program
the instructions transferring the results to
9. maintain and produce a record of
the program including the call-number of each
subroutine and the position of its entrance
line in the program.
The compiling routines also contain certain
instr~ctions concerning input taoes? tape
library? and program tapes~ peculiar to the
UNIVAC. All counting operations such allo-
cation of temporary storage and program space?
"and control of input and output are carried
on steadily by the compiling routine. Stated
bluntly~ the compiling routine is the
programmer and performs all those services
necessary to the production of a finished
program.
Compiling Poutines of Type B? will for each
operatlon~ by means of "task routines"? replace
orsupplement the given computer information
with new information. Thus? compiling routine
B-1 will? for each operation~ copy the infor-
mation concerning that operation and call in
the corresponding task routine. The task
routine will generate the formula~ and derive
the information? necessary to compute the
derivative of the operation. Compiling
routine B-I then records this information in
a form suitable for submission to a T~fpe A
routine.
Since information may be re-submltted to
a type B routine? it is obvious that in order
to obtain a program to compute f(x) and its
first n derivatives? only the information
defining f(x) and the value of n need be
given. The formulas for the derivatives of
f(x) will be derived by repeated applications
of B-1 and programmed by a type A routine.
It is here that the question can best
be answered concerning a liking for or an
aversion to subroutines. Since the use of
subroutines in this fashion increases the
abilities of the computer? the question
becomes meaningless and transforms into
a question of how to produce better
subroutines faster. However~ balancing
the advantages and disadvantages of using
subroutines? among the advantages are
Page 2~9
i. relegation of mechanical jobs
such as memory allocation~ address modifi-
cation? and transcription to the UNIVAC~
2. removal of error sources such
as programming errors and transcription
errors~
3. i conservation of programming time~
~. ability to operate on operations;
5. duplication of effort is avoided?
since each program in turn may become a
subroutine.
Only two disadvantages are immediately
evident. Because of standardization~ a small
amount of time is lost in performing duplicate
data transfers which could be eliminated in a
tailor-made routine. In base load prob!ems~
this could become serious. Even in this case~
however~ it is worthwhile to have UNIVAC produce
the original program and then eliminate such
duplication before rerunning the problem. The
second disadvantage should not long remain
serious. It is the fact that? if a desired
subroutine does not exist? it must be
programmed and added to the library. This will
be most likely to occur in the case of input
and output editing routines until a large
variety is accumulated. This situation also
emphasizes the need for the greatest gener-
ality in the construction of subroutines.
Several directions of future developments
in this field can be pointed out. It is to
be hoped that reports will be presented on
some of them next September.
More type A compiling routines will be
devised! those handling commercial rather than
mathematical programs; some special purpose
compiling routines such as a routine which
will compute approximate magnitudes as it
proceeds and select sub-routines accordingly.
Compiling routines must be informed of the
average time required for each sub-routlne
so that they can supply estimates of running
time with each program. Compiling routines
can be devised which will correct the
computational procedure submitted to produce
the most efficient program. For example~ if
both sin @ and cos ~ are called for in a
routine~ they will be computed more rapidly
simultaneously. This will involve sweeping
the computer information once to examine its
structure.
Type B routines at present include
linear operators. More type B routines
must be designed. It can scarcely be
denied that type C and D routines will
be found to exist adding higher levels of
operation. Work is already in progress to
produce the formulas developed by type B
routines in algebraic form in addition to
producing their computational programs.
Thus by considering the professional
programmer (not the mathematician); as an
integral part of the computer~ it is evident
that the memory of the programmer and all
information and data to which he can refer is
available to the computer subject only to
translation into suitable language. And it is
further evident that the computer is fully
capable of remembering and acting upon any
instructions once presented to it by the
progrmmner.
With some specialized knowledge of more
advanced topics~ UNIrqAC at present has a well
grounded mathematical education fully
equivalent to that of a college sophomore? and
it does not forget and does not make mistakes.
It is hoped that its undergraduate course will
be completed shortly and it will be accepted
as a candidate for a graduate degree.