
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.