AESOP: A PROTOTYPE FOR O'N-LiNE USER CONTROL OF ORGANIZATIO'NAL DATA STORAGE, RETRIEVAL AND PROCESSING Edward Bennett, Edward C. Haines, and John K. Summers The MITRE Corporation Bedford, Mass. play-13 display console with a photoelectric light pencil, an on-line typewriter, and a StrombergCarlson 3070 medium-speed printer. The AESOP system is designed to take advantage of the range of capabilities implied by this central processor and the user station equipment. However, the design philosophy is tailored to the general characteristics of management and command users rather than to specific characteristics of either the equipment or a specific organizational job. The following description of the prototype, and of the conceptual foundations underlying the design, deals mainly with those aspects of the system which emphasize the user's on-line control capability. The description is divided into two sections, the first dealing with the long-range conceptual objectives which influence the design of the AESOP prototype and the second dealing· with the system characteristics as they are experienced by the user of the currently operational All Model. OVERVIEW AESOP is an experimental on-line information control system realized in the Systems Design Laboratory of The MITRE Corporation. It serves as a prototype for a class of management or command information systems capabJe of giving the members of the using organization as much on-line control over system performance as possible. It is a CRT display-oriented system in that the user experiences the information system primarily through his CRT displays and exercises his control through his light pencil. This control is not limited to that level of the organization responsible for programming the system, but applies upward to the highest level of executive personnel interested in obtaining direct access to the system. The current version of the AESOP prototype operates on an IBM 7030 (Stretch) computer (65K memory with 64-bit words) with a 353 disk storage unit holding two million words. 1 Each of the four user stations consists of an on-line Data-Dis- CONCEPTUAL OBJECTIVES *Software characteristics appear in the Appendix. The program is configured to permit continuous modification of system performance, both on-line and off-line, with minimum recoding requirements. As a result, the models of the system change regularly and the model operating at the time of the FJCC meeting may contain capabilities other than those realized and operating at the time this report was prepared. The flexibility of an on-line information processing system often determines not only its ability to respond to new and changing demands upon it, 435 From the collection of the Computer History Museum (www.computerhistory.org) 436 PROCEEDINGS - FALL JOINT COMPUTER CONFERENCE, but may, in fact, also determine how extensively the system will be used outside of the limited fraternity of professional scientists and engineers involved in its development and management. System flexibility is particularly critical when the on-line capability in question is intended to be more than a multiaccess, - remote station computer sharing facility. When operating in an organizational context, the users of an on-line system need to do more than develop, store and execute their own job-oriented programs. They must also share the common data base, common data retrieval and updating routines, and the various on-line processing procedures designed to use this common data base for various organizational purposes. Further, in the case of an organizational system, flexibility involves not only the system's ability to be changed off-line to meet changing on-line requirements, but also its ability to be changed online to meet the constantly changing needs and time constraints of its various users. In addition, an organization-wide system must interface with users of widely varying background, experience, needs, and position. A system tailored only to the needs of junior users is no better than one tailored only to the needs of the executive suite. The fixed information-processing procedures usually employed at the lower levels of an organization, for financial accounting, billing, payroll, and so forth, may leave little room for creativity or imagination on the part of on-line users of the system. In most cases, in fact, there is little need for such creativity. On the other' hand, the hardest task masters, with the greatest demand for on-line control, are the military or industrial planners, ranging in organizational level and function, but working collectively on the same total data base. Especially at the higher levels of an organization, where the organization'S data base is used for global planning and decision, there i~ a need for creative approaches to information processing. The senior executive wqo might use an on-line information system for situation monitoring, resource allocation planning, or for insight into the timing of executive decisions, benefits from as much freedom to mold and configure the performance of his information system as is possible within the limits of his job. The concept of on-line information control implies the ability of such users of the system to change the performance of the system to meet their own changing needs or wishes. With adequate con- 1965 trol, they can experiment with the display of alternative data formats or configurations, with alternative sequences of data retrieval, with alternative formulae for summarizing, processing, or analyzing data. The on-line user needs to be able to express his desires by communicating with the system is an easily usable language. The language itself must have a syntax and vocabulary tailored to increase the executive user's interest in the system, his creativity in using it, and his flexibility and facility in accomplishing any changes he wishes to make. This implies that the language should have a syntax and vocabulary complex enough to permit a flexible range of alternatives. However, the system should make the on-line use of that language little more than a matter of the on-line user sensing, choosing and pointing out his communication desires. Keeping track of well-formed syntax and vocabulary constraints and implications need not be the on-line user's problem. An advantage of on-line control for information storage is in the generation and editing of personal files. Such personal files, from the user's point of view, are not files as they exist in fact within the machine structure. The user's concept of his file is more likely conditioned by his past experience with manual or mechanical files; and his impression of the files )Vi thin a computer system can be, therefore, mainly a matter of how he experiences these files at his own input-output station, how he generates or edits his file, and how he retrieves data from such files. For an on-line user, this experience can be influenced by the way in which data are reported to him by the system, through his own display device, in his own work environment. He can come to "understand" a file as simply the set of possible reports derived from the file, the lists, tables, and matrices, as they appear before him. This implies that, no matter what logic is applied to the management of the data base inside the machine, the surface appearance of the data base must be under the user's on-line control. He should be able to set up the file display, the object and property names, the formats of these files, including sequence and arrangement of data, as he desires. He should be able to generate, store and revise the structure of his displays, on-line, in much the same fashion as he generates, revises and stores any From the collection of the Computer History Museum (www.computerhistory.org) AESOP: PROTOTYPE FOR ON-LINE USER CONTROL other portion of his personal data base, and using the same general on-line control language. In addition to the user's need for on-line control over the generation, retrieval, and display characteristics of his data base, he needs control over the generation, revision, naming and execution of his job-oriented processing routines, as well as the storage and retrieval of such processing routines as part of his data base. He needs to be able to manipulate logical and arithmetic operators, planning factors and parameters, models and projections of relevant job-oriented operations. The system executive program must carry the burden. of making his job-oriented generation of algorithms little more than a matter of looking at his display, choosing among acceptable alternatives and pointing to express his desires. The need for on-line control is not necessarily Figure 437 limited to any level of organization. On the other hand, senior executives should not have to use this control to create data of low aggregation or detailed procedures normally the responsibility of system analysts. However, if an executive so desires, he should be able to use his control to access the system at the lower organizational levels when he wants to. THE AESOP (MODEL A/I) PROTOTYPE The AESOP A/I prototype in the form described following has been operational since August 1965. From a conceptual standpoint. the system contains two major features. The first is an information retrieval capability which can be operated entirely by means of a CRT display and a light pencil as shown in Fig. 1. The second is a facility to 1. The Data-Display-13 Console with light pencil on the right and notebook display on the CRT. From the collection of the Computer History Museum (www.computerhistory.org) 438 PROCEEDINGS - FALL JOINT COMPUTER CONFERENCE, construct and operate on-line logical and mathematical procedures, again using only a CRT display and a light pencil. Since an understanding of the user's view of this data base is essential to an understanding of many of the other system capabilities to be described, it will be presented first. It will be followed by a description of the communication tree which the user uses to "talk to" the system. The final capability described will be the on-line procedure generation capability. PAGE UNCLASSIFIED ~I SECTION 81 AIRFIELDS LN NAME ~~I ABADAN - - - - - - - -- --- ~P.J2 A IRF IELD-ORDNANCE AS OF 2~ 168ez THE USERS' NOTEBOOK The users of the system experience the total data base through tabular displays on their DD-13 cathode ray tubes. Any tabular display can be reproduced in hard copy, on call, on the S-C 3070 medium-speed printer (see Fig. 2). The hard copy is always a precise reproduction of the CRT tabular display. Each display is a section of a page of a file in the user's notebook. Each display consists of 30 OF. 81 OF 13 STATUS COUNTRY LAT LONG IRAN 3U2N 4814E REF-NO £lEV MA INTCE --_ .. --_ . --- ... -------- .. --------------- .. --- _... ----_ .. ---- A HWAlWE S T IRAN 3119N 4838E II 51 ~~3 A HWAlNOR TH IRAN 3121N 4841E 41 ~~4 BATMAN TURKEY 3755N 4118E 1749 1'11'15 DE·lFUL IRAN 3223N 4825E I'I~~ 5 •• 5731 HAMADAN IRAN 3452N 4832E 81'17 I SF AHAN IRAN 3237N I'II'I~ JASK IRAN 2539N 5141E 5749E ~~9 KERMAN IRAN 3.15N 5658E 1'111 KHURAMAB.AD 1 2 MIRJAWA q 13 QOM IRAN 3326N 4818E ~ IRAN 2911N 6125E IRAN 3441N 5nlE 358. 1'114 SH I·RAl IRAN 2932N 5235E 4938 1'115 1'116 SilL TANABAD IRAN IRAN 34117N 4944E 6154E 1'111'1 KARMAN 1.AH lOAN 1965 5238 4331 2928N 375. UNCLAS SiF lED a Figure 2. Stromberg-Carlson 3070 print copy (a) of CRT display (b). lines numbered consecutively 1-30, 31-60, and so forth. There are as many· pages in a file as there are such sets of 30 lines. Each display is 64 characters wide. These 64 characters. are divided into columns. The number of columns depends upon how many characters constitute a column and how much space is desired between columns. A set of columns is< referred to as a section of a file. There are as many sections as there are sets of columns. The user's selection of a specific page and section of a file specifies a subset of lines and columns. Customarily, but not necessarily, lines identify objects, columns identify properties. The user's notebook contains as many files as are required to hold the organization's data base. It also contains an arbitrary number of files with completely blank pages (see Fig. 3). These blank pages serve as the environment within the notebook in which the individual user builds his private data base and personal report formats. In such cases, the resulting personal files and reports, developed either on-line or off, are retained in the large computerbased notebook. In AESOP, the distinction between a public file and a private one, a temporary file and a permanent file, a file and a report, becomes somewhat artificial. Procedural rules establish that a public file should not be revised ty unauthorized members of the .organization. Working files . are simply. private files that the user intends to erase at some later time, but which need not be destroyed if he changes his . mind. Private files are generated, either online or off, from outside the existing data base or by "copy" operations from other files, public or From the collection of the Computer History Museum (www.computerhistory.org) AESOP: PROTOTYPE FOR ON-LINE USER CONTROL Figure 3-~ 439 CRT Display of an empty notebook page/section. Light pencil commands appear at the upper and lower right. private. Both files and reports, from the user's viewpoint, are simply CRT tabular notebook displays or their hard-copy reproductions. The user of the system can browse through a file by firing his light pencil on either a page;,.turning, a section-turning, or a line-display command in the lower right~hand corner of the tabular display. He can turn pages and sections both forward and backward to scan all of the objects and properties of the file. He can also light pencil a specific line number or name, after having light· penciled a request for the display of a line, and have all of the columns of data and the column headings displayed for him (see Fig. 4). The format of each page and section of each file, which in effect is the format of a specific tabular CRT display, is under theon-line control of the system users. Among the parameters of the display open to on-line control are the following: ( a) whether or not the line (object) names are to be displayed; (b) the number of columns (properties) to be displayed in each section of the file; (c) the specific columns (properties) that are to be displayed and their sequence; ( d) the location and the size of the column in which each property is to be displayed; (e) the choice of right, left or decimal justification of the data for any property. Format is determined by data contained in one of the standard notebook files in exactly the same fashion as any other portion of the data base. In this "display adaptation" the names of all of the other files of the system are recorded as lines or objects. The columns contain all of the format parameters From the collection of the Computer History Museum (www.computerhistory.org) 440 PROCEEDINGS - FALL JOINT COMPUTER CONFERENCE, 1965 UNCL.ASSIrIED AIRrIEL.DS JASIC COUNTRY L.AT L.ONG EL.EV REr- NO MAINTCE NAVAJOI NAVAJD2 NAVAJD~ CONTROL. AIDS L.IGHTSI L.IGHTS2 IRAN 25~9N 57"'9E TOWER SEO-rL.H L.IGHTS~ L.IGHTS'" L.I GHTS5 AP-NO AP- AREA AP-SURr AP-WT AP-USABL.E HS-NO HS-AREA HS-SURr HS-WT HS-USABL.E WX TIME: DATE: REMARKS 1 RtHARKS2 RWYS PRIHARY StCOARY CAP RNWAY AVGASCAP JeT.UCAP 8OHII-CAP ROCK-CAP UL. -ORY-WX DIRT C12'" 15 2 A""" CL.AY 610O AMMO-CAP 91-096 100- I ~0 11S-1A5 JP'" JPS '''''11 7S" Sill 2S11 AP- I Ii HVAR rrAR AIM9B AGM12B S"CAL. 2"1'11'1 UNITt UNJT2 TABUL.AR TREE """'0i 9""0i ellUi S"" 511i '''11 56 Iii" Sill 6U t"""" 2~"" A7ABL.0 UNJT~ UNITA UNIT5 AL.TERNATE AL.TER-L.OC ct~" NEXT PAGE PREY PAGE NEXT SECT 7" OPEN 16"" 26JUN PREY SECT RESTORt I rAIR DISP LINE Cl~" 152"" 19"""" 8"""" 115915 18e UNCL.ASSlf"U:O Figure 4. CRT Display of all column names and values for a specific line (name JASK) of a file (name AIRFIELDS) selected by use of the display line command (DISP LINE). open to on-line control. Values of those parameters are interpreted by the system to determine the specific formats displayed to the user. Thus, when this "display adaptation" file is changed or updated on-line, in the same fashion as any other file in the system, there is an immediate resulting alteration of the display formats. (Compare Fig. 5 with Fig. I). The on-line ability to reformat the notebook display provides a report generation capability. When a particular report is desired, one or more notebook pages are formatted to reflect the desired report structure. Data can then be copied or generated into that portion of the notebook and a hard copy can be made of the resulting display. As a final step, the display can be returned to its original form. COMMUNICATION TREE Communication with the system for the purpose of data retrieval, browsing through the notebook, data generation or format control is mainly accomplished by means of the light pencil and the display of the communication tree (see Fig. 6). The communication tree not only handles all of the problems of syntax and vocabulary necessary to access the data base, but it also shows the user all of the linguistic implications down each of the branches of the tree. In addition, at the top of the display as a message is being constructed, it shows him all of his previously selected options to serve as a shortterm memory aid. The branching points heading down the tree indicate legitimate options. The user indicates his de- From the collection of the Computer History Museum (www.computerhistory.org) 441 AESOP: PROTOTYPE FOR ON-LINE USER CONTROL UNCLAlllrlCD 'AGt ,. seCTlOH ,. AIRrICLDI LH MAH[ H1 ABA DAN H2 H3 H" 85 86 '" "S 89 '" '" "2 ItS ""5" "6 AHWAIW[ST AHWAINORTH BATHAN D[ZrUL HAHADAN IsrAHAN JASK KERHAN KERHANSHAH KHURAHABAO HIRJAWA OOH SHIRAZ SULTANABAO ZAHIOAN RWYS 3 1 2 "3 2 " t 2 1 5 2 " PRIHARY opeN rAIR GOOD OP[N GOOD POOR OPEN rAIR OPEN POOR OPEN POOR OPEN GOOD OPEN LAT LONe 3'22N 3119N 3121N 3755N 3223N 3"52N 3237N 2539N 3.t5N 3"t9N 3326N 29.tN 3""tN 2932N 3"'7N 2928N "SU[ "S3S[ "S"'[ ""S[ "S25[ "S32[ 5''''E 5749E 5658E "n7E "StSE 6t25E 5'5tE 5235E "9""E 6'5"E or 'f or •• [Ltv COUNTRY " IRAN IRAN IRAN TURK[Y IRAN IRAN IRAN IRAN IRAN IRAN IRAN IRAN IRAN IRAN IRAN IRAN 5' .at 1749 511 5131 5238 "331 375. 35 •• "938 • TA8UL.Aa • TUC • NEXT PAGC .• PRty PAGE • NEXT seCT • PRn seCT • RtSTOII£ • DIll' L I . ""CLA•• lrleD . On-line reformatted display of page 1, 1 of the AIRFIELDS file, originally formatted as in Figure 2. Columns have been rearranged, new columns added, spacing altered and right-hand justification of the COUNTRY column has been substituted. sires by pointing the light pencil at the desired option currently displayed at the top of the tree. Each light pencil action (1) generates a display :record of the part of the message constructed to date, and (2) moves the tree upward to indicate the next legitimate choice to be made or (3) displays a list of possible options to be taken at that particular point in the construction of his communication. Using the tree, the user need have no prior knowledge of either the current system index, vocabulary, or syntax, and he need not keep a record of the communication he is in the process of constructing. For example, as in Figs. 7 and 8, to construct a call on the file, the user first requests the communication tree by light penciling the word TREE in the upper right~hand portion of his display. He then light pencils "GET" at the top of the tree. This action writes GET at the top of the display and moves FILENAME to the top of the tree (Fig. 7a). Light penciling FILENAME then shifts the display to supply a list of all the names of the files currently in the system (Fig. 7b). He points his light pencil at the file he wants, such as AIRFIELDS, which (1) puts GET AIRFIELDS at the top of the display, and (2) returns the communication tree display with the next From the collection of the Computer History Museum (www.computerhistory.org) 442 PROCEEDINGS - Figure 6. FALL JOINT COMPUTER CONFERENCE, The basic communication tree with all wellformed control statements indicated by downward branches. valid option displayed at the top of the tree (Fig. 7c). If he chooses OBJECTNAME, all of the current object names in the AIRFIELDS file are displayed, enabling him to choose the desired object by light penciling it (Fig. 7d). The object name, for example KARMAN, is then transferred to the top of the dis~1""<1 P~uJ 1965 By the alternate selection of appropriate column names and the use of the alphanumeric matrix and accumulator, the user can modify his data base on-line (see Figs. 8b, c, d, and e). The result appears as in line 10 of Fig. 8f (see line 10 of Fig. 2 for prior file appearance) . ...... ...1 -tho r>n..",..",., .... ;" ... +.;n.... +roo C'hnu7C' +1,0 .... oV+ ,,, ... 11rl u~'"" \..1...1.'-" ,""VJ..1..l..J..I..I.U.l..I..I..","".l.V.I...l. \..J.. ..... '" ..:J.I..I.V l'Y "'.I..I.V ..L.&.V~:lr." 'Y L4-..L"'~ LJ options (Fig. 7e). To generate a string of characters for inclusion in the notebook, a matrix of alphanumeric characters and an accumulator are displayed simultaneously. The user selects characters by pointing the light pencil at them in sequence. His choices are recorded in the accumulator and errors can be canceled by a suitable light pencil command. When the appropriate character string has been generated, the command PROCESS moves the display to the next option (Figs. 7f and 8a). played, and' executed by the user who need know nothing more about the communication language than is necessary to point out his desires. By using the tree to review the catalog of currently available file names, object names within files, and property names within files, the user is able to browse through the data structure as well as to familiarize himself with the range of options and implications available to him. The sophisticated user is not restricted to this mode of communication if his knowledge of the From the collection of the Computer History Museum (www.computerhistory.org) AESOP: PROTOTYPE FOR ON-LINE USER CONTROL a 443 c b f Figure 7. Steps in the on-line construction of a file modification command as described in detail in the text. system exceeds that implied by the look, choose, and point philosophy. Users who know the syntax and vocabulary of the system may directly compose on the on-line typewriter any message that can be generated by means. of the light pencil and communication tree. In fact, at any time in the evolution of the AESOP prototype, the typewriter user has a more extensive language, portions of which, in sequence, are transferred to the tree as this proves useful. Currently, requests to print hard-copy, to erase or to transfer portions of the notebook into other portions are accomplished only by means of the typewriter. System error messages are primarily provided on the typewriter. PROCEDURE GENERATION The user can also process the data of the system, either by executing or modifying established routines or by constructing new routines using his light pencil and CRT display. In order to do this, he calls up an on-line algorithm construction display From the collection of the Computer History Museum (www.computerhistory.org) 444 PROCEEDINGS - FALL JOINT COMPUTER CONFERENCE, a b d e Figure 8. 1965 c f Figure 7 continued. called OAK-TREET. The display appears as a tree with one branch displaying commands which can be light penciled to build and execute a program. A second branch displays some basic classes of operators and operands or previously established functions to be used as parts of this program. A workspace within which to build a tree representation of the desired procedure exists as another branch (Fig. 9a). Each time a user light pencils a command, it appears in the upper right-hand corner of the display (Fig. 9b). When he light pencils a class of operators, the specific operators within that class are displayed on a separate branch of the tree (Fig. 9c). When he light pencils one of these specific operators, it also appears in the upper right-hand corner of the display (Fig. 9d). Once a command and an operator are so displayed, he can then light pencil any portion of a tree in the workspace and the command will be executed, using the operator in question, at that specific location in the workspace (Fig. ge). In this general fashion, the user builds, From the collection of the Computer History Museum (www.computerhistory.org) AESOP: PROTOTYPE FOR ON-LINE USER CONTROL e Figure 9. f Steps in the on-line construction of a primitive procedure to mUltiply 4 by 5. From the collection of the Computer History Museum (www.computerhistory.org) 445 446 PROCEEDINGS - FALL JOINT COMPUTER CONFERENCE, stores, retrieves, modifies, links, and in other ways develops a catalog of logical and mathematical expressions for use with his data base. Numbers are generated by means of a special display of a tree of numerical characters which can be added in an accumulator by light pencil selection. These numerical strings are then transferred to the upper right-hand accumulator in the OAKTREET display for further use. The OAK-TREET capability operates in two modes C. The/first displays the commands, operators and workspace simultaneously. This mode may crowd the workspace but the display logic drops portions of the workspace tree off the display face, leaving branch markers to indicate what parts are gone whenever the workspace density exceeds a critical value. The second mode is used for inspection. It turns the entire display face over to the workspace tree. In this mode, any point on the construction can be brought to the top of the display by means of the light pencil in order to expose more of the details of the tree below that point. 1965 As an example of the use of the OAK-TREET feature consider Figs. 10, 11· and 12. A user interested in .a gross estimate of fuel consumption as a function of distance for a high performance aircraft in level flight might build the following planning procedure. Using the command REPLACE and a previously stored subroutine with the name JT1, he puts this routine into the workspace by pointing the/ light pencil at the node immediately below the/ word WORKSPACE (Fig. lOa). The previously defined routine JT1 ., is then displayed at that point in the workspace. In this example, the routine is a gross ca1culation of fuel consumption and is called POLLBS. It involves multiplying the fuel consumption rate by the ratio of the distance flown over the average speed of the aircraft. The user may substitute parameters into this procedure (see Fig. lOb) and then call for it to be executed by pointing the light pencil at the command EVALUATE. The result of the calculation will be printed by the on-line typewriter. Figure 10. On-line retrieval of aprestored routine and insertion of parameters. To set up a more complex expression for evaluation, the user· now changes the distance flown to the variable C multiplied by 100. He does this by replacing 800 with the arithmetic operator X (multiply), then setting the branches to C and the number 100. Both are done with the command REPLACE (see Fig. 11 a). The user now temporarily stores this modified routine under the arbitrary name GUS. He then uses the workspace to establish a new variable D set to the value of the routine stored under the name GUS. He does this by putting the logical operator = immediately under the word WORKSPACE (thereby erasing everything else) and then adding under it the variable D and the expression stored under the name GUS (see Fig. lIb). This new expression is now stored temporarily under the name JOE. A conditional expression is then built in the workspace by putting the logical operator From the collection of the Computer History Museum (www.computerhistory.org) AESOP: PROTOTYPE FOR ON-LINE USER CONTROL a 447 b Figure 11. On-line modification of a procedure, storage and use as a subprocedure. IF-THEN-ELSE immediately_ below the word WORKSPACE. The user then introduces the logical operator TYPE on both terminal branches of the conditional to indicate that both results of the conditional test should be typedby the on-line typewriter. He then adds the variable D to the true branch, and the same'plus a marker of four dots to the false branch (see Fig. 12a). The conditional test is set as a comparison to be made by the operator LEQ meaning less than or equal to. The comparison is to be made between the value of D and the number 400 (see Fig. 12b). This portion of the routine is now stored under an· arbitrary name ED and a next routine is constructed in order to execute the previously defined routines. This next routine involves the use of the operator DO. It is used to first find the value of D and then perform the conditional test. This is accomplished by putting the routine previously stored under the name JOE as a first branch for DO and then using the command REPLACE, inserting the routine previously stored under name ED (see Fig. 12c). This DO procedure is now stored under the name SAM and a next. higher order routine is built. This next routine involves the operator FOR which is used to run through a sequence of values for a given variable. The variable in this case is the C which was previously used as the variable for distance in the fuel calculation. C will be set to values from 1 to 10. The previously defined DO expression, stored under the name SAM, is then added to be evaluated for these values of the variable C (see Fig. 12d). The system can be shifted to the second or inspection mode and the complete routine can be expanded for viewing of any part of the tree (see· Fig. 12e). The light pencil is used to bring any portion of the tree to the top center (see Fig. 12f). When the command.EVALUATE.is executed, the typewriter prints the results of the fuel calculation from 100 to 1000 miles in increments of 100 miles followed by the indication of four dots when the fuel requirement exceeds 400. The total routine can now be stored as a permanent p::trt of the data base and later used in its entirety. The routine can also be returned to the workspace for modification or to detach subroutines for other purposes. As long as the total routine remains filed in the data base, it is '. available for inspection and application on-line. As complex or extensive routines are constructed, it beco:nes increasingly undesirable to display the total structure to the operational user of the routine. In such ca,ses only the name of the routine and the names of the insertable parameters need be displayed in the OAK~TREET workspace. The appropriate values for these parameters can then be inserted by the user and the named routine evaluated on call. (See Figure 13 for example.) In this example a routine called STATUS requires the insertion of a destination code (AREA), the type of aircraft(AC-TYPE), and number of aircraft (NO-AC) to be flown to that destination, and the number of originating airfields to be checked for the availability of these aircraft (NO-AF). The routine From the collection of the Computer History Museum (www.computerhistory.org) 448 PROCEEDINGS - FALL JOINT COMPUTER CONFERENCE, 1965 a e d f Figure 12. Steps in the on-line construction of a complex procedure using previously on-line defi~ed and stored subprocedures. Expansion for inspection in (e) and (f). See text for a detailed description nf th .. nrnf'..i!nr.. - .............. - t"' ... - - - - -... - . then locates up to this number of originating airfields with sufficient aircraft available, in order of increasing distance from the destination. It lists the airfields, the number of aircraft available, the organizational designation of the aircraft, the distance and time required to reach the destination. The detailed structure of user routines such as STATUS is examined and debugged in another display environment called DEBUG. (See Fig. 14.) In the DEBUG function, the structure of the routine is displayed as the second leftmost limb of a tree along with a set of commands which permit the programmer to examine any selected portion of the routine in question and then modify and redefine it. A routine is brought to the top of the second leftmost limb of the DEBUG tree by an on-line typewriter command DEBUG (name). Any subtree of that routine is then moved to the top of that limb by pointing the light pencil at the node on top of the substructure in question. The structure can From the collection of the Computer History Museum (www.computerhistory.org) AESOP: PROTOTYPE FOR ON-LINE USER CONTROL a 449 b ')FH:.Jl 11 F8(~ ~':71ITrs flISTM:CE '120 f!'! l\nAOM: 13 F86 ~'dfITr-S OIST,'UlCF. 320 ~,,1 Tt:lr ./0. 'IP! c Figure 13. The use of OAK-TREET for parameter insertion in fixed procedures. also be displayed, in whole or in part, by itself, in either a multinode or single node state. By light pencil, using the command·OAK, the substructure displayed on the second leftmost branch of the DEBUG tree is moved into the workspace of OAK-TREET. In this position· it can be modified using the standard OAK-TREET capabilities. The modified structure is then moved back to the second leftmost limb of the DEBUG environment by light penciling the OAK-TREET command KEYBOARD. The modified structure replaces the previous structure in the system by light penciling the redefinition command DEFTR. The revised and redefined function can then be evaluated using the command TEST. This procedure for on-line program development and revision applies to all of the user and system functions constructed in and interpreted by the AESOP list processor, TREET (see the Appendix for details). For example, it is possible to DEBUG (FACTORIAL) as in Fig. 14(a), (b), (c) and (d) or DEBUG (STATUS) as in (e) and (f). It is also possible, for example, to DEBUG (OAK) or DEBUG (DEBUG). In previous examples, data used in the execution of a user's routine were inserted by means of the user's light pencil. The results of executing the routine were printed by the on-line typewriter. However, it is also possible to have the routine call for data directly out of the computer-based notebook and then place the results of its execution in the notebook. In effect, the TREET processor can be considered one of the on-line users of the notebook-based file. The TREET processor retrieves data from the notebook using any of the system retrieval capabilities available to the other on-line users of the notebook. It stores data in the notebook using· the same range of storage capabilities available to human users of the system. It uses the same communication language. For example, in Fig. 15, the file BLANK is organized as a scratchpad for keeping track of the input and output data derived from the evaluation of the STATUS 1 routine. The routine STATUS 1 differs from STATUS (see Fig. 13) mainly in its use of the notebook for its data base. Working headings are established in BLANK for COLI through COL4 to fix the column locations for input to STATUS 1. Column headings are established in From the collection of the Computer History Museum (www.computerhistory.org) 450 PROCEEDINGS - FALL JOINT COMPUTER CONFERENCE, 1965 1" 'Vj TA~ ·l~f\~~ A~l\1\ T " 1~ /\t\ UYT~D "!\ A " ~ uCI~ ~ i"" "~~ I 'rnT a b c d e f Figure 14. Steps in the generation or modification of an interpreted system or user procedure. See text for details. From the collection of the Computer History Museum (www.computerhistory.org) AESOP: PROTOTYPE FOR ON-LINE USER CONTROL b ~uS1 CO'I',(HOS RrPLACr CLr S ARlTH2 [l T TACTi CAL 1 rVALuur LOGIC2 OAMAGr [' 1 J K[y'OA~O HAMtS2 OAMAGt, [ 1 J STo~r NUM.t~' STATUS [ AOD-~T \ [~AI[ 1 VA~IA'~ts ACr WOR"r ST nuS! ~ 'Ou~Ct-LH onT-LH 1 STATUII 1 0 ' 1 Y os c d e Figure 15. Steps in the use of the notebook for data input to and data output from user procedures. See text for details. From the collection of the Computer History Museum (www.computerhistory.org) 451 452 PROCEEDINGS - FALL JOINT COMPUTER CONFERENCE, then select those for transfer into permanent organization files and/or reports. COL6 through COL10 for recording outputs from STATUS 1. STATUS 1 is constructed to include a data call on the file BLANK in order to list input data from COLI through COL4, as shown in Fig. 15 ( a). It also includes a data change order to insert output data in COL6 through COL10 as in Fig. 15 (b) . Source and destination line numbers are supplied by the on-line user in OAK-TREET, as in Fig. 15 ( c ). Input data qre then either generated on-line or transferred from other portions of the notebook into BLANK, as in Fig. 15 ( d); the appropriate line numbers are inserted into STATUS 1, as in Fig. 15 (e); and the execution of the STATUS 1 routine updates the notebook as in Fig. 15 (f). Using this type of on-line capability, in conjunction with capabilities for moving data from one location in the notebook to another, the human user of AESOP can execute routines, store resulting data in temporary notebook files, review these results, and I-- TREET LIST PROCESSOR I-- I/O EXECUTIVE PROGRAM DISPLAY CONSOLES APPENDIX Aesop Software Structure The Aesop prototype is an evolutionary experimental system. As such it is incremental in growth. To facilitate this growth an attempt has been made to make the system modular as much as seemed practical. There are certain elementary system functions such as data retrieval, data updating and data display. At another level there are additional functions that are preprocessors or switching routines for the elementary functions. As an example there is a COpy action that will copy data from one system file into another. It does this by using the data retrieval and then the data updating routines in succession. Fig. 16 outlines the functional organization of the system. ~ I----~ LP INPUT EXECUTIVE PUSHBUTTON INPUTS 1965 ~ - TREE I-L....e PROCESSING TREE DISPLAY re r-ei TYPEWRITER INPUTS ~ I COPY SWAP ETC TYPEWRITER OUTPUTS FILE AND OBJECT DISPLAYS LIST ~ CHANGE RENAME ...... RETRIEVAL PROGRAM ~ Figure 16. Simplified schematic of the AESOP A/I software interrelations. The total system occupies about 35,000 computer words. The remainder of the computer core memory is used as free storage space for list structures. The two prime considerations in the construction of the system were: 1. Ease of extension to permit the system to grow as new capabilities are added to it. 2. Speed of operation to give the operator fast response to all of his inputs. Economy of storage has not been a prime consideration. All of the system data base is stored in the disk unit. TREET is a general-purpose list processing system* written for the IBM 7030 computer at the From the collection of the Computer History Museum (www.computerhistory.org) AESOP: PROTOTYPE FOR ON-LINE USER CONTROL MITRE Corporation. All programs in TREET are coded as functions. A function normally has a unique value (which may be an arbitrarily complex list structure), a unique name, and operates with zero or more arguments. A function may or may not have an effect on the system. Some functions are used for their effect, some for their value, and some for both. The OAK-TREET function as it appears to the operator has commands, data classes and data which can be used for procedure construction. What follows is a simplified explanation of the principal nodes of the limbs of the OAK-TREET tree. OAK-TREET is constructed in TREET and OAK-TREET expressions are evaluated by the interpretive list processor. OAK-TREET COMMANDS REPLACE - The effect of this command is to place in the workspace, at the point indicated by the light pencil, the expression, symbol, or structure indicated by its argument. EVALUATE - When this command is signalled by the light pencil the expression in the workspace is evaluated. KEYBOARD - When this command is signalled by the light pencil, the system will expect the next command to come from the on-line typewriter. STORE - A copy of the expression which" is indicated by the light pencil is maintained in the system under the name of the· argument. ADD-R T - The expression indicated by the first argu~ent of this command will be added to the workspace with the same parent as the node indicated by the light pencil. *See E. C." Haines, "The TREET List Processing Language." SR-133, The MITRE Corporation (April 1965). ERASE - Removes the node (and all nodes dependent upon it) indicated by the light pencil from the workspace. DATA ARITH2 - Arithmetic Operators. + - Computes the sum of its arguments. - - Computes the difference of its arguments. x- 453 Computes the product of its arguments. DIV - Computes the quotient of its arguments. SUMMATION - Sums an expression while a variable goes from some number to another in increments of one. FACTORIAL - Computes the factorial of its argument. EXPONENT - Raises its first argument to the power indicated by its second argument. EQUALS - A predicate which checks for equality of its two arguments. LEQ - A predicate which is true if its first argument is less than or equal to its second argument. L T - A predicate which is true if its first argument is less than its second argument. LOGIC2 - Logical Operators. TYPE - Types out the value of its arguments on the typewriter. DO - A convenient way of grouping several expressions under one node. EVAL - Evaluates its argument which must be an expression in Cambridge Polish notation. CONS - Computes the list of its second argument augmented by its first argument. MEM 1 - Computes the first member of its argument which must be a list. REM 1 - Computes the list of its argument with its first member removed. AND - Logical Intersection. Value is TRUE if both arguments are not NIL. OR - Logical union. Value is TRUE if either (or both) argument is not NIL; NIL otherwise. NOT - Logical negation. Value is TRUE if its argument is NIL. A TOM - A predicate which asks whether its argument is atomic. EQUALS - A predicate which checks for equality of its two arguments. PROG2 - Has as its value its second argument. It is useful for attaching a different value to a computation. WHILE - Evaluates its second argument while its first argument is (evaluates to) true. From the collection of the Computer History Museum (www.computerhistory.org) 454 PROCEEDINGS -FALL JOINT COMPUTER CONFERENCE, IF-THEN - IF (al THEN a2) The value of this expression is the value of a2 if a1 evaluates to true; NIL otherwise. IF-TH-ELSE - IF (a1 THEN a2 ELSE a3) The value of this expression is the value of a2 or a3 depending on whether a1 is true or false. FOR - Provides a convenient way to execute an expression (its fourth argument) for a numerical range (between the values of its second and third arguments) of a variable (its first argument). = - This is the assignment operator. It sets its first argument (which must be a variable) to the value of its second argument. Q - Quotes its argument. ADL - The second argument of ADL must be a variable which evaluates to a list. ADL sets that variable to CONS (EVAL( argl) arg2) thus effectively adding something to a list. CHOP - The single argument of CHOP must be a variable which evaluates to a list. The value of CHOP is the first member of that list. The variable is set to the remainder of the list. FNA - The value of FNA is the value of its argument considered as a function applied to no arguments. Its only purpose is to represent a function of no arguments in tree structure. NAME - The value of NAME is the value of its first argument. The second argument is ignored. Name is used to label an expression. NAMES This is a set of undefined symbols which may be used as the name under which a routine is stored for later use. NUMBERS This calls up a function which nerrnits any integer to be constructed by pointing the light pencil to its digits in sequence. VARIABLES This is a set of variables which can be used in an expression in the workspace. DEBUG DEBUG is a function which allows other functions to be displayed and changed on-line. It works with any interpreted function but cannot dis- 1965 play a machine language coded function. Most of the work of debugging a function is done within DEBUG using the light penciL In the DEBUG display are five branches -from left to right, (1) COMMANDS, (2) name of the function to be examined, (3) type of. function, (4) ARGS, and (5) PVARS. VIEW ACTIONS If any node other than one in COMMANDS limb is light penciled, then the multiple rooted subtree headed by that node replaces the tree structure in the second leftmost branch to the right of the COMMANDS branch. This feature allows one to view all of a function that is otherwise too large to fit on the display, to concentrate attention on a particular substructure of a function, or to select which part of the tree will be taken into OAK-TREET for modification. COMMANDS RESTORB - This restores the display to its original· position thereby cancelling all previous view actions. BACKUP - This command cancels the last previous view action (if any have been performed since the last RESTORE). OAK - The tree on the second leftmost branch of DEBUG, to the right of the COMMANDS branch, is placed in the workspace of OAKTREET and the OAK-TREET function is entered. Changes to the tree may be made as desired. DEBUG is then reentered with this modified structure by light penciling the command KEYBOARD in OAK-TREET. KEYBOARD - This command returns control to the on-line typewriter keyboard. If the control has been returned to the on-line typewriter, the DEBUG function may be reentered without starting over again by typing R ( ) . Changes may also be made using keyboard tree changing functions. DEFTR - DEFTR redefines the function according to the present (modified) configuration of the tree. (Changes made to the displayed version are not reflected in the function itself until this is done.) TEST - This command initiates the processing for execution of the function displayed. The value of the function is printed by the on-line typewriter. From the collection of the Computer History Museum (www.computerhistory.org) AESOP: PROTOTYPE FOR ON-LINE USER CONTROL BRANCH TWO On the second leftmost branch appears the name of the function being examined, and under it a list of statements and location symbols. Location symbols are represented by a node containing that symbol. Statements are represented by trees in the same fashion as in OAK. TYPE The function type is normally regular type R. Type F indicates that the arguments of the function should not be evaluated prior to evaluating the function itself. Type U functions allow an arbitrary number of arguments to be specified; the arguments 455 are collected in a single list and given to the function as one argument. A type FU function is the combination of types F and U. ARGS The list of will be set as function when of the symbols arguments specifies which symbols the values of the arguments of the it is called. The old values (if any) are automatically saved and restored. PVARS The value of an argument in the program variables list is automatically saved and restored by the function. 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