Patent US5274820A successfully refreshed from Google Patents.
US5274820A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and system for eliminating operation codes from intermediate prolog instructions
Assignee: International Business Machines Corp
•
Filing: 1992-08-19
•
Granted: 1993-12-28
•
Expires: 2012-08-19
Abstract
Abstract An improved architecture for a Prolog interpreter is described. Implicit arguments are substituted for classical explicit arguments. The implicit arguments are supported by preassigned register allocation managed by the interpreter. The interpreter also exploits improved Prolog Object processing in which the first bit of the Prolog object word is used as a flag to indicate whether the object word is a type pointer or type descriptor. Significant improvements in interpreter execution result from the usage of these techniques.
Inventors
- 👤 Marc J. L. Gillet
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-03 18:51
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30145; G06F9/3016; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/443; G06F9/44; G06F9/448; G06F9/4496
Claims Analysis
Total Claims: 14
Claim 1
Independent Claim
150 words
A method for operating a computer system, having a processor and a memory, to process Prolog programs having predicates comprising the steps of: (a) encoding, using the processor of the computer system, a predicate into a set of instructions stored in the memory of the computer system including a simplified instruction consisting of an address of an object and having preceding instructions; (b) determining, using the processor of the computer system, an implied operation code for the simplified instruction from the preceding instructions by using a finite state automata having modes for read, write, built and arg to track the preceding instructions and select the implied operation code as unify constant in read and write modes, put constant in built mode and get constant in arg mode; and (c) executing, using the processor of the computer system, the implied operation code using the address of the object as a parameter.
Claim 2
Independent Claim
150 words
A method for operating a computer system, having a processor and a memory, to process Prolog programs having predicates comprising the steps of: (a) encoding, using the processor of the computer system, a predicate into a set of instructions stored in the memory of the computer system including a simplified instruction consisting of an address of an object and having preceding instructions; (b) determining, using the processor of the computer system, an implied operation code for the simplified instruction from the preceding instructions by using a finite state automata having modes for read, write, built and arg to track the preceding instructions and select the implied operation code as unify constant in read and write modes, put constant in built mode and get constant in arg mode; and (c) executing, using the processor of the computer system, the implied operation code using the address of the object as a parameter.
Claim 3
Dependent Claim
25 words
The method of claim 1 wherein the step of determining an implied operation code further includes using a finite state automata to track the context.
Claim 4
Dependent Claim
33 words
The method of claim 1, wherein the step of determining an implied operation code further includes using a finite state automata having modes for read, write, built and arg to track the context.
Claim 5
Dependent Claim
109 words
The method of claim 1, wherein the memory includes a plurality of Prolog registers, the step of encoding further including: storing at least one unify -- stack instruction and an associated argument, the unify -- stack instruction having no Prolog register specified; and storing at least one pop -- structure F instruction, the pop -- structure F instruction having no Prolog register specified; whereby, the unify -- stack and pop -- structure F instructions are used in place of unify -- variable and get -- structure instructions having Prolog registers specified and the number of Prolog register references in the set of instructions stored for the predicate is reduced.
Claim 6
Dependent Claim
62 words
The method of claim 4, wherein the memory contains a stack, further comprising the steps of: executing the unify -- stack instruction by storing its associated argument on a stack; and executing the pop -- structure F instruction by popping a word from the stack; thereby, reducing the number of Prolog register references in the set of instructions executed for the predicate.
Claim 7
Dependent Claim
46 words
The method of claim 1, wherein the step of encoding further includes storing the address of the object with a first bit equal to zero and storing all non-simplified instructions with a first bit equal to one, thereby making the simplified instruction distinguishable from non-simplified instructions.
Claim 8
Dependent Claim
148 words
A computer system, having a processor and a memory, for processing Prolog programs having predicates comprising: (a) means for encoding, using the processor of the computer system, a predicate into a set of instructions stored in the memory of the computer system including a simplified instruction consisting of an address of an object and having preceding instructions; (b) means for determining, using the processor of the computer system, an implied operation code for the simplified instruction from the preceding instructions using a finite state automata having modes for read, write, built and arg to track the preceding instructions and select the implied operation code as unify constant in read and write modes, put constant in built mode and get constant in arg mode; and (c) means for executing, using the processor of the computer system, the implied operation code using the address of the object as a parameter.
Claim 9
Dependent Claim
148 words
A computer system, having a processor and a memory, for processing Prolog programs having predicates comprising: (a) means for encoding, using the processor of the computer system, a predicate into a set of instructions stored in the memory of the computer system including a simplified instruction consisting of an address of an object and having preceding instructions; (b) means for determining, using the processor of the computer system, an implied operation code for the simplified instruction from the preceding instructions using a finite state automata having modes for read, write, built and arg to track the preceding instructions and select the implied operation code as unify constant in read and write modes, put constant in built mode and get constant in arg mode; and (c) means for executing, using the processor of the computer system, the implied operation code using the address of the object as a parameter.
Claim 10
Dependent Claim
24 words
The system of claim 7 wherein the means for determining an implied operation code further includes a finite state automata for tracking the context.
Claim 11
Dependent Claim
32 words
The system of claim 7, wherein the means for determining an implied operation code further includes a finite state automata having modes for read, write, built and arg to track the context.
Claim 12
Dependent Claim
113 words
The system of claim 7, wherein the memory includes a plurality of Prolog registers, the means for encoding further including: means for storing at least one unify -- stack instruction and an associated argument, the unify -- stack instruction having no Prolog register specified; and means for storing at least one pop -- structure F instruction, the pop -- structure F instruction having no Prolog register specified; whereby, the unify -- stack and pop -- structure F instructions are used in place of unify -- variable and get -- structure instructions having Prolog registers specified and the number of Prolog register references in the set of instructions stored for the predicate is reduced.
Claim 13
Dependent Claim
64 words
The system of claim 10, wherein the memory contains a stack, further comprising: means for executing the unify -- stack instruction by storing its associated argument on a stack; and means for executing the pop -- structure F instruction by popping a word from the stack; whereby, the number of explicit register references in the set of instructions executed for the predicate is reduced.
Claim 14
Dependent Claim
50 words
The system of claim 7 wherein the means for encoding further includes means for storing the address of the object with a first bit equal to zero, and means for storing all non-simplified instructions with a first bit equal to one, thereby making the simplified instruction distinguishable from non-simplified instructions.
References Cited (Backward Citations)
US3754218A
Cited
US4241397A
Cited
US4435753A
Cited
US4546432A
Cited
US4571678A
Cited
US4782444A
Cited
US4953084A
Cited
US4961141A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1996-12-27 | 1997-06-28 | 1997-12-28 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2000-12-27 | 2001-06-28 | 2001-12-28 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2004-12-27 | 2005-06-28 | 2005-12-28 | $7700.00 | Window Closed / Lapsed |