Page images
PDF
EPUB

compilation of the statement, not the complete program." (1965, p. 462).

Time-sharing or time-slicing options and graphical communication possibilities cast new light not only upon the problem-oriented but also upon the useroriented languages and improved possibilities for man-machine communication and interaction. Effective compromises between the system design, the programmer, and the client have not yet been met, even although the demands of modern systems are increasing in complexity.

The problems of effective programming and utilization reach back beyond specific routines, specific languages, and specific equipment. They are involved in all the many questions of systems planning, systems managment and systems design. For example, in time-shared operations, "considerably greater attention should be focused on questions of economy in deciding on the tradeoff between hardware and software, in using storage hierarchies, and in determining the kind of service which the timesharing user should be offered." (Adams, 1965, p. 488). Finally, the critical problems reach farther back than the potentialities of hardware, software and systems planning combined, to fundamental question of why, how, and when we should look to machines for substantial aid to human decisionmaking and problem-solving processes.

"An analysis of the various requirements that a programming language must satisfy (to be known both by the job-originator and the job-executor and to be capable of expressing both what the first wants to be done and what the second is capable of doing) involves basic researches on the linguistic nature of programming languages." (Caracciolo di Forino, 1965, p. 224).

5.1.4. Heirarchies of Languages and Programming

Theory

Direct machine-language encoding and programming was the first and obvious approach to both numeric and non-numeric data processing problems. In both areas, forms of communication with the machine that are more congenial to the human user have been developed, as formal "programming languages" (FORTRAN, ALGOL, COBOL, and the like).5.65 In addition, special program languages to facilitate either problemsolving and question-answering systems, or textual data processing, or both; (such as list-processing techniques, IPL-V, LISP, COMIT, SNOBOL, more recently TRAC, and others) 5.66 have been developed. More and more, however, it is beginning to be recognized that hierarchies of language are essential to present and foreseeable progress.5.67

Burkhardt (1965, p. 3) lists a spectrum of programming languages on the basis of the "declarative freedom" available to the user, from absolute machine languages with none, to "declarative languages" which provide a description of the problem and freedom of both procedure and solu

tion. Certainly, for the future, "the entire spectrum of language from binary machine code to the great natural languages will be involved in man's interaction with procognitive systems." (Licklider, 1965, p. 104).

In the area of desired hierarchies of languages, we note such corroborating opinions as those of Salton who asks for compiling systems capable of handling a variety of high-level languages, specifically including list processing and string manipulations 5.68 and of Licklider who points out that in each of many subfields of science and technology there are specific individual problems of terminology, sets of frequently used operations, data structures, and formulas, indicating a very real need for many different user-oriented languages.5.69 However, in his 1966 review, the first ACM Turing Lecture, Perlis concludes: "Programmers should never be satisfied with languages which permit them to program everything, but to program nothing of interest easily. Our progress, then, is measured by the balance we achieve between efficiency and generality." (1967, p. 9).

Moreover, even in a single system, it may be necessary not only to reconcile but to combine the contradictory advantages and disadvantages of dif fering levels of programming language in various ways. Thus Salton states "it is possible to recognize five main process types which must be dealt with in an automatic information system: string manipulation and text processing methods, vector and matrix operations, abstract tree and list structure manipulations, arithmetic operations, and finally sorting and editing operations." (Salton, 1966, p. 205). A second complicating factor relates to the still unusually fluid situation with respect to hardware developments, logical design, and the increasing interdependence of hardware-software factors in the consideration of future system and network design possibilities.

Beyond the investigation, development, and experimental application of advanced programming languages for specific types of application such as graphical data processing, simulation, or on-line question-answering and problem-solving systems, study is needed of fundamental problems of programming theory.5.70 For example Halpern notes

the increasingly wide gulf between research and practice in the design of programming languages." (1967, p. 141), while Alt emphasizes that "we do not yet have a good theory of computer languages, and we are nowhere near the limit of the concepts which can be expressed in such languages." (1964, p. B.2-1).

There is also to be noted in the current state of the art in the computer and information sciences an increasing concern for the relationships between formal modelling techniques, generally, the questions of formal languages, and the development of powerful, general-purpose programming languages.5.71 Karush emphasizes that "the development of an integrated language of mathematical

and computer operations is part of a more general problem associated with the automation of control functions. This is the problem of formalism which embraces both mathematical representations of systems and representations of the processes of actual execution of systems, by computer or otherwise." (1963, p. 81).

A similar concern is expressed by Gelernter: "Just as manipulation of numbers in arithmetic is the fundamental mode of operation in contemporary computers, manipulation of symbols in formal systems is likely to be the fundamental operating mode of the more sophisticated problem solving computers of the future. It seems clear that while the problems of greatest concern to lay society will be, for the most part, not completely formalizable, they will have to be expressed in some sort of formal system before they can be dealt with by machine." (1960, p. 275).

High-order relational schemes both in languages and in memory structures will thus be required.5.72 For example, "the incorporation in procedural programming languages of notations for describing data structures such as arrays, files, and trees, and the provision to use these structures recursively together with indications of the scope of definition, will help greatly with the storage allocation problem and assist the programmer organizationally . . . (Barton, 1963, p. 176). In this connection, Press and Rogers (1967) have described the IDEA (Inductive Data Exploration and Analysis) program package for the detection of inherent structure in multivariate data.5.73

We note also that "even in the more regular domain of formal and programming languages, many unsolved practical and theoretical problems remain. For example, the matter of recovery from error in the course of compilation remains in a quasi-mystical experimental state, although some early results, applicable only to the simplest of languages suggest that further formal study of this problem could be worth while." (Oettinger, 1965, p. 16).

Requirements for continuing research and development activities in the area of computing and programming theory are increasingly seen as directly related to needs for more effective multiaccess time-sharing, multi-programmed, and multiprocessor systems. It can be foreseen that "Organizational generality is an attribute of underrated importance. The correct functioning of on-line systems imposes requirements that have been met ad hoc by current designs. Future system designs must acknowledge the basic nature of the problems and provide general approaches to their resolution." (Dennis and Glaser, 1965, p. 5).

What are some of the difficulties that can be foreseen with respect to the further development of hierarchies of systems? Scarrott suggests that "the problems of designing and using multilevel storage systems are in a real sense central

to the design of computing systems" (1965, p. 137), and Burkhardt warns: "As long as actual computers are not well understood there will not be much hope for very successful development of useful universal processors." (1965, p. 12).

5.2. Processor and Storage System Design Considerations

In the area of information processing systems themselves, current trends have been marked not only by new extensions to the repertoires of system configurations available for the large, high-cost, high-speed processors but also by a continuing tendency to the development of computer system "families." Increasing attention is being given to both "upward" and "downward" compatibility—that is, to means by which programs operable on a large system may also operate on a smaller, slower, or less expensive member of the same family, and vice versa.

Increasing attention has also been given to providing adjuncts to existing and proposed systems which will give them better adapatability to timesharing and on-line multiple-access requirements. Similarly, the requirements for handling a variety of input sensing modalities and for processing more than one input channel in an effectually simultaneous operation clearly indicate needs for continuing research and development efforts in the design and use of parallel processing techniques, multiprocessor networks, time-shared multiple access scheduling and multiprogramming.

Hierarchies of languages are implied as we have seen, ranging from those in which the remote console user speaks to the machine system in a relatively natural language (constrained to a greater or lesser degree) to those required for the highly sophisticated executive control, scheduling, file protection, accounting, monitoring, and monitoring instrumentation programs.

Tie-in to various communication links, generally, should include remote consoles, closed circuit TV, facsimile, voice quality circuits, and the like, with capability for real-time processing. Message security protection facilities are often required, including encoding and decoding. Access to error detection and error correction mechanisms are also necessary.

Overall system design requirements indicate also the necessary exploitation of new hardware technologies, new storage media, associative-memory procedures for file and data bank organization and management, the use of dynamic reallocations of space and access to both programs and files or data banks in multiple-access systems, protective and fail-safe measures, and the development of hierarchies of languages of access and usage, hierarchies of stored data files, and hierarchies of systems.5.74

Many of the above factors are discussed in other sections of this report or in other reports in this series. Here, we will consider briefly some of the

problems of central processor design, parallel processing, and hardware-software interdependence.

5.2.1. Central Processor Design

With regard to the central processing system, it is noted that it should be operable in both time-sharing and batch processing modes, and that it provide simultaneous access to many users. Efficient multiple access should be provided to the hierarchies of storage with the user having, in effect, virtually unlimited memory.5.75 There should be a capability for accessing either internal or auxiliary associative memory devices.

A continuing problem in processor-storage system design is that of address-circuitry.5.76 Closely related to this problem are questions of content-identification-matching whether for sequential or parallel access. Indirect addressing and multiple relative addressing via a number of index registers is an important consideration.5.77

Moreover, direct program access to all registers by ordinary instructions and with interlock protection features is often required. If the index registers can be simultaneously and interchangeably used as instruction counters, there are additional parallel processing benefits. For example, such capabilities can provide for jumping to the nth instruction from the present one, determining whether an instruction has been executed or not, and other flexible capabilities for debugging, diagnostic, and evaluation purposes. It should be possible to manipulate index registers several at a time.

System users may need a relatively long word length to provide numerical accuracy in long floating point values, for manipulation of large matrices, to provide duplex operations on two sections of the word simultaneously as in complex number processing, and the like. Automatic unpacking of word subsets in variable sized bytes is also recommended for future processor design. Salton indicates needs for "flexible instructions operating on individual bits and characters, and flexible branching orders. Pushdown store instructions, such as 'pop' or 'push' should also be useful for the list operations." (1966, p. 209).

Also desirable is the ability to access a word simultaneously from more than one computer system or component with automatic protection interlocks in case of conflicts. Power-failure protection systems should be available and protection should also be provided against unauthorized access to various memory and data bank sections.

More flexible pagination 5.78 is needed for some important applications. For example, in graphic data processing, dynamic memory reallocation procedures requiring fixed pagination would be awkward to use and highly inefficient. Storage allocation should be under programmer control. For example, if pictorial data overflows the boundaries of a page, at least 4 and as many as 9 pages may be required since such data must be processed as a two-dimensional

array. The system designer needs to avoid as far as possible the problems of unnecessary and clumsy programming in order to apply a single procedure to such arrays. For example, Wunderlich points out in connection with sieving procedures for computer generation of sets and sequences that "there are obvious programming difficulties connected with sieving on a field of bits." (1967, p. 13).

Another hardware-software desideratum here is obviously the need for efficient bit-manipulation capabilities. For example, the user would like to find, for a given gray-level representation of a graphic input that, at a given location and blackness level, some or all or none of the neighboring locations have the same blackness level recordings (this is important in eliminating "fly specks" from further processing, in filling-in "holes" that result from imperfect printing impressions, and also in determination of the relative locations of centers of blackness when attempting to reconstruct threedimensional imaging for serial sequences of twodimensional image representations).

Problems of computer design as well as programming for array processing are discussed by Senzig and Smith (1965) in terms of a worldwide weather prediction system and by Roos (1965) in terms of the ICES (Integrated Civil Engineering System) at M.I.T.5.79 Association matrices present a special form of data arrays requiring efficient manipulation and processing. Such considerations are particularly important in the experimental research or on-line instrumentation situations.5.80 In addition, bitmanipulation and array-processing requirements are severely constrained in commercially available systems.

A requirement of major future importance (especially for chemical information searching, file, organization, mapping functions and graphic data processing) is for efficient bit manipulation capabilities, including convenient Boolean processing and transplant features. Again, bit manipulation capabilities are important because many operations require consideration of all the orthogonal neighbors of a single bit position.

In future system designs, increasing needs for multivalued logic approaches can also be foreseen. In general, a binary (two-valued) logic pervades information processing system design and the basic methods of information representation as of today. For the future, however, attention needs to be directed toward multivalued logic systems and to direct realizations of the n-ary relations between the data elements of stored information. There are new technological possibilities that point in this direction (e.g., new devices that are capable of at least ternary response, 5.81 or multiple response by colorcoding techniques from a single "bit" recording on advanced storage media). In addition, parallel processing, associative processing, and iterative circuit techniques point the way to new complexities of program command and control and to new, multivalued, processing opportunties as well.

Then, as Wooster comments: "Radically different types of computers may well be needed. At present, the best way of building these seems to be through the creation of logical structures tending more and more in the direction of distributed logic nets, wherein vast numbers of processes occur simultaneously in various parts of the structure. Right now, the best building blocks for such systems seem to be multifunctional microprogramable logic elements." (1961, p. 21).

Increasing complexity of central processor design is indicated by developments in advanced hardware technologies; 5.82 while increasing flexibility is dictated by dynamic reconfiguration requirements.5.83 Modularity is an important consideration.5.84 The critically challenging, interacting problems of both design, programming and utilization of multiprocessors and of parallel processing are emphasized by Brooks (1965), Amdahl (1965), Burkhardt (1965), and Opler (1965), among others. Thus: "The use of multicomputers implies intercommunication, with the associated implications of interconnection, reconfiguration and interlocking.” (Amdahl, 1965, p. 38).

5.2.2. Parallel Processing and Multiprocessors The possibilities for the use of parallel processing techniques should receive increased R & D attention. Such techniques may be used to carry out data transfers asynchronously with respect to the processing operations,5.85 to provide analyses necessary to convert sequential processing programs into parallel-path programs,5.86 or to make allocations of system resources more efficiently because constraints on the sequence in which processing operations are executed can be relaxed.5.87 Applications to the area of pattern recognition and classification research and to other array processing operations are obvious.5.88

However, there are problems of effective use of parallel processing capabilities. Some examples of the discernible difficulties with respect to current parallel-processing research and development efforts have been noted in the literature as follows: (1) "Multiprogrammed processors will require more explicit parallel control statements in languages than now occur." (Perlis, 1965, p. 189.)

(2) "Much additional effort will have to be put into optimizing compilers for the parallel processors that may dominate the computer scene of the future." (Fernbach, 1965, p. 84). (3) "Computers with parallel processing capa

bilities are seldom used to full advantage." (Opler, 1965, p. 306).

There are also problems of R & D concern in programming language developments involved with increased use of parallel processing capabilities. The possibilities of "Do Together" provisions in compilers, first raised by Mme. Poyen in 1959,5.89 add a new dimension of complexity for analysis, construction, and interpretation. Fernbach comments

on the sparcity of attempts made to date on the potentials of parallel processing in programs for many problems. He states further that while the tasks of segmenting the problem itself for parallel processing attack are formidable, "they must be undertaken to establish whether the future development lies in the area of parallel processing or not." 5.90 Then there is need for judicious intermixtures of parallel and sequential processing techniques in specific design, programming, or application situations.5.91

[ocr errors]

99

Parallel processing potentials are also closely related to, and may be interwoven with, multiprocessing systems which involve: "The simultaneous operation of two or more independent computers executing more-or-less independent programs, with access to each other's internal memories (Riley, 1965, p. 74). In particular, the Solomon Computer and Holland Machine concepts may be noted.5.92 For another example, increasing parallelism of operation of a multiple access processing system has been investigated at the Argonne National Laboratory in terms of an "Intrinsic Multiprocessing" technique consisting of n time-phased "virtual" machines which time-share very high speed execution hardware (Aschenbrenner et al., 1967), while ILLIAC III has been designed for parallel processing of pictorial data.5.93

5.2.3. Hardware-Software Interdependence The earlier dichotomy as between "hardware" and "software" considerations is beginning to yield, not only to the increasing interdependence of the two factors in many information processing application requirements, but also to technological developments in "firmware" (in effect, wired-in microprogramming 5.94) and to growing recognition of the critical importance of more precise and comprehensive "brainware" in systems planning, design, specification, and implementation.5.95

Is it currently possible to separate computer and storage system design considerations from those of programming language design and of programmed executive control? Several experts testify that, if it is still possible today, it will soon be so no longer.5.96 It can be quite clearly seen that the areas of computer theory and program design are becoming increasingly interdependent with those of adequate programming languages, "software", and usertolerance levels. At the same time, new possibilities for multicommunicator, multiprocessor, and multiuser networks are increasingly coming to the fore.

The growing interdependence is stressed, for example, by Schultz (1967),5.97 and by Lock (1965) who notes the strongly increasing influence of multiprogrammed, on-line systems upon the organization of the storage facilities. Scarrott (1965, p. 137) for another example, insists that "the problems of designing and using multilevel storage systems are in a real sense central to the design of computing systems."

Thus, "as we enter an era of bigger and more complex systems some new requirements are coming to be of major importance.

Will we be able to minimize the program handling by proper allocation to primary, e.g., core, or secondary, e.g., drum or disk, storage?

Will we be able to incorporate changes to the functional operation of the system?

Will we be able to modify the system to accommodate new or additional hardware?

Will we be able to add a completely new function to an already operating system?" (Perry, 1965, p. 243).

In the next section, therefore, we will consider some of the advanced hardware developments before discussing such overall system design considerations as debugging, on-line instrumentation and diagnosis, and simulation.

6. Advanced Hardware Developments

Certain obvious overall system design requirements have to do with the further extensive development and application of advanced hardware technologies, especially opto-electronics generally (and lasers and holography in particular), with integrated circuit techniques, and with improved high-density storage media.

to

Recurrent themes in current progress toward very-high-speed, computer-controlled access primary, secondary and auxiliary storage banks, from the standpoint of hardware technology, include the questions of matching rates of data-and/orinstruction access to those of internal processing cycles, and of the prospects for integrated circuit and batch fabrication advantages in design and construction.

These new technologies may also be combined in various ways. For example, Lockheed Electronics has been using deflected laser beams to scan photochromic planes very rapidly and very accurately 6.1 laser and holographic techniques are conjoined in equipment designed to photograph fog phenomena in three dimensions,6.2 and it has been reported that “laser devices show promise of very fast switching which together with optical interconnections could provide digital circuits that are faster than electronic circuits." (Reimann, 1965, p. 247).

6.1. Lasers, Photochromics, Holography, and Other Optoelectronic Techniques New hardware developments that are technically promising in terms of the long range research and development necessary to support future improvements in information processing and handling systems include the development of special laser techniques for switching, storage, and other purposes, and the possible use of holograms or kinoforms for 3-dimensional pattern recognition and storage.

6.1.1. Laser Technology

Writing in 1965, Baker and Rugari have pointed out that "a wide variety of lasers have been discovered and developed since the first laser device was operated five years ago.6.3 Lasers can be classed

into three basic types: solid-state, semiconductor, and gaseous. Typical examples are the ruby solidstate laser, gallium arsenide semiconductor laser, and the neon-helium gas laser." (1966, p. 38).

6.5

Certainly, lasers, whether of the gas, fluorescent crystal, or semiconductor type,6.4 are finding many new possibilities of application in computer, communication, and information processing systems. As sources of illumination they can provide greater display efficiency 6.6 and greater resolution with respect to display systems involving lightbeam deflection techniques (Soref and McMahon, 1965, p. 60),6.7 and they provide an effective aid to the boundary and contrast enhancement techniques for image processing developed at the National Physical Laboratory at Teddington, England. More specifically, this technology promises new developments in space communications,6.8 in memory construction and design,6.9 in the development of analytical techniques such as Raman spectroscopy and photomicroscopy,6.10 in the identification of fingerprints,6.11 in quantization of high resolution photographs 6.12 and in the use of holograms for collection, storage, and regeneration of two- and three-dimensional data.6.13

6.18

Small, very high-speed memories may be driven by laser beams,6.14 and laser components contribute to the design of "all-optical" computers 6.15 and computer circuits and components.6.16 Laser inscribing techniques are being investigated for such applications as large screen real-time displays, 6.17 and for highly compressed data recording, for example, at Precision Instrument Company. As of March 1969, it could be reported that orders had been placed for UNICON systems by Pan American Petroleum Corporation, and were under consideration by several other organizations, including U.S. Government agencies.6.19 In particular, the National Archives and Records Service has been studying the possibilities of converting present magnetic tape storage to this system.6

Investigations of future technical feasibility of using laser devices for high speed data storage and/ or processing have thus been complemented by exploration of possibilities for recording onto very large capacity storage media as also in developments at Honeywell,6.21 at the Itek Corporation,6.22

« PreviousContinue »