A command structure for complex information processing1
J. C. Shaw / A. Newell / H. A. Simon / T. O. Ellis
The general-purpose digital computer, by virtue of its large capacity and general-purpose nature, has opened the possibility of research into the nature of complex mechanisms per se. The challenge is obvious: humans carry out information processing of a complexity that is truly baffling. Given the urge to understand either how humans do it, or alternatively, what kinds of mechanisms might accomplish the same tasks, the computer is turned to as a basic research tool. The varieties of complex information processing will be understood when they can be synthesized: when mechanisms can be created that perform the same processes.
The last few years have seen a number of attempts at synthesis of complex processes. These have included programs to discover proofs for theorems [Newell et al., 1956, 1957b], programs to synthesize music [Brooks et al., 1957b], programs to play chess [Bernstein et al., 1958; Kister et al., 1957], and programs to simulate the reasoning of particular humans [Newell et al., 1958]. The feasibility of synthesizing complex processes hinges on the feasibility of writing programs of the complexity needed to specify these processes for a computer. Hence, a limit is imposed by the limit of complexity that the human programmer can handle. The measure of this complexity is not absolute, for it depends on the programming language he uses. The more powerful the language, the greater will be the complexity of the programs he can write. The authors' work has sought to increase the upper limit of complexity of the processes specified by developing a series of languages, called information processing languages (IPL's), that reduce significantly the demands made upon the programmer in his communication with the computer. Thus, the IPL's represent a series of attempts to construct sufficiently powerful languages to permit the programming of the kinds of complex processes previously mentioned.
The IPL's designed so far have been realized interpretively on current computers [Newell and Shaw, 1957a]. Alternatively, of course, any such language can be viewed as a set of specifications for a general-purpose computer. An IPL can be implemented far more expeditiously in a computer designed to handle it than by interpretation in a computer designed with a quite different command structure. The mismatch between the IPL's designed and current computers is appreciable: 150-machine cycles are needed to do what one feels should take only 2 or 3 machine cycles. (It will become apparent that the difficulty would not be removed by "compiling" instead of "interpreting," to resurrect a set of well-worn distinctions. The operations that are mismatched to current computers must go on during execution of the program, and hence cannot be compiled out.)
The purpose of this paper is to consider an IPL computer, that is, a computer constructed so that its machine language is an information processing language. This will be called language IPL-VI, for it is the sixth in the series of IPL's that have been designed. This version has not been realized interpretively, but has resulted from considering hardware requirements in the light of programming experience with the previous languages.
Some limitations must be placed on the investigation. This paper will be concerned only with the central computer, the command structure, the form of the machine operations, and the general arrangements of the central hardware. It will neglect completely input-output and secondary storage systems. This does not mean these are unimportant or that they present only simple problems. The problem of secondary storage is difficult enough for current computing systems; it is exceedingly difficult for IPL systems, since in such systems initial memory is not organized in neat block-like packages for ease of shipment to the secondary store.
Nor is it the case that one would place an order for the IPL computer about to be described without further experience with it. Results are not entirely predictable. IPL's are sufficiently different from current computer languages that their utility can be evaluated only after much programming. Moreover, since IPL's are designed to specify large complicated programs, the utility of the linguistic devices incorporated in them cannot be ascertained from simple examples.
One more caution is needed to provide a proper setting for
1Proc. WJCC, pp. 119-128, 1958.