Patent GB-1007415-A (GB)
Title: Digital computer
IPC: G06F9/40
Filed: 1964-06-24
Abstract: 1,007,415. Electric digital calculators. INTERNATIONAL BUSINESS MACHINES CORPORATION. June 24, 1964 [July 3, 1963], No. 26047/64. Heading G4A. In a digital computer an instruction is processed by comparing two or more operators therein to determine their relative priority, the operands associated with the operator of higher or highest priority being operated on in accordance with said operator, the operators and operands of lower priority being stored together in a single store until required. The invention simplifies programming by allowing the computer to accept an instruction such as in this form. The computer performs the operations in such an instruction according to the priority order specified by the intrinsic priorities of the operations as modified by the parentheses. The general procedure is to scan the characters in the instruction in turn, comparing each operator (e.g. +, *) with the next and performing the first if of higher or equal priority with respect to the second, but storing the first operator along with its subject (e.g. A is the subject of the first + above) for action later if the first operator is of lower priority than the second. If the first operator is thus stored, the second is compared with the third, to see if it should be performed immediately or stored, and so on. However, if an opening parenthesis is encountered, it, its location and certain data about the state of the circuitry (see below) are stored, and the operators following the opening parenthesis compared in pairs etc. as above, until the corresponding closing parenthesis is encountered when any operator within the parentheses remaining unperformed is performed. Then the operator preceding the opening parenthesis is compared with that following the closing parenthesis to determine priority as before. Obviously nested sets of parentheses can be dealt with in this way. The procedure is such that operators stored for action later are withdrawn for performance as soon as performance becomes possible. Recursive instructions in which a particular mathematical operation is iterated until a specified condition is met can be dealt with using an " until " symbol. The particular embodiment can only deal with the operations of +, -, * (i.e. multiply, / (i.e. divide), = = (i.e. compare) and # (i.e. transfer to memory location, but the principles of the invention could be applied to other operations and some examples are mentioned at the end of the Specification. No details are given as to how any of the operations themselves are performed. The hardware includes the following units: (a) instruction push-down store IPDS, used for storing in connection with operations to be deferred, and which may be part of (b); (b) main memory; (c) instruction register IR (with a control ring to select a character therein); (d) IR decoder for recognizing characters, with outputs as in Fig. 2a (top left), the top output (" address ") being marked when the character received from the IR is the address (or rather half of the address) of an operand, and the fourth output from the top being concerned with a marker character used at the beginnings and ends of instructions; (e) IR word address register, specifying the main memory address of the word in the IR; (f) operator register OR; (g) OR decoder; (h) subject register (with control ring); (i) subject address register; (j) object register (with control ring); (k) object address register; (1) parenthesis control register, consisting of six latches as follows: (i) "conditional do " latch, set when a + or - is stored in the IPDS to indicate that if at a later time another + or - is reached then this preceding + or - in the IPDS can be performed, (ii) " do " latch, set when a *, / or = immediately precedes a left parenthesis, (iii) " may do " latch, set when a + or - immediately precedes a left parenthesis, (iv) three IDR latches settable to indicate types of left parenthesis encountered, mainly for use in connection with " until "-type instructions, and in which 010 means the left parenthesis follows an " until " symbol which has a parenthetical statement as its subject, 001 means the left parenthesis follows an " until " symbol which does not have a parenthetical statement as its subject, and 100 means the left parenthesis does not follow an " until " symbol; (m) a right parenthesis latch, set on detection of same. When a left parenthesis is stored in the IPDS the address of its instruction word, the position of the parenthesis in the word and the contents of the parenthesis control register are stored with it, all these items first being assembled in the object register. Figs. 2a, 2b, 2c show the sequences of actions performed on encountering various characters in the IR.