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: 8037461
    Abstract: 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: Grant
    Filed: March 27, 2007
    Date of Patent: October 11, 2011
    Assignee: International Business Machines Corporation
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 8006237
    Abstract: 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: Grant
    Filed: March 27, 2007
    Date of Patent: August 23, 2011
    Assignee: International Business Machines Corporation
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 7426722
    Abstract: 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: Grant
    Filed: April 6, 2001
    Date of Patent: September 16, 2008
    Assignee: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 7421686
    Abstract: 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: Grant
    Filed: June 6, 2002
    Date of Patent: September 2, 2008
    Assignee: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 7409680
    Abstract: 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: Grant
    Filed: April 6, 2001
    Date of Patent: August 5, 2008
    Assignee: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 7409681
    Abstract: 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: Grant
    Filed: August 28, 2002
    Date of Patent: August 5, 2008
    Assignee: Transitive Limited
    Inventors: John Graham, Alasdair Rawsthorne, Jason Souloglou
  • Patent number: 7356810
    Abstract: 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: Grant
    Filed: June 6, 2002
    Date of Patent: April 8, 2008
    Assignee: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 7353163
    Abstract: 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: Grant
    Filed: April 6, 2001
    Date of Patent: April 1, 2008
    Assignee: Transitive Limited
    Inventors: Alasdair Rawsthorne, John H. Sandham, Jason Souloglou
  • Patent number: 7346900
    Abstract: 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: Grant
    Filed: June 6, 2002
    Date of Patent: March 18, 2008
    Assignee: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 7328431
    Abstract: 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: Grant
    Filed: June 6, 2002
    Date of Patent: February 5, 2008
    Assignee: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Publication number: 20070256063
    Abstract: 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: Application
    Filed: March 27, 2007
    Publication date: November 1, 2007
    Applicant: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Publication number: 20070250824
    Abstract: 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: Application
    Filed: March 27, 2007
    Publication date: October 25, 2007
    Applicant: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 7210133
    Abstract: 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: Grant
    Filed: June 6, 2002
    Date of Patent: April 24, 2007
    Assignee: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 7203933
    Abstract: 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: Grant
    Filed: April 6, 2001
    Date of Patent: April 10, 2007
    Assignee: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Patent number: 7203934
    Abstract: 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: Grant
    Filed: June 6, 2002
    Date of Patent: April 10, 2007
    Assignee: Transitive Limited
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Publication number: 20040255279
    Abstract: 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: Application
    Filed: May 16, 2003
    Publication date: December 16, 2004
    Inventors: Alasdair Rawsthorne, Jason Souloglou, John Sandham, Daniel Owen, Alex Brown
  • Publication number: 20040210880
    Abstract: 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: Application
    Filed: April 6, 2001
    Publication date: October 21, 2004
    Applicant: Victoria University of Manchester
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Publication number: 20040205733
    Abstract: 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: Application
    Filed: April 6, 2001
    Publication date: October 14, 2004
    Applicant: Victoria University of Manchester
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Publication number: 20030191622
    Abstract: 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: Application
    Filed: April 6, 2001
    Publication date: October 9, 2003
    Applicant: Victoria University of Manchester
    Inventors: Alasdair Rawsthorne, John H. Sandham, Jason Souloglou
  • Publication number: 20030159134
    Abstract: 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: Application
    Filed: June 6, 2002
    Publication date: August 21, 2003
    Inventors: Jason Souloglou, Alasdair Rawsthorne