Patents by Inventor Alasdair Rawsthorne
Alasdair Rawsthorne has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 8037461Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: March 27, 2007Date of Patent: October 11, 2011Assignee: International Business Machines CorporationInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 8006237Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: March 27, 2007Date of Patent: August 23, 2011Assignee: International Business Machines CorporationInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7426722Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: April 6, 2001Date of Patent: September 16, 2008Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7421686Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine, the method employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: June 6, 2002Date of Patent: September 2, 2008Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7409681Abstract: An execution apparatus (10) such as a user PC identifies that translation of generic code representation is required (e.g. Java bytecode included or referenced as part of a web page downloaded from a content provider (20)), and requests a translation of the generic code representation from a remote translation apparatus (30), i.e. a translation server. A translated native code version of the generic code representation specific to a particular execution environment (10) is identified and sent from the translation apparatus (30) immediately ready for native execution on the execution apparatus (10) at full native speed. This avoids perceived slow start-up and unresponsiveness associated with interpretation or compilation of generic code representation at the execution apparatus (10).Type: GrantFiled: August 28, 2002Date of Patent: August 5, 2008Assignee: Transitive LimitedInventors: John Graham, Alasdair Rawsthorne, Jason Souloglou
-
Patent number: 7409680Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: April 6, 2001Date of Patent: August 5, 2008Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7356810Abstract: A method for generating an intermediate representation of computer program code written for running on a programmable machine comprises: (i) generating a plurality of register objects for holding variable values to be generated by the program code; and (ii) generating a plurality of expression objects representing fixed values and/or relationships between said fixed values and said variable values according to said program code; said objects being organized into a branched tree-like network having all register objects at the lowest basic root or tree-trunk level of the network with no register object feeding into any other register object.Type: GrantFiled: June 6, 2002Date of Patent: April 8, 2008Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7353163Abstract: A method of handling exceptions for use in an emulator (20) performing program code conversion. Registers (X) of a subject machine (11) being emulated (20) are represented by a pair of abstract registers (XA,XB) on the target machine (31), suitably using memory locations of the target machine and/or any available target registers. One of the pair (e.g., Reg XA) holds a definitive value at entry into a section (100) of subject code (10) while the other (e.g., Reg XB) holds a speculative value which is updated during translation and execution of that section of code. Exceptions are handled by recovering the conditions of the virtual subject machine (11) upon entry into the section of subject code (100) using the definitive version of each abstract register (i.e., Reg XA).Type: GrantFiled: April 6, 2001Date of Patent: April 1, 2008Assignee: Transitive LimitedInventors: Alasdair Rawsthorne, John H. Sandham, Jason Souloglou
-
Patent number: 7346900Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. The intermediate representation is generated to include a combination of register objects and expression objects. Register objects represent abstract registers that provide a representation of the state of the first programmable machine based on expected effects of the instructions within the first program code, while expression objects represent elements, such as operations or sub-operations, of the instructions in the first program code. In the intermediate representation, a branched tree-like network is formed in which each register object serves as a basic root of the network and references expression objects to which they relate either directly or indirectly through references from other expression objects.Type: GrantFiled: June 6, 2002Date of Patent: March 18, 2008Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7328431Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: June 6, 2002Date of Patent: February 5, 2008Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Publication number: 20070256063Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: ApplicationFiled: March 27, 2007Publication date: November 1, 2007Applicant: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Publication number: 20070250824Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: ApplicationFiled: March 27, 2007Publication date: October 25, 2007Applicant: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7210133Abstract: A program storage medium storing an emulation system for performing dynamic real time translation of first program code written for the first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: June 6, 2002Date of Patent: April 24, 2007Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7203933Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: April 6, 2001Date of Patent: April 10, 2007Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Patent number: 7203934Abstract: A combination of a first programmable machine and an emulation system operable to perform dynamic real time translation of first program code written for the first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: June 6, 2002Date of Patent: April 10, 2007Assignee: Transitive LimitedInventors: Jason Souloglou, Alasdair Rawsthorne
-
Publication number: 20040255279Abstract: Subject program code is translated to target code in basic block units at run-time in a process wherein translation of basic blocks is interleaved with execution of those translations. A combination of processes designed to enhance the speed and efficiency of run-time translation are applied based on characteristics of particular blocks and include translating a set of contiguous basic blocks prior to execution (“extended basic blocks”) and grouping and ordering of frequently executed basic blocks for translation (“group blocking”).Type: ApplicationFiled: May 16, 2003Publication date: December 16, 2004Inventors: Alasdair Rawsthorne, Jason Souloglou, John Sandham, Daniel Owen, Alex Brown
-
Publication number: 20040210880Abstract: A method for generating an intermediate representation of computer program code written for running on a programmable machine comprises: (i) generating a plurality of register objects for holding variable values to be generated by the program code; and (ii) generating a plurality of expression objects representing fixed values and/or relationships between said fixed values and said variable values according to said program code; said objects being organized into a branched tree-like network having all register objects at the lowest basic root or tree-trunk level of the network with no register object feeding into any other register object.Type: ApplicationFiled: April 6, 2001Publication date: October 21, 2004Applicant: Victoria University of ManchesterInventors: Jason Souloglou, Alasdair Rawsthorne
-
Publication number: 20040205733Abstract: A method for generating an intermediate representation of computer program code written for running on a programmable machine comprises: (i) generating a plurality of register objects for holding variable values to be generated by the program code; and (ii) generating a plurality of expression objects representing fixed values and/or relationships between said fixed values and said variable values according to said program code; said objects being organized into a branched tree-like network having all register objects at the lowest basic root or tree-trunk level of the network with no register object feeding into any other register object.Type: ApplicationFiled: April 6, 2001Publication date: October 14, 2004Applicant: Victoria University of ManchesterInventors: Jason Souloglou, Alasdair Rawsthorne
-
Publication number: 20030191622Abstract: A method of handling exceptions for use in an emulator (20) performing program code conversion. Registers (X) of a subject machine (11) being emulated (20) are represented by a pair of abstract registers (XA,XB) on the target machine (31), suitably using memory locations of the target machine and/or any available target registers. One of the pair (e.g., Reg XA) holds a definitive value at entry into a section (100) of subject code (10) while the other (e.g., Reg XB) holds a speculative value which is updated during translation and execution of that section of code. Exceptions are handled by recovering the conditions of the virtual subject machine (11) upon entry into the section of subject code (100) using the definitive version of each abstract register (i.e., Reg XA).Type: ApplicationFiled: April 6, 2001Publication date: October 9, 2003Applicant: Victoria University of ManchesterInventors: Alasdair Rawsthorne, John H. Sandham, Jason Souloglou
-
Publication number: 20030159134Abstract: A method for generating an intermediate representation of computer program code written for running on a programmable machine comprises: (i) generating a plurality of register objects for holding variable values to be generated by the program code; and (ii) generating a plurality of expression objects representing fixed values and/or relationships between said fixed values and said variable values according to said program code; said objects being organized into a branched tree-like network having all register objects at the lowest basic root or tree-trunk level of the network with no register object feeding into any other register object.Type: ApplicationFiled: June 6, 2002Publication date: August 21, 2003Inventors: Jason Souloglou, Alasdair Rawsthorne