Method of automatically evaluating source language logic condition sets and of compiling machine executable instructions directly therefrom
First Claim
1. A method to be carried out within a digital computer under programmed control for automatically evaluating a logic condition set composed of query statements connected by logical connectors and expressed in high level computer program source statements and for automatically compiling a compact and efficient set of machine executable instructions corresponding thereto, said method comprising the steps of:
- constructing an array of logical linkage codes having at least one entry for each query statement in the condition set with the value of successive entries in the array being assigned in dependence upon the particular type of logical connector adjoining the respectively associated query statement,scanning the resulting array of logical linkage codes in a predetermined order and comparing the values of adjacent entries to determine relative ordering therebetween, andcomputing the necessary addresses for insertion in branch instructions included within said set of machine instructions in dependence upon said relative ordering.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for use under program control in a digital computer for automatically evaluating compiler level language logic condition sets and for compiling machine executable instructions directly therefrom is disclosed. More specifically, a unique method of constructing an array of novel logical linkages is described which permits an especially rapid direct compilation of an efficient and optimum-sized set of machine executable instructions without constructing the usual logic decision tables or going through an extra assembly level language step as is the case with most prior compilers. Rather, the method described generates an array of so-called primary link codes representing logical interrelationships or links between successive source deck cards in a condition set while also generating an associated array of so-called secondary link codes representing logical interrelationships or links between successive entries on the same source deck card in a condition set. These arrays are formed in such a manner that a simple analysis in terms of increasing/decreasing values of the primary and secondary link codes permits direct compilation of machine executable instructions from a computed array of incremental addresses for each term of the condition set. Further, the resulting set of machine instructions is near optimum in terms of both the core storage area utilized and the object program execution time.
33 Citations
24 Claims
-
1. A method to be carried out within a digital computer under programmed control for automatically evaluating a logic condition set composed of query statements connected by logical connectors and expressed in high level computer program source statements and for automatically compiling a compact and efficient set of machine executable instructions corresponding thereto, said method comprising the steps of:
-
constructing an array of logical linkage codes having at least one entry for each query statement in the condition set with the value of successive entries in the array being assigned in dependence upon the particular type of logical connector adjoining the respectively associated query statement, scanning the resulting array of logical linkage codes in a predetermined order and comparing the values of adjacent entries to determine relative ordering therebetween, and computing the necessary addresses for insertion in branch instructions included within said set of machine instructions in dependence upon said relative ordering. - View Dependent Claims (2)
-
-
3. A method to be performed by a digital computer under programmed control for automatically evaluating a logic condition set composed of query statements connected by logical connectors expressed in high level language computer program source statements and for automatically compiling a compact and efficient set of machine executable instructions corresponding thereto, each of said query statements comprising two terms corresponding to data fields and a relational operator relating the two fields such that an evaluation of the stated relation will provide a true or false result,
said method comprising the steps of: -
generating a primary link array of linkage codes with at least one entry for each query statement and with the value of successive entries in the array being sequentially assigned starting from a predetermined value for the initial entry and increasing only when the first logical connector in a newly encountered source statement is effectively considered an AND connector, generating a secondary link array corresponding to said primary link array of linkage codes with at least one entry for each query statement and with the value of successive entries in the array being sequentially assigned starting from a predetermined value for the initial entry and being increased only when an effective AND connector is encountered between query statements on the same source statement and being reset to the predetermined initial value each time a new source statement is encountered within said condition set, scanning the resulting primary and secondary link arrays in reverse order and comparing values of adjacent entries in each array to determine the relative ordering therebetween, and computing addresses for insertion in said set of machine instructions in dependence upon said relative ordering. - View Dependent Claims (4, 5, 6, 7, 8)
-
-
9. The new use of general purpose electronic data processor for automatically evaluating a logic condition set composed of query statements connected by logical connectors and expressed in high level computer program source statements and for automatically compiling a compact and efficient set of machine executable instructions corresponding thereto, said new use comprising the steps of:
-
constructing an array of logical linkage codes having at least one entry for each query statement in the condition set with the value of successive entries in the array being assigned in dependence upon the particular type of logical connector adjoining the respectively associated query statement, scanning the resulting array of logical linkage codes in a predetermined order and comparing the values of adjacent entries to determine relative ordering therebetween, and computing the necessary addresses for insertion in branch instructions included within said set of machine instructions in dependence upon said relative ordering. - View Dependent Claims (10)
-
-
11. The new use of a general purpose electronic data processor for automatically evaluating a logic condition set composed of query statements connected by logical connectors expressed in high level language computer program source statements and for automatically compiling a compact and efficient set of machine executable instructions corresponding thereto, each of said query statements comprising two terms corresponding to data fields and a relational operator relating the two fields such that an evaluation of the stated relation will provide a true or false result,
said new use comprising the steps of: -
generating a primary link array of linkage codes with at least one entry for each query statement and with the value of successive entries in the array being sequentially assigned starting from a predetermined value for the initial entry and increasing only when the first logical connector in a newly encountered source statement is effectively considered an AND connector, generating a secondary link array corresponding to said primary link array of linkage codes with at least one entry for each query statement and with the value of successive entries in the array being sequentially assigned starting from a predetermined value for the initial entry and being increased only when an effective AND connector is encountered between query statements on the same source statement and being reset to the predetermined initial value each time a new source statement is encountered within said condition set, scanning the resulting primary and secondary link arrays in reverse order and comparing values of adjacent entries in each array to determine the relative ordering therebetween, and computing addresses for insertion in said set of machine instructions in dependence upon said relative ordering. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A digital computer under programmed control for automatically evaluating a logic condition set composed of query statements connected by logical connectors and expressed in high level computer program source statements and for automatically compiling a compact and efficient set of machine executable instructions corresponding thereto, said computer comprising:
-
means for constructing an array of logical linkage codes having at least one entry for each query statement in the condition set with the value of successive entries in the array being assigned in dependence upon the particular type of logical connector adjoining the respectively associated query statement, means for scanning the resulting array of logical linkage codes in a predetermined order and comparing the values of adjacent entries to determine relative ordering therebetween, and means for computing the necessary addresses for insertion in branch instructions included within said set of machine instructions in dependence upon said relative ordering. - View Dependent Claims (18)
-
-
19. A digital computer under programmed control for automatically evaluating a logic condition set composed of query statements connected by logical connectors expressed in high level language computer program source statements and for automatically compiling a compact and efficient set of machine executable instructions corresponding thereto, each of said query statements comprising two terms corresponding to data fields and a relational operator relating the two fields such that an evaluation of the stated relation will provide a true or false result,
said computer comprising: -
means generating a primary link array of linkage codes with at least one entry for each query statement and with the value of successive entries in the array being sequentially assigned starting from a predetermined value for the initial entry and increasing only when the first logical connector in a newly encountered source statement is effectively considered an AND connector, means for generating a secondary link array corresponding to said primary link array of linkage codes with at least one entry for each query statement and with the value of successive entries in the array being sequentially assigned starting from a predetermined value for the initial entry and being increased only when an effective AND connector is encountered between query statements on the same source statement and being reset to the predetermined initial value each time a new source statement is encountered within said condition set, means for scanning the resulting primary and secondary link arrays in reverse order and comparing values of adjacent entries in each array to determine the relative ordering therebetween, and means for computing addresses for insertion in said set of machine instructions in dependence upon said relative ordering. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification