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)
© Copyright 2026 Paperzz