Man-Machine Communication in on

MAN-MACHINE COMMUNICATION IN ON-LINE
MATHEMATICAL ANALYSIS *
R. Kaplow, J. Brackett and S. Strong
Massachusetts Institute of Technology
Cambridge, Massachusetts
INTRODUCTION
gram from a library are present, including incomplete or nonexistent cataloging and documentation.
It appears that efficient general utilization of
computers will depend on the evolution of subsystems which combine available procedures for specific
applications in such a manner that little or no library
searching or programming will be required. Such
subsystems have already been developed in a number of specific fields, such as civil engineering,3, 4
electrical circuit 5 and nuclear reactor design, 6 and
simulation techniques. 7 It also appears to be a feasible approach in the more general area of mathematical analysis since appropriate combinations of
approximately 30 to 50 numerical procedures will
suffice for large classes of problems. Though users
may ultimately do relatively little programming with
such a system, it is clear that rather sophisticated
programming will be required to support the system.
The present paper, which deals with a new system
for on-line mathematical analysis, illustrates a general approach which can eliminate programming for
many users. Our interest in the program grew out of
consideration of the manner in which digital computation techniques could be best utilized in teaching
subjects in which side excursions for programming
could not be tolerated and in which "black box"
programs would serve little or no purpose. It was
decided, at the outset, that one would want to preserve an analytical approach, that is, the breakdown
During the past four or five years increasing attention has been paid to providing efficient, direct access
to digital computing machines. Interactive or "online" systems have been implemented on various
machines with a variety of programming techniques.
Whether the system uses a small computer which can
handle only one user-operator or is part of a timeshared multiple-access computing utility, the goal is
to permit the user to have direct communication
with an. operating program. Among other advantages, such an on-line system permits a user to insert
decisions during the course of problem solution, with
his judgments benefiting from current results.
A large multiple-access system serving a wide
variety of users, such as the Project MAC System,l, 2
tends to become a repository for problem-solving
techniques. Therefore, the lay user of such a system, in contrast to an experienced programmer, may
more often be concerned with the problem of locating and learning to use suitable procedures than with
writing a program himself. In such a circumstance,
all of the problems associated with obtaining a pro-
* The work reported herein was supported by Project
MAC, an MIT research program sponsored by the Advanced Research Projects Agency, Department of Defense,
under Office of Naval Research Contract Nonr-4102(Ol).
465
From the collection of the Computer History Museum (www.computerhistory.org)
466
PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966
of the problem into its component parts, each part
consisting of a particular mathematical procedure.
The required system would be one in which the
writing (or, more likely, the typing) of normal
mathematical nomenclature would cause the results
of the operations to be generated. Thus it would be
required that the student, or other user, have a
sufficient grasp of a particular problem so that he
could describe it in standard mathematical form. He
would then expect the system to request all of the
necessary specific information, do all the indicated
mathematics and, on request, to present the results
in a useful form. With these intentions, we have
been developing such a system, called MAP (for
Mathematical Analysis Program),8 for use in conjunction with the MIT Computation Center and
Project MAC Compatible Time-Sharing Systems
(CTSS).
Techniques for utilizing direct computer access in
mathematical analyses have been discussed by J. C.
Shaw,9 G. Culler and R. Huff,1° and G. Culler and
B. Fried. l l ,12 In each instance the system was implemented within a less powerful facility than is available at the MIT Computation Center and Project
MAC. CTSS facilitates the use of English language
communication and allows the storage of extensive
programs and data. The aims outlined in the foregoing paragraphs are therefore more readily implemented.
The most striking aspect of an on-line system is
the extent to which it may be programmed to carry
on a meaningful dialogue. While the computer cannot generate ad-lib responses, a sophisticated programmer, working within the framework specified
by a particular type of problem, can anticipate
what kinds. of questions will be asked and what kind
of responses will be made by a user. He can therefore pre-store or provide a program to generate
responses to be made and questions to be asked in
reply to the user's input. 13 Most likely, of course,
he will place a definite limit on the vocabulary which
the computer will understand, simply in order to
make the programming and storage requirements less
demanding. The computer's responses can nonetheless be quite varied; they can depend on previous
dialogue, the sophistication of the user's questions
and responses, the results of calculations and other
factors as well.
A number of previous applications have taken
good acivantage of this "conversational" facility of
direct-access computers. Among those which are in
operation are systems for computer-aided design in
mechanical engineering,14 design of electrical networks,15 searching the technical literature,16 describing and analyzing the three-dimensional structure of
large molecules,17 and computer-aided teaching. 18
For those who have had no previous contact with
user-machine dialogues a very readable general discussion by Licklider will be of interest.1.9
The form and language of the user-machine communication is the most obvious and probably the
most important single aspect in the design of a conversational system. It is necessary to strike a balance
between the terminology commonly understood and
an efficient but cryptic code. At one extreme is the
possibility of using English prose throughout, and at
the other the possibility of a two or three-letter code
just complex enough to eliminate ambiguities. The
former choice requires a great deal of rather useless
translation and elimination of redundancies by the
computer and an excess of input and output. On the
other hand, codes are a nuisance for the user to
memorize or decipher. The major requirement, of
course, is that the demands on the user should be
minimized, in terms of both typing and deciphering
effort. We have therefore chosen neither of the extremes, but a combination of modifications of both.
The user "talks" in one or two-word phrases or in
arithmetic equations, while the computer uses a
passable form of English. Conversation between the
user and the computer consists primarily of questions
and answers, with statements (for informational purposes) and outright commands occasionally admixed.
Questions, which in the present context are any
requests for information, are often phrased in the
normal form of commands, because of the simpler
grammatical form of the latter.
ILLUSTRATION OF USER-MACHINE
COMMUNICATION
Even if space permitted, there would be little purpose in describing all of the facilities available within
MAP. Rather we shall attempt to illustrate the salient features of the user-machine conversation with
a specific illustration. For this purpose we select the
following problem:
Given an experimental function, spect (v), determine, by fitting, the best set of values for the physical
From the collection of the Computer History Museum (www.computerhistory.org)
467
MAN-MACHINE COMMUNICATION IN ON-LINE MATHEMATICAL ANALYSIS
parameters qi,
being:
Vi
and ri, the pertinent relationships
(normda(vr)
+OO
spect(v) =
J
-00
COMMAND PLEASE
lev') ABS(v-v') dv'
ABS(v) = l-exp [-b~qi r'i2/(4(v-vd'2
+ ri 2)],
i=l
and r 8, b = known constants of the experiment.
The physical basis of the problem happens to be
Mossbauer y-ray absorption spectroscopy, but that
is of no importance in this discussion. It may be
perceived, however, that since the unknowns determine the positions, magnitudes and widths of a
series of Lorentzian peaks in an absorption spectrum which is subsequently convolved with the
source spectrum, the usual programming approach
(in a language such as FORTRAN) will be quite
complex. Even a discussion of a suitable program
would require an inordinate amount of time if students were to utilize the computer in a laboratory
subject. With MAP, as we shall see, it is only necessary for the student to understand the mathematics
of the analysis at the same level that the instructor
would normally desire.
If this were a laboratory problem, the instructor
would probably suggest that the student compare his
normalized data-to be called normda (vr ) -to trial
calculations of spect(v), until agreement was achieved
and the corresponding parameters determined.
We will assume that the user has available to him
one of the more than 100 remote terminals on the
MIT campus, with or without display hardware. The
terminals are connected to the computer system via
a private branch exchange; a user may dial either the
Project MAC or the Computation Center system.
Once logged into the system, the user reaches MAP
by typing "resume map" to the CTSS supervisor;
the computer responds "COMMAND' PLEASE",
indicating its readiness for a command.
In this instance the first step would be to convert
the experimental counting rate data into normalized
absorbed intensity values. In the following example,
note that the upper-case type is computer-generated;
only the lower-case lines and the numerical input
were typed by the user. The user inputs have been
underlined to make them distinct.
= l-cr(vr) /cbase)
DECIMAL VALUE OF THE CONSTANT CBASE
PLEASE. 5.544
CR(VR) IS NOT DEFINED. IF IT HAS A DIFFERENT NAME, TYPE THE NAME. IF YOU
WANT TO TYPE IN NUMERICAL VALUES
NOW, TYPE THE WORD INPUT. OTHERWISE,
GIVE A CARRIAGE RETURN AND DEFINE
THE FUNCTION BEFORE USING THE NAME
AGAIN.
input
PLEASE PRINT ON THE NEXT LINE MIN,
MAX, AND DEL FOR THE VARIABLE VR.
-5.
5.
.1
MIN =-50
MAX = 50
TYPE IN DATA IN ARBITRARY FORMAT,
EACH DATA POINT SEPARATED BY A
SPACE. THE INPUT DATA CAN BE EDITED
BY USING THE CONVENTIONS GIVEN IN
THE MANUAL. WHEN ALL DATA POINTS
HAVE BEEN ENTERED, GIVE TWO CARRIAGE REURNS, COMPLETE .EDITING IF
NECESSARY AND GIVE COMMAND 'FILE
INPUT DATA'.
INPUT:
5.544
5,544
5.549
5.545
5.546
5.549
5.551
5.542
5.547
etc.
5.549
5.545
5.546
EDIT:
locate 5,544
change /, /. /
print
5.544
5.544
file input data
COMMAND PLEASE
As illustrated here, MAP will always request
values for variables specified in an operation, but not
previously defined. When arrays of data (i.e., functions) are requested, the input is placed under the
supervision of an editing program and is available
From the collection of the Computer History Museum (www.computerhistory.org)
PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966
468
for editing in Hollerith (BCD) form until written
over by the next input data. The editing illustrated
above, which was required because of the accidental
and initially unnoticed typing of a comma instead of
a decimal point, is self-explanatory. The editing
facility is essentially identical to that available directly in CTSS.2 In addition to the standard typewritten form of data input, as illustrated above, the
data can be inserted off -line in punched card form.
Functions are referred to in the usual mathematical form (e.g., cr (vr) ). If the tabulation of a
function corresponds to equal intervals in the independent variable, the range of interest can be specified by the first, the last, and the interval between
values of the independent variable. In such instances
the independent variable (e.g., vr) has an identity of
its own and can appear explicitly in equations. Subscripts are nonetheless inherent in a digital machine
and the values typed by the computer in response
to the min, max, del input (e.g., MIN
50
MAX = +50) are the subscripts assigned to the
first and last values of the function (using the convention, subscript = vr/ del) ; the user will not usually be concerned with these numbers. If the function
values do not correspond to equal intervals in an
independent variable, the user may type integers for
min and max which are then taken to specify the
exact subscript sequence desired.
The results of an operation, such as the evaluation of the arithmetic expression to the right of
the
sign, are not automatically output. It is assumed that most results are intermediate and that the
user does not want them printed or displayed. However, the simple request
= '-
=
print normda ( vr )
would produce a listing of the calculated function;
= sqrtf(gamsqs) /(pi* (4. *v**2+gamsqs)))
PLEASE PRINT ON THE NEXT LINE MIN,
MAX AND DEL FOR THE VARIABLE V.
-1.
MIN
1.
= ,-20
.05
MAX
DEC. VALUE OF
PLEASE
0.01
= 20
CONSTANT
GAMSQS
COMMAND PLEASE
In this equation, the system assumes that v is the
name of an independent variable in the arithmetic
expression, rather than a constant, since it is used
as the independent variable of the answer array, i (v) .
Since no functions appear in the expression, the
desired range of v is not defined, and is therefore
requested. The particular range used here, -1. to
+ 1., should be adequate to include all the significant
values of the peak. If the user had not previously
thought much about this point, and if he were at one
of the consoles which had display facilities, he would
get a quick verification by displaying the resulting
function. It is important to note, however, that the
system does not depend on the availability of graphical display hardware; printed results are produced
in an easily readable form and should always be
sufficient, though not necessarily always as convenient.
A graph of the function i (v), which is shown in
Fig. 1, could be generated by using a plot request
in the following manner:
plot
PLOT WILL PRODUCE A GRAPH OF THE DESIRED FUNCTION (S).
WHAT FUNCTION(S) WOULD YOU LIKE TO
PLOT.
i(v)
print normda(vr) -1.1.
would yield only those results for '-1.
(i(v)
~ vr ~
+ 1.;
print normda (vr) -1.5 2.50.025
would cause a new array, including interpolated values, to be generated and printed for -1.5 ~vr~2.5
at an interval in vr of 0.025.
The ability to selectively control the output and to
specify the currently most meaningful range and
interval has reduced the volume of printed output in
comparison with batch processing and also facilitates
the user's comprehension of his results.
The second step in the data analysis is to generate
the theoretical incident intensity distribution, i(v).
SHOULD THE PLOT BE LINEAR, LOG-LOG,
LINEAR-LOG, OR LOG-LINEAR.
linear
DO YOU WANT A POINT OR LINE PLOT OF
I(V).
line
IF YOU DO NOT WANT ALL OF THE POINTS
OF THE FUNCTION(S) PLOTTED, TYPE THE
RANGE AND/OR INTERVAL IN V TO BE
USED. OTHERWISE GIVE JUST A CARRIAGE
RETURN.
COMMAND PLEASE (The plot would now be on
the display screen)
From the collection of the Computer History Museum (www.computerhistory.org)
469
MAN-MACHINE COMMUNICATION IN ON-LINE MATHEMATICAL ANALYSIS
With the above request we have illustrated the
"long form" of a request, in which the user need
type only the one word which is the common name
for the mathematical procedure or data presentation
technique desired. The response of the computer
will then be sufficiently explicit, hopefully, that even
an inexperienced user will be able to convey the
necessary (or optional) specific information. However, such "conversations" may become tedious because after some experience one can anticipate the
questions. Therefore optional "short forms" may be
used in which some or all of the parameters are
presented with the original command. If parameters
are given with the command they must usually be
presented in the order in which they would have
been requested. If only some of the required parameters are given, the unspecified ones will be requested. Certain procedures, however, will assume
that a particular option is desired if nothing is
stated to the contrary. The "short form" has been
illustrated previously, in fact, with the various options of the print request.
It may be noted, in the question for i (v), that
operational functions may be used (e.g., sqrtO,
utilizing the names and f suffixes which are familiar
to. FORTRAN users. In addition to those operations
which are normally available in programming lan-
751---··~··"··-·l····"··":·········r······
..t····-·············:-·····~..~~~~~:~=~l
.
.......
.5)........
'..
~.
.. ..
+. . . . ;. . . . +. . . . .+. . . .: : . :"
~
i. ·. ·. . ;. . · . ·L........~.........L.... ..t·· ·····;···....··J..·..···..·..·....··~···....·t
1.:
!-........1.. ..:.:...:........1......:..:... ....!.... .............................:....:.......
OE-l i
-lE 0
.8
.6
.4
.2
~
0.2
+qb*gmsqb/(4.* (vdum-vb) **2+gmsqb) +qc*gmsqc/(4.*(vdum-vc) **2+gmsqc)))
PLEASE PRINT ON THE NEXT LINE MIN, MAX AND DEL FOR THE
VARIABLE VDUM.
.05
MAX = 100
DEC. VALUE OF CONSTANT
.6.8
guages (sinf, sinhf, asinf, sqrtf, absf, expf, etc.),
MAP includes procedures which operate on all or
part of a function simultaneously, such as the summation of all tabulated values (sumO, the total
integral over the entire range of a function (intO
and the derivative (derif).
MORE LEFT PARENS THAN RIGHT, CONTINUE OR GIVE CARRIAGE
RETURN TO CANCEL.
MIN = -100
J
Figure 1. Graph of i(v) versus v generated by the "plot"
command, as described in the text. Only the
origin is labeled with the appropriate power of
10.
(c(vdum) =conb* (qa*gmsqa/( 4. * (vdum-va) **2+gmsqa)
5.
~
2
Proceeding with the analysis,
-5.
:
6
GMSQC PLEASE.
.12
(all other constants not previously defined would be requested in the same manner)
COMMAND PLEASE
(abs(vdum) = 1-expf( -c(vdum)))
COMMAND PLEASE
From the collection of the Computer History Museum (www.computerhistory.org)
PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966
470
A wider range, - 5. to + 5., is required for the
significant values of the absorption factor abs(vdum),
than was required for i ( v ). Again, since no functions
appear in the equation for c ( vdum) , a range and
interval is requested for vdum. If v had been used as
the independent variable, the system would have
used the previously assigned range, -1 ~ v ~ + 1.,
automatically. The dummy variable, vdum, has been
used in order to allow specification of the more extensive range that is required for the abs function
and hence the c function.
The calculated spectrum is then obtained by convolving the incident intensity distribution with the
absorption factor.
convolve
THIS COMMAND OBTAINS THE INTEGRAL
OF THE EXPRESSION A(X)*B(R-X)*DX
FOR ALL PERTINENT VALUES OF R.
WHAT IS THE NAME OF THE FUNCTION OF
THE TYPE A(X).
abs (vdum)
WHAT IS THE NAME OF THE KERNEL FUNCi(v)
TION.
NAME OF ANSWER PLEASE.
spect(vr)
COMMAND PLEASE
For the convolution procedure, the only requirement
on the two input functions is that they each be tabulated at equal intervals in their independent variables.
The computer will interpolate (second order) if it is
necessary to compensate for an initial inequality of
the intervals in the two functions. The resultant
function, spect(vr), will be generated with the interval common to both, or the smaller of the two,
and with the augmented range implicit in the convolution. Here, for example, the range of spect (vr)
will extend from -6. to + 6. In all the procedures,
including equations, the system will handle mixtures
of functions with different ranges and intervals and
automatically derive results only for the range in
which all the functions are defined. When mixed
intervals appear, the user will be interrogated to
determine· whether finer or coarser specifications of
the functions are more appropriate to his problem.
Having calculated a first approximation to the
fitting function, the user can check the fit using the
graphical display. The following is an illustration of
a short form of the plot command.
plot normda ( vr ) points spect (vr ) lines - 5. 5.
Unless otherwise specified, the range used for the
graph, when two or three functions are displayed,
would be sufficient to include all the values of the
various functions. Here the user has limited the
range to -5.~vr~ +5., the interval covered by
his data. It may be noted that the comparison, shown
in Fig. 2, is reasonably good but nonetheless capable
of improvement. The user would presumably go
through the procedure again, starting at the calculation for c(vdum), after deleting or redefining any
parameters which he thought required alteration.
COMMAND SEQUENCES
Since at least two iterations and probably more
will be required for most procedures of the type
illustrated, it is advantageous if the computer stores
particular sequences of commands. This facility is
available in MAP, and would normally be used for
this problem. After generating the normalized data,
normda (vr), and the incident intensity, i (v), the
user need only type the word "create" to define a
sequence of commands.
create
TYPE IN COMMANDS, ONE PER LINE. WHEN
ALL COMMANDS HAVE BEEN ENTERED,
GIVE TWO CARRIAGE RETURNS, EDIT IF
NECESSARY, AND GIVE COMMAND 'FILE
XXXXXX' (WHERE XXXXXX IS A NAME
OF 6 OR FEWER CHARACTERS BY WHICH
YOU CAN IDENTIFY YOUR COMMAND SE-
OE -
~ !: : : :.:!: : : : L: ~: :.: : :J:· : l: · · :j: : :.'. . ::.:.:::·.:::L.:·:l
-SE 0
-4
-3
-2 -1
0
1
2
3
4
S
Figure 2. Simultaneous plot of normda(vr), as points, and
the initial calculation of spect (vr), as a continuous curve.
From the collection of the Computer History Museum (www.computerhistory.org)
MAN-MACHINE COMMUNICATION IN ON-LINE MATHEMATICAL ANALYSIS
471
QUENCE). THE COMMANDS CAN BE EDITED
AND PRINTED BY USING THE CONVENTIONS GIVEN IN THE MANUAL.
INPUT:
(c(vdum) =conb* (qa*gmsqa/( 4. * (vdum-va) **
2+gmsqa)
+qb*gmsqb/(4.* (vdum-vb) **2+gmsqb)
+qc*gmsqc/( 4.* (vdum-vc) **2+gmsqc))
(abs(vdum) = l-expf( -c(vdum)))
convolve abs(vdum) iCY) spect(vr)
plot spect (vr) lines normda (vr) points
-.5
5.
0.1
OE - 2
EDIT:
1
2
3
4
5
6
7
8
9
0
Figure 4. The initial fitting spectrum, spect(vr), plotted
versus the normalized data, normda(vr). A
diagonal straight line would represent perfect
agreement; the three cusps correspond to the
three peaks in the spectrum.
file mossb
COMMAND PLEASE
The user has created a "command sequence" and
assigned to it the name "mossb." This list of commands may be edited either before the file request,
or at any later time (using the request "edit mossb").
Execution of the entire sequence can be initiated by
typing "run mossb." Unless it is specifically erased,
the sequence will remain available for use during
subsequent console sessions. During execution each
statement in the command sequence will be executed
just as if it had been typed in at that moment. Having created mossb, the user's typing could be limited
to a series of run mossb's and the adjustment of
parameters between iterations, repeating the sequence until satisfactory agreement was achieved.
The complete flexibility of on-line operation is retained, of course, since the user may inject side calculations of any sort between iterations, and may
even work on an entirely new problem; the command sequence will remain defined until he deletes
it from the system.
It is worth emphasizing that the subsidiary results
of command sequences remain available. For example, after finding the best fit the user might want
to compare the spectrum to c(vdum), which is more
directly related to the physical nature of his specimen.
plot spect (vr )
c(vdum)
-5.
+5.
0.1
would produce the graph in Fig. 3. Another sort of
comparison, which may be useful whenever the result
of a transformation or calculation must be compared
to an input function, is to plot one function against
another:
-5E 0
-4
-3
-2
-1
0
1
2
3
4
5
Figure 3. Simultaneous plot of normda(vr), as points, and
the final fitting function, spect (vr) , as a continuous curve.
compare
spect(vr)
normda(vr)
presents a plot of normda (vr) versus spect (vr ). The
graph shown in Fig. 4 was produced when the initial
fit was compared to the data. Though they are not
From the collection of the Computer History Museum (www.computerhistory.org)
472
PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966
cam manly used at present, such graphs pravide a
wealth af infarmatian to the experienced eye.
Unless further calculatians are required which invalve these particular data and calculated functians,
the user wauld ultimately erase them, but he wauld
prabably prefer to' retain the cammand sequence
"massb." If he types "data update," the camputer
will type aut the names af all canstants, functians
and cammand sequences that he has defined within
the MAP System and will ask him which anes aught
to' be raised to' a mare permanent star age level; he
shauld respand "massb." The subsequent request,
"data restare," will erase everything else that has
been defined.
We have as yet said nathing about user errars
which cammanly accur and which lead to' seriaus
frustratians when a system is nat sufficiently attuned
to' their likelihaad. Insofar as typing mistakes are
cancerned, MAP makes use af the CTSS erasure
facility; typing n quatatian marks deletes the n previaus characters and a questian mark deletes the
entire line. All input data and cammand sequences
can be altered immediately after they are typed, or
after they have been used by utilizing the "edit" request. 'Vithin the MAP pracedures themselves, we
have attempted to' detect all" lagical incansistencies
and incamplete ar impossible requests and, ins afar
as is passible, to' allaw the user to' carrect himself.
Often, the user will realize that he has made a mistake when the camputer asks him a questian that
he had nat expected; in nearly every case, typing the
ward "quit" will cause the system to' stap the current operatian ar sequence af aperatians and revert
to' "COMMAND PLEASE." If, while waiting far a
calculatian to' be completed, the user realizes that he
had sent the system off an' a faal's errand, he may
interrupt the system by twice depressing the "quit"
buttan an the cansole.
invalved, the interpretatian procedure used in MAP
will be less efficient than a campiled prO' gram ). In
arder to' accammadate such users, the MAP System
cantains features which facilitate the writing af pragrams and allaw executian af those prO' grams to' be
intermixed with the basic pracedures already available. Suitable pragrams may be written in any language which can call a MAD subrautine 20 (e.g.,
FAP, MAD, AED, etc.). A MAD pragram which
will exactly duplicate the cammand sequence illustrated above is shawn in Fig. 5.
This MAD prO' gram cauld be written, translated
and filed in MAD and BSS farm, using the facilities
available within the time-sharing system. 2 The CTSS
cammand "resume map" wauld then return cantral
to' the MAP System. If the pragram had been assigned the name "pmossb," it cauld be executed at
any time, even in the middle af a cammand sequence, with the MAP cammand "execute pmassb."
With this particular pragram, "execute pmassb"
wauld be exactly analagaus to' "run massb" using the
previausly illustrated cammand sequence. The numerical results wauld be identical and the camputer's
INTEGER MIN, MAX, I
DlMENSIDN C(1000), ABS(1000)
QA=VALUE. ($QA*$)
QB=VALUE. ($QB*$)
QC=VALUE. ($QC*$)
VA=VALUE. ($VA*$)
VB=VALUE. ($VB * $ )
VC=VALUE. ($VC*$)
GA=VALUE. ($GMSQA*$)
GB=VALUE. ($GMSQB*$)
GC=VALUE. ($GMSQC*$)
CON=VALUE. ($CONB*$)
EXECUTE RANGE. ($VDUM*$, MIN,MAX,DEL)
THROUGH LOOP, FOR I=MIN, 1,I.G.MAX
V=I*DEL
C(I-MIN)=CON* (QA*GA/(4.* (V-VN.p.2+GA)
1 +QB*GB/(4.*(V-VB).P.2+GE)
USER PROGRAMS WITHIN MAP
2 +QC*GC/ (4. * (V-VC) . P. 2+GC) )
LOOP
We have traced the spectrum-fitting prablem alang
thase lines which we would expect a student ar
sparadic user to' fallaw. Hawever, far the researcher
whO' spends his days analyzing Mossbauer spectra,
cammand sequences may nat be entirely satisfactory.
He may have in mind a mare saphisticated analysis
technique than is immediately available in MAP, ar
might prefer to' sacrifice same of the ease af abtaining the first solution for the sake af increased efficiency aver the lang run (when lang equations are
ABS(I-MIN)=l.-EXP. (-e(I-MIN»
VECTOR VALUES ARG1=$ABS(VDUM)*S
EXECUTE ou'r. (ARG1,ABS,MIN,MAX,DEL)
VECTOR VALUES ARG2=$ABS(VDUM) I (V) SPECT(VR)*S
EXECUTECONVOI. (ARG2)
VECTOR VALUES ARG3 $SPECT(VR) LINES NORMDA(VR)
1 POINTS
-5.
EXECUTE PLOT1.
+5.
0.1*$
(ARG3)
EXECUTE CHNCOM.
END OF 1 PROGRAM
Figure 5. Example of the program "pmossb" for use with
the "execute" command.
From the collection of the Computer History Museum (www.computerhistory.org)
MAN-MACHINE COMMUNICATION IN ON-LINE MATHEMATICAL ANALYSIS
requests for undefined parameter values would also
be the same.
Since the MAD program may look more complicated than it is, it may be worthwhile to foJlow it
through in some detail, paying particular attention
to the MAP library subroutines which have been
used. First of all, one should note that the $ ... *$
notation is used in MAD to indicate a BCD specification, i.e., the information within the dollar signs
is regarded to be alphanumeric text, with the * indicating to the processing program the end of a specific
block of text. The subroutine "value" will obtain
the value of a MAP constant from the disk storage.
For example,
GA
= VALUE.($GMSQA*$)
obtains the value of the MAP constant named gmsqa
and stores the number in the storage unit assigned
to the MAD variable gao If a value is not available,
one will be requested in the usual manner.
The subroutine "range" will obtain the range and
the interval of a MAP independent variable if that
specification already exists. If such values had not
been defined previously, they will be requested.
The subroutine "out" will use the values of the
specified MAD array to create the named MAP function, with the last three arguments of the calling
sequence specifying the range and interval of the
function. Since a BCD argument can be included
directly as an element in the argument list only if
it can be expressed in six or fewer characters (including the final asterisk), the vector values statement immediately preceding the call to "out"
has been used to store the necessary argument,
$abs(vdum) *$. (A MAD "vector values" statement
presets and dImensions an array; in this case the array
argl is created with each word containing successive six character groups of BCD information.) The
opposite procedure is accomplished with the subroutine "in," which has the same argument form. The
values of the named MAP function are placed in the
specified MAD array, and the range and interval of
the function determine the values of the last three
arguments. If the function had not been defined previously, values would be requested. For both "in"
and "out" we use the convention that the first tabulated value in the MAP function, i.e., the one corresponding to min, is the first element of the MAD
array, i.e., array (0) . It may be noted that this convention is implied in the subscripting used in the
equations for the c and abs arrays.
473
The subroutine "convol" is the exact equivalent
of the MAP convolve procedure. The argument
should be a BCD list equivalent to the information
that would be requested by the MAP procedure, or
which could be typed, in whole or in part, on the
command line. In this example the program has been
preset with the "short form," all the parameters having been included in the vector arg2. At the opposite
extreme, the following calling sequence is possible:
EXECUTE CONVOI.
($*$)
In this call no parameters have been incluqed in the
argument list and the execution will be equivalent
to typing just "convolve" as a MAP request. All of
the MAP procedures have their counterpart subroutines, the names being formed from the first five letters of the procedure name followed by a 1 suffix.
In addition to the print, plot and convolve already
mentioned, such analyses as integration, Fourier
transform, least square fitting, differentiation, interpolation and others are presently available.
The subroutine "chncom" returns control to the
MAP System. Generally the next response would be
a "COMMAND PLEASE," but if the "execute"
had occurred in a command sequence, the analysis
would simply continue in its prescribed course.
We have, in this sample program, purposely preset
all the parameter names (e.g., the MAP names qa,
qb, etc.) so that it would be exactly analogous to
the previously illustrated command sequence. A user
might find it advantageous, however, if some or all
of the parameter names were not specified until execution time. Of course, when MAP procedure subroutines are involved, any parameter names which
are not required elsewhere in the program may be
left unspecified by giving an empty argument list in
the calling sequence. A more general procedure is
available, however, in a subroutine called "setup"
which will pick up the parameter names presented
at executi()n time on the command line, following
"execute pmossb." In the foregoing MAD program
the MAD variable con was defined to be equal to
the value of the particular MAP constant conb, with
value. ($conb* $). If it were dethe statement con
sirable to leave the MAP parameter unspecified until
execution time, that statement could have been replaced by the following sequence of statements:
=
EXECUTE SETUP. (NAME(O),l)
NAME(l)
$*$
CON = VALUE. (NAME)
=
From the collection of the Computer History Museum (www.computerhistory.org)
474
PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966
At execution, the computer would then look for one
additional word on the command line, and would
take that word to be the name of the MAP variable
whose value should be used for con. As many as 13
parameter names may be supplied at execution time
in this fashion; all of them would be picked up by a
single execution of "setup," with the second argument in the call to "setup" indicating the number of
parameters expected (if the specified number are not
supplied, the computer will give the user an opportunity to retype the list of names).
Additional programming subroutines, also automatically available in the MAP library, are designed
to further assist the programmer in maintaining contact with the other parts of the MAP system and in
achieving a high level of sophistication in the transmission of information in both directions through
the console. Since it is easy to convert a program
written for the "execute" command into an ordinary
MAP command, expansion of the system into particular regions of interest is readily accomplished.
ACCURACY, COMPLEXITY AND TIME
The majority of prospective users of a system
such as MAP are relatively naive on the subject of
accuracy in numerical analysis. It would therefore
be self-defeating to require each user to determine
the most appropriate order of approximation to be
used for each specific problem (though this might
be appropri~e in a course on numerical analysis).
Rather we~ have decided that, at worst, each procedure should be (nearly) exact if three point fitting
is adequate. Thus the user need only remember that
all experimental data and calculated input functions,
with the exception of those intended for least square
fitting, should be tabulated such that a parabolic fit
over three successive points specifies the function as
exactly as is meaningful or required. The various
procedures (e.g., Simpson's integration, five point
differentiation, quadratic interpolation, double precision matrix inversion, etc.) should not lose any of
the precision inherent in the input. Nothing prevents
the more knowledgeable user, of course, from compiling his own approximation to a given procedure,
which he can then use as freely as any of the MAP
procedures.
Since MAP is designed to be used by persons who
are not expert in numerical analysis, it is necessary
that some attempt be made to prevent users from
ascribing an unreasonable degree of accuracy to their
results. The proper interpretation of computer output
will become increasingly important as more people
use computers without understanding the details of
the algorithms· employed. Although we do not have
a solution to the problem in general, we have attempted to provide error messages in all cases where
the mathematical operation is not meaningful (e.g.,
whenever a requested integration range is greater
than the range of the integrand) or liable to give
grossly inaccurate results (e.g., whenever too few
points are available in a function to perform a valid
interpolation). In the case of the least square analysis an estimate of probable errors, based on the size
of the diagonal elements in the inverted matrix and
the agreement between the fitted curve and the input
data, is printed. However, for many procedures there
are no general methods for estimating the errors. In
the last analysis, all users of computers (including
those who write their own programs) must be convinced of the necessity of considering all results with
a critical eye, and for testing new procedures with
test cases or by circular calculation wherever possible. Since all functions generated by MAP are
saved and easily available, the user is readily able
to examine intermediate results for test purposes.
It ought to be obvious that complex problems (or
even simple problems) which require a large amount
of machine time between interactions are not particularly suitable for on-line solution. When the required block of machine time is many times larger
than the quantum of time allotted to each waiting
user, the elapsed time becomes excessive unless one
is doing other work simultaneously. Therefore, in
addition to making recommendations along these
lines in the user's manual, we have attempted to force
certain limitations where they seem appropriate. For
example, the least square fitting procedure will not
accept a problem involving more than 100 data
points and 5 fitting functions, though the program
which is used is capable of handling up to 1000
points and 20 unknowns. The prospect of on-line
initiated batch processing shows promise of being a
useful compromise in many instances. The few necessary programs will be written, therefore, so that
jobs can be initiated in MAP (retaining all possible
user-machine interaction) and the required calculations performed later, utilizing the on-line initiated
batch processing facility that is being developed for
CTSS.
From the collection of the Computer History Museum (www.computerhistory.org)
MAN-MACHINE COMMUNICATION IN ON-LINE MATHEMATICAL ANALYSIS
The question of elapsed time at the console is one
of the most critical tests of the feasibility of an online system. It is also a difficult test to apply since
different users have different states of nervousness
while waiting for output and since the waiting time
faced by any given user depends on the current
efficiency and the load on the overall system. On the
basis of two years' experience we have been able to
ascertain, however, that whenever service is generally
considered to be good by most users of CTSS it is
perfectly adequate for MAP. We feel now, for example, that when the maximum number of users
(upwards of 30) are logged in, the system response
tends to become too slow; with 20 users the computer and the user are roughly equally matched;
with 10 or fewer consoles logged in, the user's
nervousness may have a reversed source, i.e., the
computer may seem to be pushing him.
THE TERMINAL PROBLEM
At present most of the consoles available to the
CTSS system are simply teletypewriters, and the time
spent at the terminal depends significantly on the
volume of input data and printed output. The
graphical figures in this paper were generated on
the MIT Electronics Systems Laboratory display
terminal,21 which provides two users simultaneously
with a CRT display, a light-pen, and analog devices
for input and manipUlation of displayed patterns.
This facility is expensive and requires a direct data
channel to the computer; it is therefore not a feasible
terminal to provide to many users. The Project MAC
display facilities have been augmented with a number
of storage oscilloscopes which will shortly be available at various remote consoles, utilizing switchable
telephone lines.
At the present time, we may make some suggestions as to the desirable features for remote terminals
to be used with a system such as MAP: ( 1) typewriter input and rapid output; (2) rapid and locally
maintained display, in a moderately lighted room,
of curves, points and formatable text, including the
option-or alternative-of hard copy; (3) graphical
input (curve tracing and free hand); (4) a device
for automatic input of large blocks of previously
recorded data (probably punched paper tape). More
sophisticated units, such as those required for display of three-dimensional surfaces, would be desirable, but could be available only at a few central
locations.
475
APPLICATIONS IN RESEARCH AND
TEACHING
In the Introduction we mentioned that 30 to 50
mathematical procedures would be desirable in a
system of general usefulness. Actually, we have been
using MAP effectively in its present and lesser states
of development even though only 14 procedures have
been implemented so far. It has been of value in
analyzing data from a wide variety of experiments
and in various theoretical calculations.
The system has also been used in the teaching of
three lecture courses, two graduate and one undergraduate, all concerned with the physics of solids,
and in a laboratory course in solid state physics. In
these trial subjects we have used MAP to allow the
students, working in pairs, to do computational problems related to the experiments or to the lecture
material. Through a variety of problems we have
tried to use the computer to deepen their understanding of the basic subjects, rather than as a
separate topic itself. In more definite terms, we may
list four specific points:
1. Study of the form of complex analytical
and numerical solutions.
2. Study of the effect of variation of the
parameters in a physical situation.
3. Introduction to and experience with some
of the mathematical procedures important .
to the subject.
4. Development of a sense of familiarity with
the subject through working with the equations and numbers in which it is expressed.
Since the majority of the students had no previous
computer experience it would have been impossible
to use the computer at all, except for demonstrative
purposes, without a system such as MAP. Even an
experienced programmer would have required the
equivalent of many days of class time to obtain a
working program for some of the problems which
were solved. In practice we have found that the
students required only a couple of hours of attention
during their first sessions at the console, and thereafter were able to work quite independently.
The fact that a relatively small number of procedures is yet available is more seriously felt in
teaching than in research applications. Even if nothing more were available, for example, than the
equation interpreter and the Fourier transform pro-
From the collection of the Computer History Museum (www.computerhistory.org)
476
PROCEEDINGS-FALL JOINT COMPUTER CONFERENCE, 1966
cedure, many experimenters would find the system
useful. Even a single course, however, tends to require a greater generality. Thus, though we have
been able to treat such class problems as the forced
motion of a particle in an arbitrary potential, the
relationship between the real and momentum space
wave functions, the relationships between expectation values, charge density and scattering factor,
and the effect of various parameter combinations in
the Kronig-Penney model for periodic potentials, we
have had to avoid any topics in the courses which
would have required matrix operations, differential
equations and functions of more than one variable.
These latter procedures, plus the solution of integral
equations, we intend to install in the near future.
It should also be mentioned that all of the research
and teaching applications were actually implemented
without any display facilities. As has been previously
discussed, such facilities are now available (and are
being further extended and tested) and will be a
great advantage to subsequent users.
In closing we should mention that insofar as teaching is concerned, we have barely touched the surface.
One can readily visualize, for example, the inclusion
of particular problem-solving and teaching programs.
As examples of such programs we might consider
the nuclear reactor design programs 6 mentioned in
the introduction and the "Socratic" teaching system
which has been discussed by J. A. Swets and W.
Feurzeig. 18 In each case the combination of general
mathematical procedures with specific programs
aimed at particular subjects should provide powerful
tools which will have a profound influence on teaching concepts.
ACKNOWLEDGMENTS
The MAP System would not have been possible
without the existence of the MIT Compatible TimeSharing System which is due primarily to the staffs
of the MIT Computation Center and Project MAC.
Virtually all of the applications of the system, in both
research and teaching, were accomplished at the
Center. We are indebted to the authors of various
programs which were utilized in the system; in particular, we would like to thank Dr. Thomas G.
Stockham, Jr., of the MIT Lincoln Laboratory for
his assistance in implementing the graphical displays.
It is a pleasure, also, to thank Professor B. L. Averbach, of the MIT Metallurgy Department, for his
encouragement in the development of MAP, particularly in its application to teaching.
REFERENCES
1. R. M. Fano, "The MAC System: The Computer Utility Approach,"IEEE Spectrum, vol. 2,
pp. 56-64 (Jan. 1965).
2. P. A. Crisman (Ed.), The Compatible TimeSharing System: A Programmer's Guide, 2d ed., MIT
Press, Cambridge, Mass., 1965.
3. D. Roos, "An Integrated Computer System for
Engineering Problem Solving," Proceedings of the
Fall Joint Computer Conference, vol. 27, Spartan
Books, Washington, D.C., 1965.
4. I. R. Whiteman, "New Computer Languages,"
Int. Sci. and Tech., Apr. 1966, pp. 62-68.
5. M. L. Dertouzos and J. F. Reintjes, "Computer-Aided Electronic Circuit Design," Project
MAC Progress Report II, July 1964-65, MIT, 1966.
6. K. Hansen and I. C. Pyle, "TREC: A TimeSharing Reactor Codes System," ANS Trans., vol. 7,
p. 2 (Nov. 1964).
7. M. Greenberger et aI, "On-Line Computation
And Simulation: The OPS-3 System," MIT Press,
Cambridge, Mass., 1965.
8. R. Kaplow, J. W. Brackett and S. Strong,
"MAP, A System for On-line Mathematical Analysis:
Description of the Language and User Manual,"
Technical Report MAC-TR-24, MIT, 1966.
9. J. C. Shaw, "JOSS: A Designer's View of an
Experimental On-Line Computing System," Proceedings of the Fall Joint Computer Conference, vol. 26,
Spartan Books, Washington, D.C. 1964, pp. 455-64.
10. G. J. Culler and R. W. Huff, "Solution of
Nonlinear Integral Equations Using On-Line Computer Control," Proceedings of The Spring Joint
Computer Conference, vol. 21, Spartan Books,
Washington, D.C., 1962, pp. 129-38.
11. - - , and B. D. Fried, "An On-Line Computing Center for Scientific Problems," Thompson
Ramo Wooldridge Computer Division Report (now
Bunker-Ramo Corp.), Canoga Park, Calif., June
1963.
12. - - , "The TRW Two-Station, On-Line
Scientific Computer: General Description," Computer Augmentation of Human Reasoning, Spartan
Books, Washington, D.C., 1965.
13. J. Weizenbaum, "Eliza A Computer Program for the Study of Natural Language Communication Between Man and Machine," Comm.
ACM, vol. 9, pp. 36-45 (Jan. 1966).
14. D. T. Ross and C. G. Feldman, "ComputerAided Design," Project MAC Progress Report II,
July 1964-65, MIT, 1966.
15. J. Katzenelson, "AED-NET: Simulator for
Nonlinear Networks," Proceedings of the IEEE (to
be published in 1966).
From the collection of the Computer History Museum (www.computerhistory.org)
MAN-MACHINE COMMUNICATION IN ON-LINE MATHEMATICAL ANALYSIS
16. M. M. Kessler, "The M.I.T. Technical Information Project," Physics Today, Mar. 1965, p.28.
17. C. Levinthal, "Molecular Model Building by
Computer," Sci. Am., June 1966, p. 42.
18. J. A. Swets and W. Feurzeig, "ComputerAided Instruction," Science, vol. 150, p. 572 (Oct.
29, 1965).
477
19. J. C. R. Licklider, "Man-Computer Partnership," Int. Sci. and Tech., May 1965, p. 18.
20. The Michigan Algorithm Decoder (MAD)
Manual, University of Michigan Computation Center, Ann Arbor, Mich., Oct. 1965 and previous eds.
21. J. E. Ward, "Display Systems Research,"
Project MAC Report: Progress to July 1964, MIT,
1965.
From the collection of the Computer History Museum (www.computerhistory.org)
From the collection of the Computer History Museum (www.computerhistory.org)