Patent US5386520A successfully refreshed from Google Patents.
← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag