Patent ID: 7831965

Claim:
A method for executing a JAVA application using a platform-independent virtual machine installed in a memory-constrained device, comprising: receiving an in-place execution file in the memory-constrained device, wherein the in-place execution file is a standard binary image file of the JAVA application comprising a sequence of words, and wherein one or more words in the sequence comprise an unresolved reference that includes in-place encoded metadata specifying attributes of the reference; resolving a reference within a word in the in-place execution file by, obtaining the in-place encoded metadata in the word for the unresolved reference; if a first bit in the in-place encoded metadata has a first value indicating that the in-place encoded metadata includes an offset, replacing an existing offset in the in-place encoded metadata with an adjusted offset, wherein the adjusted offset is computed by summing the existing offset and a difference between an address of the in-place execution file at creation and a load address of the in-place execution file, or if the first bit in the in-place encoded metadata has a second value indicating that the in-place encoded metadata includes a symbolic reference, obtaining a type from the in-place encoded metadata; obtaining a sub-type from the in-place encoded metadata, wherein the sub-type is interpreted based on the obtained type; obtaining specific data from the in-place encoded metadata, wherein the specific data is interpreted based on the obtained sub-type; and using the type, the subtype, and the specific data to look up an address of the referent; and replacing the symbolic reference in the in-place encoded metadata with the address; and executing the in-place execution file in the memory-constrained device.