A generalized technique for symbol manipulation and numerical calculation

There is a growing number of systems and proposed systems for arbitrary manipulation of symbolic expressions using computers. The IPL'sys tems of Newell, Shaw, and Simon [1], the L is t System of McCarthy [2] and now the Threaded List modification of Perlis [3], all are based primarily on the fact that symbol manipulation can be carried out by the connection and disconnection of two-sided or branching elements to form lists and list structures (sometimes referred to as tree structures). While such procedures are certainly adequate for the arbitrary manipulation of symbolic data, they do not lend themselves to efficient computation with numerical data, and in fact it seems possible that, by providing a more elaborate structure, even symbolic manipulations may be made much more efficient and concise. There do exist problems which are purely numerical, thereby not requiring symbol manipulation techniques, and there also exist problems which are purely symbolic, thereby not requiring efficient handling of data for computation. But there is a much larger class of problems in which both symbolic manipulation and numerical calculation are required and are inextricably intertwined. This note describes a viewpoint of problems as being composed of interconnected n-component elements of a general type. An unusual use of index registers (though this use is by no means unique, since it is frequently used in subroutine linkages) is described which provides a computer technique that appears to include all known symbol manipulation techniques as simple subcases and is ideally suited to both symbolic and numerical operations. The technique seems to lead to a type of generic structure, called a plex, which is much more powerful than list or tree structures (including them as subcases) and appears to be better suited for the concise representation of the complex interrelations of elements which constitute a "problem". No effort has been made to devise a special sequential language for the system, although it appears that the statement-form languages of ALGOL, FORTRAN, or LISP could be adapted quite suitably. At the present time the language of the system consists of a brief collection of flow diagramming conventions from which one codes directly into machine language. I t is the personal opinion of the author that such a flow diagram language is actually more expressive and better suited to human consumption than a statement form of language. But a statement language, backed up by an efficient compiler, would be a worthwhile aid to actually coding the technique on a computer. Such a compiler is now being written.