US2005240907A1PendingUtilityA1

Loading object-oriented computer programs

Assignee: RENOUF TIMOTHYPriority: Sep 14, 1999Filed: Jun 24, 2005Published: Oct 27, 2005
Est. expirySep 14, 2019(expired)· nominal 20-yr term from priority
Inventors:Timothy Renouf
G06F 8/54G06F 9/44594G06F 9/45516G06F 9/445
29
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A method of loading an object-oriented computer program comprises translating the program into compiled code and holding that code, ready for execution, in an execution environment which does not necessarily also hold the original program code. In a preferred embodiment, the original class file is discarded from memory prior to execution of the program. The invention is particularly applicable to wireless communications networks consisting of a plurality of client devices, such as mobile phones, each of which typically has only a small amount of memory available. Using the present invention, the original class file is discarded after compilation, and does not need to be retained in the client device memories.

Claims

exact text as granted — not AI-modified
1 . A method of loading an object-oriented computer program comprising program code provided in the form of classes each containing a plurality of methods, the method comprising compiling a method of the class into compiled code and holding that code, ready for execution, in an execution environment which does not necessarily also hold program code of the said class.  
   
   
       2 . A method as claimed in  claim 1  in which the program code is not loaded into the execution environment.  
   
   
       3 . A method as claimed in  claim 1  in which the program code is loaded into the execution environment, and is then discarded.  
   
   
       4 . A method as claimed in  claim 1  in which the step of compiling the method comprises translating the method into virtual processor code which uses the instruction set of a virtual processor, and then translating the virtual processor code into native code.  
   
   
       5 . A method as claimed in  claim 4  in which the virtual processor code is not loaded into the execution environment.  
   
   
       6 . A method as claimed in  claim 4  in which the virtual processor code is loaded into the execution environment, and is then discarded.  
   
   
       7 . A method as claimed in  claim 1  in which the execution environment resides on a client device, the compiled code being transmitted to the client device across a communications network, the program code not necessarily being so transmitted.  
   
   
       8 . A method as claimed in  claim 4  in which the execution environment resides on a client device, the virtual processor code being transmitted to the client device across a communications network, the program code not necessarily being so transmitted.  
   
   
       9 . A method as claimed in  claim 4  in which the execution environment resides on a client device, the native code being transmitted to the client device across a communications network, the program code not necessarily being so transmitted.  
   
   
       10 . A method as claimed in  claim 1  including compiling a plurality of methods of the class and statically linking them.  
   
   
       11 . A method as claimed in  claim 1  including coupling a plurality of methods of the class and dynamically linking them on loading of the compiled code into the execution environment.  
   
   
       12 . A method as claimed in  claim 1  including compiling a plurality of methods of the class and dynamically binding them on execution of the compiled code in the execution environment.  
   
   
       13 . A method as claimed in  claim 1  in which the classes are Java classes.  
   
   
       14 . A method of executing a computer program comprising loading the program as claimed in  claim 1 , and executing the program in the execution environment.  
   
   
       15 . A computer program adapted to carry out a method as claimed in  claim 1 .  
   
   
       16 . A computer system for loading an object-oriented computer program comprising code provided in the form of classes each containing a plurality of methods, the system defining an execution environment and being operable to compile a method of the class into compiled code and to hold the compiled code, ready for execution, in the execution environment, the execution environment not necessarily also holding program code of the said class.  
   
   
       17 . A distributed computer system comprising a server in communication via a transmission means with a plurality of client devices, each having a respective execution environment for executing an object-oriented computer program comprising program code, provided in the form of classes each containing a plurality of methods, the system including: 
 (a) means for compiling the program code into compiled code;    (b) means for selecting for execution on one of the client devices one of the methods of one of the classes; and    (c) means for transmitting compiled code from the server to the said client device without necessarily transmitting program code of the selected class.    
   
   
       18 . A computer system as claimed in  claim 17  in which the means for compiling the program code comprises means for translating the program code to virtual processor code which uses the instruction set of a virtual processor, and means for translating the virtual processor code to native code.  
   
   
       19 . A computer system as claimed in  claim 18  in which the means for transmitting the compiled code comprises means for transmitting the virtual processor code from the server to the said client device.  
   
   
       20 . A computer system as claimed in  claim 18  in which the means for transmitting the compiled code comprises means for transmitting the native code from the server to the said client device.  
   
   
       21 . A computer system as claimed in  claim 17  in which the transmission means consists of or includes a wireless network.  
   
   
       22 . A computer system as claimed in  claim 21  in which the client devices are mobile phones.  
   
   
       23 . A computer system as claimed in  claim 21  in which the client devices are games consoles.  
   
   
       24 . A computer system as claimed in  claim 21  in which the client devices are hand-held computers.  
   
   
       25 . A computer system for loading an object-oriented computer program comprising program code provided in the form of classes each containing a plurality of methods into a plurality of client devices, the devices each containing a respective execution environment, the system comprising: 
 (a) means for compiling selected methods of selected classes into compiled code; and    (b) means for loading the compiled code, ready for execution, into the respective execution environments without necessarily loading program code into the execution environments.    
   
   
       26 . A computer system as claimed in  claim 25  arranged to statically link the selected methods in the respective execution environments  
   
   
       27 . A computer system adapted to carry out a method as claimed in  claim 1 .  
   
   
       28 . A data carrier which carries a computer program adapted to carry out a method as claimed in  claim 1 .  
   
   
       29 . A data stream representative of a computer program adapted to carry out a method as claimed in  claim 1.

Join the waitlist — get patent alerts

Track US2005240907A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.