4.38 A some 4.40 An important question to be asked by the system designer is whether the output responses will be of the types and in the formats that the client will expect to receive. It is noted in particular that "the closer the correspondence of the computer output is to the methods of presenting textual and tabular material familiar to the user, the greater his information absorption rate will be.” (Morenoff and McLean, 1967, p. 20). Thus, in engineering applications, for example, the client may want results to be displayed in a familiar format such as a Nyquist plot.4.36 Similarly, in operations on files or data banks, the user should be able to structure and sequence files and subfiles for display and selection to suit his own purposes.4.3 For effective online operation, the system should provide responses within the reading rates of typical users, and with good resolution, little or no flicker, and with both upper and lower case. what more specific and stringent list of remote terminal desiderata is provided by Licklider, with particular reference to the requirements of multiple access to the body of recorded knowledge. His desired features include, but are not limited to, color, or at least gradations of gray scale; 4.39 terse or abbreviated modes of expression to the machine with full or "debreviated" response; selective erasibility of the display by either program or user command, 4.41 and capabilities such as the following: “Shortly thereafter, the system tells me: ‘Response too extensive to fit on screen. Do you wish short version, multipage display, or typewriter-only display??.” (Licklider, 1965, p. 50). Another design criterion affected by the factor of client convenience is that of the extent of display on the console face of meta-information.4.42 Continuing needs for technological developments have also been indicated for improved terminal and output display design. Examples include the development of new, fast phosphors and other materials,4.43 use of analog predictive circuitry to improve tracking performance, 4.44 and variable sequencing of processor operations in computation and display.4.45 A number of advanced techniques are also being applied to large-screen displays,4.46 although some continuing R & D difficulties are to noted.4.47 Multiplexing of graphic display devices may also be required.4.48 Returning, however, to the human behavioral factors in input-output and terminal design, we note that man-machine relationships require further investigation both from the standpoint of human engineering principles and also from that of attitudes of clients and users, 4.49 that there are continuing requirements for research and development efforts on both sides of the interface 4.50 and that, in all probability, “industry will require more special prodding in the display-control area than in the other relevant areas of computer technology.” (Licklider, 1965, p. 66). We note further an area of R & D concern that will recur in many other aspects of information processing system design and use, and especially in information selection and retrieval applications. More specifically: “The major problem today in the design of display systems is that we cannot specify in more than qualitative terms such critical criteria as 'context' and 'meaning'.” (Muckler and Obermayer, 1965, p. 36). Swanson adds: “Other restrictions derive from the need of programs to solve hidden line problems, to recognize context, and to make abstractions." (Swanson, 1967, p. 39). Finally, we note the specific problem in documentary and library applications that large character repertoires are important to input and output representations of various levels of reference and emphasis in technical texts (especially, for example, in patent applications with multilevel referrals to accompanying drawings and diagrams) and to delineation of different types of possible access points in indexes and catalog cards.4.51 In addition, a wide variety of special symbols and/or exotic alphabets are typically employed in texts dealing primarily with mathematical, logical or chemical subjects. A text written principally in one particular language and alphabet may frequently use the alphabet set of one or more other languages, as in reference to proper names, citations, and quotations. 4.3. Character Set Requirements For multiple-access systems "most creative users want large character sets with lower-case as well as capital letters, with Greek as well as Latin letters, with an abundance of logical and mathematical signs and symbols, and with all the common punctuation marks.” (Licklider, 1965, p. 182). In addition, subscripts, superscripts and diacritical marks may be required.4.52 Attacks on problems of character-set requirements for output begin with on-line printer variations to provide larger output character-set vocabularies at the expense both of output printing speed and of prior input precedence-coding and/or of processor programming. Larger character. set vocabularies are provided both by photocomposition techniques and by electronic character. generation methods, but again at the expense of either pre-coding or programming requirements.4.53 It should be noted, of course, that the internal language of most general-purpose information processing systems is limited to no more than 64 discrete characters, symbols, and control codes. Thus there must be extensive provision for multiple table lookups and/or for decoding and reencoding of precedence codes or transformation sequences, on both input and output, if any internal manipulations are to be performed on the textual material. In general, the larger the character set, the more elaborate the precoding and/or programming efforts that will be required. Then there is the problem of setting up keyboard character sets that are adequate for application requirements and yet within reasonable human engineering limitations. One proposed solution, the use of keyboard overlays and control codes to enable rapid shifting from one character subset to another, is exemplified by developments at Bunker-Ramo.4.54 Another possible solution to the character set problem as related to human engineering factors that is receiving continuing R & D concern is to provide multiple inputs via a single keystroke, such as “chord" typewriters or Stenotype devices.4.55 Regardless of what may be available through various conversion, transliteration, or translation processes on either input or output, there remains the question of the effects of internal character set upon sorting, ordering, filing and interfiling operations for a specific processor-storage system. For example, “other control elements which are frequently required in the design of information systems are special sorting elements. In a directory of personal names, such as those which might be found in an author bibliography, if names begin. ning with ‘Mc' and those beginning with 'Mac' are to sort together, then special sorting codes must be entered into the computer for this purpose. (Austin, 1966, pp. 243-244)4.56 The size of an adequate character set is a particularly critical problem in at least two significant areas: those of automatic typographic-quality typesetting and of library automation.4.57 Complex character set requirements are also to be noted in such multiple-access applications as computeraided-instruction (CAI).4.58 Avram et al., considering automation requirements at the Library of Congress, stress that “keyboard entry devices must be designed to facilitate the input of a variety of languages and diacriticals.” (1965, p. 4). These authors point out further that "if the problems associated with the design of input keyboards and photocomposition printing devices can be resolved for the multiplicity of alphabets, there still will remain the formidable task of searching in a machine file which contains them.” (Avram et al., 1965, p. 89). Similarly, Haring (1968) points out that the 128 symbols provided in the ASCII code is inadequate for the augmented catalog under development at Project INTREX.4.59 The very number and diversity of varied but realistic cataloging, filing, and search considerations in terms of character-set and sort-order requirements that exist today may indeed surprise the typical computer scientist facing library automation implementation problems. Nevertheless, particular problems of sorting, filing, and reassembly orders in terms of practical usage needs and acceptability to the clients of mechanized systems and services should be subjects of concern to designers of machine languages, machine character-sets, and of the processors as such.4.60 The even more difficult case of extensive mathematical, chemical, and other special symbols desired on output imposes additional hardware requirements, whether for high speed printers, , photocomposition devices, or character generators.4.61 This, then, is the area that has been called "Caligraphy by Computer." 4.62 A final example of unusual character set requirements is provided by “Type-A-Circuit” developments. 4.63 a 5. Programming Problems and Languages and Processor Design Considerations The overall system design requirements of the future indicate R & D concerns with programming languages, and especially with hierarchies of such languages at the present time.5.2 Controversies certainly exist as between advocates of more and more "universal" languages and proponents of problem-oriented or user-oriented machine communication techniques. The questions of design and development of appropriate programming languages and of processor design are obviously pertinent to all of the operations shown in Figure 1. As of 1967–68, however, special emphasis in terms of research require. ments lies in three principal areas: user-oriented input, response and display languages; symbol manipulation languages capable of handling arrays of multiply interrelated data, and increasing interpenetration of hardware and software considerations in both system design and system use.5.1 For example, in the operations of developing processing specifications from client requests for service (Boxes 8 and 9 of Fig. 1), we need: new and more powerful problem-oriented languages; versa. tile supervisory, executive, scheduling, and accounting programs; hierarchies of programming languages; multiprogramming systems; improved microprogramming; new approaches to increasing interdependence of programming and hardware; and more versatile and powerful simulation languages. 5.1. Programming Problems and Language Continuing R & D requirements for programming language improvements represent two contradictory requirements: on the one hand, there is recognized need for increasingly universal, common-purpose languages compatible with a wide variety of systems, hardware configurations, and types of applications; and on the other hand for hierarchies of language systems. In addition, a number of special requirements for more flexible, versatile and powerful languages are just beginning to emerge, especially in such areas as graphical communication, on-line problem solving, multiple access and multiprocessor control systems, simulation, and on-line instrumentation. We are concerned here, then, with generalpurpose language and compatibility requirements; with special-purpose requirements such as problem-oriented programs, list-processing and other techniques for non-numeric data processing; with special problem areas such as very large programs and the requirements of multiple-access and multiprogrammed systems; with hierarchies of programming languages, and with the increasing interdependence of software and hardware considerations. a 5.1.1. Problems of Very Large Programs and of Program Documentation tages of on-line documentation systems.5.8 Thus the area of program documentation requires further study and concern. A related difficulty is that of inadequate means for translation between machine languages, although some progress has been made.5.9 An intriguing possibility deserving further investigation has been raised by Burge (1966, p. 60) as follows: “Presented here is a problem and a framework for its solution. The problem is as follows: Can we get a computer program to scan a library of programs, detect common parts of patterns, extract them, and re-program the library so that these common parts are shared?” Another current question of R & D concern with respect to programming problems is of the generality with which a given language system can or cannot cope with a wide variety of system configurations and reconfigurations over time.5.10 The questions of development of more effective common-purpose or general-purpose languages involve very real problems of mutually exclusive features and of choices as between a number of of achieving certain desirable built-in features 5.11 Areas of continuing R & D concern in programming language developments reflect, first, the need for increasing generality, universality, and compatibility (these objectives are followed in general-purpose language construction and standardization, on the one hand, and by increasing recognition of the needs for hierarchies of language, on the other); secondly, the special requirements of multiple-access, multiprogrammed, multiprocessor, and parallel processing systems; thirdly, requirements for problem-oriented and other special-purpose languages, and finally, needs for continuing advances in hardware-software balances and in fundamental programming theory. In terms of continuing R & D concern, we note first the problems of handling very large programs, defined as those that demand many times the available main storage capacity and that are sufficiently complex in structure to require more than ten independent programmers to work on them.3.3 An obvious requirement is to develop efficient techniques for segmentation: “When many programmers are involved, there is the problem of factoring the system into appropriate subtasks. At the present time this is an art rather than a science, and very few people are good at its practice, because of the inability to find useful algorithms for estimating the size and degree of difficulty of programming tasks.” (Steel, 1965, p. 234). The questions of automatic segmentation, although recognized as critical and difficult problems, have therefore been raised.5.4 In particular, the checkout of very large progrāms presents special problems.* For example, "another practical problem, which is now beginning to loom very large indeed and offers little prospect of a satisfactory solution, is that of checking the correctness of a large program.” (Gill, 1965, p. 203). Further, “the error reporting rate from a program system of several million instructions is sufficient to occupy a staff larger than most computing installations possess.” (Steel, 1965, means a 5.1.2. General-Purpose Programming Requirements access 5.12 p. 233). Other specific requirements in the programming problem areas include improved provision for adequate program documentation and related controls.5.5 For example, Pravikoff (1965) presents cogent arguments for the improved documentation for programs generally. Mills (1967) points to the special documentation problems in multiple access systems where users are less and less apt to be trained programmers.5.6 Dennis (1968) points to the present high costs of large-scale programming efforts as due to inadequate documentation that prevents taking advantage of programming already achieved,5.7 while Kay (1969) considers the advan The presently indicated transition from exclusively batch or job-shop operation to on-line, multiple system management sharply aggravates the problems of programming language requirements in a number of different ways. First, there are very real difficulties in translating from programming languages and concepts geared to sole occupancy and use of system facilities to those required in the multiple-access, and multiprogrammed, much less the multiprocessor and network environment.5.13 As Brooks (1965) points out: “Today's excitement centers chiefly around (1) multiprogramming for time-sharing, (2) multiple-computer systems using a few computers for ultra-reliability, and (3) multiple-computer systems using a highly par. allel structure for specialized efficiency on highly structured problems.” 5.14 In all of these cases, moreover, the R & D requirements are typically *See also Section 7.1 of this report, on debugging problems generally. a " 5.20 aggravated by a persistent tendency to underesti- analysis processing through those of alphanumeric mate the difficulties of effective problem solution.5.15 file management to those of list and multi-list An obvious first common-purpose requirement is processing 5.33 List structures have been noted for truly efficient supervisory, accounting, and in several of the file management systems mentioned monitoring control programs 5.16 that will effectively and it is to be noted further that: “Linked indexes allocate and dynamically reallocate system re- and self-defining entries are an extension of list sources, that will be secure from either inad- processing techniques. (Bonn, 1966, p. 1869). vertent or malicious interference, and that will be For non-numeric data processing applications, in flexible enough to accommodate to changing cli- general, symbol string manipulation, list processing entele needs, often with new and unprecented and related programming techniques have been of applications.5.17 particular concern.5.34 Also in the area of general-purpose programming While many advantages of list-processing techrequirements are the various emerging programs niques have been noted, a number of disadvantages for generalized file or data base management, are also reported. Among the major advantages are maintenance, and use.5.18 The first requirement, the recursive nature of list processing languages 5.35 here, is for reconciliation of variable input, file and adaptability to dynamic memory allocation and storage, and output formats, together with flexible reallocation.5.36 Also, languages of this type are means for dupe checking on input, combinatorial “well suited to symbol manipulation, which means selection, and output reformatting.5.19 Closely re- that it is possible to talk about the names of varilated are the questions of the so-called “formatted ables, and perform computations which produce file systems. them” (Teitelman, 1966, p. 29), and "by means of A first approach to such general-purpose pro- list structures a three-dimensional spatial netgramming systems was undoubtedly that of the work can be modeled in computer memory. Univac B-O or Flow-Matic system developed in (Strom, 1965, p. 112). the mid-1950's.5.21 More recent examples include Typical disadvantages to be noted include lack General Electric's GECOS III (General Compre- of standardization,5.37 degree of programming hensive Operating Supervisor III) 5.22 and Inte- sophistication required,5.38 and wastage of storgrated Data Store concepts; 5.23 the TDMS (Time- age space.5.39 Major difficulties are often encounShared Data Management System) at System De. tered in updating and item deletion operations 5.40 velopment Corporation 5.24 and GIS (Generalized and in dealing with complex data structures.5.41 Information System) of IBM.5.25 Heiner and Leish- We may ask also to what extent the available man (1966) describe a generalized program for list-processing and symbol manipulation programrecord selection and tabulation allowing variable ming languages are adequate for current applicaparameters for sort requirements, selection cri- tion needs? 5.42 To what extent are they useful for teria, and output formats.5.26 the investigation of further needs? In particular, In 1965, comparative operation of file manage- it is noted that “unfortunately, while these lanment was demonstrated by different systems guages seem in many ways directly tailored to the including COLINGO (Mitre Corporation), Mark information retrieval work, they are also in other III (Informatics, Inc.), BEST (National Cash Regis- respects very awkward to use in practice.” (Salton, ter), Integrated Data Store (G.E.), and an on-line 1966, p. 207). management system of Bolt, Beranek, and New- List-processing languages and structures are man, Inc.5.27 It was concluded that: “All of these particularly clumsy, moreover, for multiply intersystems were able to accomplish the processing related and cross-associated data.5.43 Short of required, but their approaches varied considerably, truly large-scale associative memories, effective particularly in the file structures chosen for the compromises are needed as between list strucapplication, executive control procedures, and level tures, including multilist programming languages, of language used in specifying the processing to be and file organizations that will provide economy performed.” (Climenson, 1966, p. 125). of both storage and access.5.44 In addition, we may note the examples of a file Beyond list processing procedures there are organization executive system,5.28 a program man. a trees, directed graphs, rings, and other more complex agement system involving a two-level file.5.29 and associative schemes.5.45 A relatively early example a file organization scheme developed for handling is that of “Rover” with "up links” and “side various types of chemical information.5.30 Another links” as well as “down links”.5.46 Savitt et al., 1967, documentation application involving a list-ordered describe a language, ASP (Association-Storing file is provided by Fossum and Kaskey (1966) Processor), that has been designed to simplify the with respect to word and indexing term associa- programming of nonnumeric problems, together tions for DDC (Defense Documentation Center) with machine organizations capable of high-speed documents.5.31 parallel processing.5.47 In the area of common-purpose languages, Ring structure language systems are represented also, there is need to reconcile the differing re- by Sketchpad developments 5.48 and the work of quirements with respect to different classes Roberts at M.I.T. for graphical data processing 5.49 of data structures,5.32 from those of numerical and by systems for use in question-answering and similar systems, such as Project DEACON.5.50 and, secondly, that "the task of developing a Still other associative structure developments are complete new real-time language would be interdiscussed for example, by Ash and Sibley (1968),5.51 esting and challenging since it would require Climenson (1966),5.52 Craig et al., (1966),5.53 Dodd reconsideration of the conventional procedure (1966),5.54 and Pankhurst (1968) 5.55 and data defining statements from the viewpoint There are certainly those who need far more of the real-time requirements.” (Opler, 1966, generalized multipurpose languages and, with p. 197). equivalent force, those who advocate specialized, Further, on-line problem-solving applications reman-oriented, and special-purpose languages. quire dynamic and flexible programming capabilA specific current design problem has to do with ities.5.59 Experimentation with the working program an appropriate compromise between these appar- should be permitted with due regard for system ently contradictory comments. A future R & D protection and control.5.60 Generalized problemrequirement is to seek more effective solutions. solving capabilities should be available in the Thus Licklider insists upon the need to bring language system without necessary regard to speon-line "conversational" languages more nearly cific applications.5.61 Such programs should be abreast with the more conventional programming extensively self-organizing, self-modifying, and languages as an R & D challenge.5.56 capable of adaptation or tentative "learning. " 5.62 Then it is to be noted that languages for on-line 5.1.3. Problem-Oriented and Multiple-Access Language use should be relatively immune to inadvertent user Requirements errors.5.63 Teitelman comments, for example, that "in languages of this type, FORTRAN, COMIT, Increasing needs for advanced special-purpose MAD, etc., it is difficult to write programs that conprogram language developments have been recog struct or modify procedures because the communi. nized for the areas of man-machine interactive cation between procedures is so deeply embedded problem-solving and computer-aided instruction in the machine instruction coding, that it is very applications, graphical manipulation operations, difficult to locate entrances, exits, essential vari. and simulation applications, among others. It is ables, etc.” (1966, p. 28). noted in particular that “their power [that of In language systems such as TRAC,5.64 the powerproblem-oriented languages in the extension fulness is largely buried in specific machine procof computing lies in the fact that the expert knowl. essors for this language - the user is freed from ledge of skilled analysts in particular fields can learning a number of arbitrary exceptions, he is be incorporated into the programs, together with not able to "clobber" the underlying processor by a language which is native to the field, or nearly so, inadvertent goofs, he is able iteratively to name and and can thereby break down the barriers of eco rename strings and procedures he wishes to use nomics, of lack of familiarity with the computer, largely in terms of his own convenience, and he is and of time." (Harder, 1968, p. 235). able to make use of the language and system with Important requirements in programming lan- minimal training or prior experience. guages reflect, predictably, those of multiple- Related problems affect the design of specialaccess and time-shared systems involving a suitable purpose languages ("the design of special-purpose hierarchy of languages so that the relatively un- languages is advancing rapidly, but it has a long sophisticated user may converse freely with the way to go,” Licklider, 1965, p. 66), the interaction machine without interference to other users of executive and console languages (“wherever to the control and monitor programs and yet also remote consoles are used, we find the users endraw upon common-use programs and data. thusiastic. However, they always hasten to add that The effective use of such systems in turn demands there is much to learn about the design of execuextremely tight and sophisticated programming tives and processors for console languages, ” to keep “overhead” to a minimum 5.57 and to provide (Wagner and Granholm, 1965, p. 287), the provision dynamic program and data location and relocation. of adequate debugging aids ("the creation of large Relatively recent developments in this area are programming systems using remote facilities rediscussed by Bauer, Davis, Dennis and Van Horn, quires a number of debugging aids which range in Licklider, Clippinger, Opler, and Scherr among complexity from compilers to simple register conothers.5.58 Bauer (1965, p. 23) suggests in particular tents request routines.” Perlis, 1965, p. 229), and that: “Entirely new languages are needed to the development of effective modularity in programs allow flexible and powerful use of the computer and compilers (it will be necessary for the softfrom remote stations.” ware to be modular to the greatest extent possible Multiple-access systems and networks obviously because it will need to work up to the next level of require R & D efforts in the development of lan software." Clippinger, 1965, p. 211). guage systems "optimized for remote-on-line In connection with the latter requirement Lock use” (Huskey, 1965, p. 142). Opler points out, discusses the desirability of an incremental comfirst, that "for the most difficult areas – telecom- piler which is characterized by its ability "to communication, process control, monitors, etc. - pile each statement independently, so that any real-time languages have provided little assistance,” local change in a statement calls only for the re or |