Patent US5386520A successfully refreshed from Google Patents.
US5386520A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Prolog addressing
Assignee: International Business Machines Corp
•
Filing: 1992-08-27
•
Granted: 1995-01-31
•
Expires: 2012-08-27
Abstract
Abstract An improved technique for processing Prolog objects is described. 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. If the one-bit flag indicates that the object word is a type pointer, then the address is available for immediate processing without the unnecessary processing associated with the prior art.
Inventors
- 👤 Marc J. L. Gillet
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-02 22:20
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30181; G06F9/30192; G06F9/34; G06F9/44; G06F9/448; G06F9/4482; G06F9/4484; G06F9/4496
Claims Analysis
Total Claims: 6
Claim 1
Independent Claim
272 words
A method for operating a computer system, having a processor, a memory and registers, 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 which are then stored in the memory, the instructions including object words of type pointer and type descriptor wherein, (i) all object words of type pointer comprise an address of an object with the most significant bit of the object word set to zero, and have no tag field and have a single address field, (ii) all object words of type descriptor include a tag field in the most significant position of the object word, the tag field having the most significant bit set to one; and wherein the step of encoding a predicate further includes the step of storing a type pointer in memory having an object address which points to itself and is representative of a free variable; and (b) executing, using the processor of the computer system, the set of instructions, the executing step further including the step of (c) determining using the processor of the computer system, the type of object word present, the determining step further comprising (i) loading an object word into a register having the same number of bits as the object word, (ii) using the object word of type pointer as an address of an object if the most significant bit in the register is equal to zero, and (iii) using the object word as a type descriptor having a tag field if the most significant bit in the register is equal to one.
Claim 2
Independent Claim
272 words
A method for operating a computer system, having a processor, a memory and registers, 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 which are then stored in the memory, the instructions including object words of type pointer and type descriptor wherein, (i) all object words of type pointer comprise an address of an object with the most significant bit of the object word set to zero, and have no tag field and have a single address field, (ii) all object words of type descriptor include a tag field in the most significant position of the object word, the tag field having the most significant bit set to one; and wherein the step of encoding a predicate further includes the step of storing a type pointer in memory having an object address which points to itself and is representative of a free variable; and (b) executing, using the processor of the computer system, the set of instructions, the executing step further including the step of (c) determining using the processor of the computer system, the type of object word present, the determining step further comprising (i) loading an object word into a register having the same number of bits as the object word, (ii) using the object word of type pointer as an address of an object if the most significant bit in the register is equal to zero, and (iii) using the object word as a type descriptor having a tag field if the most significant bit in the register is equal to one.
Claim 3
Independent Claim
162 words
A method of operating a computer system having a processor, a memory and registers, to execute a set of instructions encoded from a Prolog program, the instructions being stored in the memory and including object words, comprising the steps of: loading, using the processor of the computer system, an object word into a register having the same number of bits as the object word; using the processor of the computer system to process the object word of type pointer as an address of an object having no tag field and having a single address field when the most significant bit in the register is equal to zero which includes the step of storing in the object word an object address which points to itself, thereby representing a free variable; and using the processor of the computer system to process the object word as a type descriptor having a tag field when the most significant bit in the register is equal to one.
Claim 4
Independent Claim
162 words
A method of operating a computer system having a processor, a memory and registers, to execute a set of instructions encoded from a Prolog program, the instructions being stored in the memory and including object words, comprising the steps of: loading, using the processor of the computer system, an object word into a register having the same number of bits as the object word; using the processor of the computer system to process the object word of type pointer as an address of an object having no tag field and having a single address field when the most significant bit in the register is equal to zero which includes the step of storing in the object word an object address which points to itself, thereby representing a free variable; and using the processor of the computer system to process the object word as a type descriptor having a tag field when the most significant bit in the register is equal to one.
Claim 5
Independent Claim
255 words
A system, having a processor, a memory and registers, for processing Prolog programs having predicates, comprising: (a) means for processing a predicate into a set of instructions stored in the memory including object words of type pointer and type descriptor wherein, (i) all object words of type pointer comprise an object with the most significant bit of the object word set to zero, and have no tag field and have a single address field, (ii) all object words of type descriptor include a tag field in the most significant position of the object word, the tag field having the most significant bit set to one; and wherein the means for processing a predicate further includes means for storing a type pointer in memory having an object address which points to itself and is representative of a free variable; and (b) means for executing the set of instructions and determining the type of object word present including, (i) means for loading, using the processor of the computer system, an object word into a register having the same number of bits as the object word, (ii) means for using the processor of the computer system to process the object word of type pointer as an address of an object if the most significant bit in the register is equal to zero, and (iii) means for using the processor of the computer system to process the object word as a type descriptor having a tag field if the most significant bit in the register is equal to one.
Claim 6
Independent Claim
255 words
A system, having a processor, a memory and registers, for processing Prolog programs having predicates, comprising: (a) means for processing a predicate into a set of instructions stored in the memory including object words of type pointer and type descriptor wherein, (i) all object words of type pointer comprise an object with the most significant bit of the object word set to zero, and have no tag field and have a single address field, (ii) all object words of type descriptor include a tag field in the most significant position of the object word, the tag field having the most significant bit set to one; and wherein the means for processing a predicate further includes means for storing a type pointer in memory having an object address which points to itself and is representative of a free variable; and (b) means for executing the set of instructions and determining the type of object word present including, (i) means for loading, using the processor of the computer system, an object word into a register having the same number of bits as the object word, (ii) means for using the processor of the computer system to process the object word of type pointer as an address of an object if the most significant bit in the register is equal to zero, and (iii) means for using the processor of the computer system to process the object word as a type descriptor having a tag field if the most significant bit in the register is equal to one.
References Cited (Backward Citations)
US3754218A
Cited
US4241397A
Cited
US4546432A
Cited
US4835677A
Cited
US5274820A
Cited
US5274821A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1998-01-30 | 1998-08-01 | 1999-01-31 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2002-01-30 | 2002-08-01 | 2003-01-31 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2006-01-30 | 2006-08-01 | 2007-01-31 | $7700.00 | Window Closed / Lapsed |