IP Library Granted Patent US 6,910,207
Granted Patent B2
US 6,910,207 · App. 09/811,637 · Granted Jun 21, 2005

Method of executing a computer program with an interpreter, computer system and computer program product

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,910,207
App. No.
09/811,637
Granted
Jun 21, 2005
Kind
B2
Abstract

An interpreter uses a symbol table containing information for resolving symbolic references in instructions. Memory is provided for storing symbolic reference-result associations, the result of the association having resulted from resolving the symbolic reference of the association for an instruction. The memory is organized in groups of locations, each for results for a different category of instructions. During execution of a particular instruction, that group is consulted which is assigned to the category to which the particular instruction belongs. If that group contains an association for the symbolic reference in the particular instruction. If there is such an association, the result from the association is used as operand data for executing the particular instruction. If there is no such association, the particular symbolic reference is resolved by means of the symbol table. The result from said resolving is used as the operand data for executing the particular instruction and an association between the symbolic reference and the result of said resolving is stored in the group assigned to the category of the particular instruction.

Claims (18)

1. A method of executing a program with a computer system that supports mutually different categories of instruction types, the program containing a particular instruction with a particular symbolic reference to operand data, the method comprising

providing a symbol table containing information for resolving symbolic references in instructions from any of the categories;

providing groups of memory locations, each group being assigned to a respective one of the categories of instructions, each group for storing symbolic reference-result associations, the result of the association having resulted from resolving the symbolic reference of the association for an instruction of the category of instructions to which the group is assigned;

executing the particular instruction, said executing comprising consulting the group assigned to the category to which the particular instruction belongs, to determine whether that group contains an association for the particular symbolic reference and, if there is such an association, using the result from the association as operand data for executing the particular instruction and, if there is no such association, resolving the particular symbolic reference by means of the symbol table, using the result from said resolving as the operand data for executing the particular instruction and storing an association between the symbolic reference and the result of said resolving in the group assigned to the category of the particular instruction.

2. A method according to claim 1 , the computer system having an instruction set that contains a first and second instruction type that both belong to a first one of the respective categories of instructions, the first and second instruction requiring symbolic references of a common type, which is different from a type of symbolic reference required by a further instruction from the instruction set, the further instruction belonging to a further one of the respective categories of instructions.

3. A method according to claim 1 , each result in the associations for at least one of the groups comprising a data size indicator and information identifying an operand value.

4. A method according to claim 1 , the computer system comprising a processor with a native instruction set, the categories of instructions belonging to a virtual machine instruction set, the method comprising translating each virtual machine instruction from the program into one or more translated native instructions and causing the processor to execute the translated native machine instructions with operand data derived from the result.

5. A method according to claim 1 , wherein instructions are executed according to a sequence in which they are stored in a program memory, the method comprising loading the particular instruction from a particular program memory location for said executing and replacing the particular instruction in the particular program memory location by an equivalent instruction having the result as operand, whereby the equivalent instruction is executed instead of the particular instruction when the particular program memory location is used again during execution of the program.

6. A computer program product comprising an interpreter program for causing a processor to execute native instructions translated from virtual machine instructions that contain symbolic references, the virtual machine instructions belonging to mutually different categories of virtual machine instructions, the interpreter program being arranged to cause the processor to

provide a symbol table containing information for resolving symbolic references in virtual machine instructions from any of the categories;

provide groups of memory locations, each group being assigned to a respective one of the categories, each group for storing symbolic reference-result associations, the result of the association having resulted from resolving the symbolic reference of the association for a virtual machine instruction of the category to which the group is assigned;

execute a particular virtual machine instruction comprising a particular symbolic reference, said executing comprising consulting the group assigned to the category to which the particular virtual machine instruction belongs, to determine whether that group contains an association for the particular symbolic reference and, if there is such an association, using the result from the association to provide operand data for executing native instructions and, if there is no such association, resolving the particular symbolic reference by means of the symbol table, using the result from said resolving to provide the operand data for executing the native instructions and storing an association between the symbolic reference and the result of said resolving in the group assigned to the category of the particular instruction.

7. A computer program product according to claim 6 , the virtual machine instructions belonging to a virtual machine instruction set that contains a first and second virtual machine instruction that both belong to a first one of the respective categories, the first and second virtual machine instruction requiring symbolic references of a common type, which is different from a type of symbolic reference required by a further virtual machine instruction from the virtual instruction set, the further instruction belonging to a further one of the respective categories.

8. A data processing device for executing mutually different categories of instructions, the device comprising

a first storage space for a symbol table containing information for resolving symbolic references in instructions from any of the categories;

a plurality of respective second storage spaces, each respective second storage space being assigned to a respective one of the categories of instructions, each respective second storage space for storing symbolic reference-result associations, the result of the association having resulted from resolving that symbolic reference for an instruction of the category of instructions to which the respective second storage space is assigned;

an execution unit arranged to consult, when executing a particular instruction containing a particular symbolic reference, the respective second storage space assigned to the category to which the particular instruction belongs, to determine whether that respective second storage space contains an association for the particular symbolic reference and, if there is such an association, using the result from the association to provide operand data for executing the particular instruction and, if there is no such association, resolving the particular symbolic reference by means of the symbol table, using the result from said resolving to provide the operand data for executing the particular instruction and storing an association between the symbolic reference and the result of said resolving in the respective second storage space assigned to the category of the particular instruction.

9. A device according to claim 8 , the device having an instruction set that contains a first and second instruction that both belong to a first one of the respective categories of instructions, the first and second instruction requiring symbolic references of a common type, which is different from a type of symbolic reference required by a further instruction from the instruction set, the further instruction belonging to a further one of the respective categories of instructions.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2021
From: UNILOC 2017 LLC
To: ATREUS LABS LLC
Reel/Frame 057453/0790 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2018
From: UNILOC LUXEMBOURG S.A.
To: UNILOC 2017 LLC
Reel/Frame 046532/0088 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2018
From: PENDRAGON WIRELESS LLC
To: UNILOC LUXEMBOURG S.A.
Reel/Frame 045338/0601 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2014
From: U.S. PHILIPS CORPORATION
To: KONINKLIJKE PHILIPS ELECTRONICS, N.V.
Reel/Frame 032536/0409 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2012
From: IPG ELECTRONICS 503 LIMITED
To: PENDRAGON WIRELESS LLC
Reel/Frame 028594/0224 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2009
From: KONINKLIJKE PHILIPS ELECTRONICS N.V.
To: IPG ELECTRONICS 503 LIMITED
Reel/Frame 022203/0791 →