Patents by Inventor John Robert Rose

John Robert Rose 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: 10540148
    Abstract: In an approach, a virtual machine identifies, within a set of instructions, an instruction to load a constant; identifies, based on the instruction to load the constant, a first entry in a data structure that identifies a particular constant type of the one or more constant types, wherein the first entry specifies at least constant data and a first set of instructions for assembling a value or partial value from the constant data; executes the first set of instructions to assemble the value or the partial value from the constant data; and stores a particular value or a reference to the particular value onto a run-time data structure used to pass values or references between sets of instructions executing in a run-time environment, wherein the particular value is based on the value or the particular value assembled from the constant data.
    Type: Grant
    Filed: May 29, 2015
    Date of Patent: January 21, 2020
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz
  • Publication number: 20190324880
    Abstract: Techniques for computing a memory health metric are disclosed. A system computes a memory health metric as a function of estimated entropy in a data set. The system may determine the memory health metric based on compressed and uncompressed sizes of the data set, quantities of values in the data set, and/or patterns of structural relationships within the data set. The system determines whether the memory health metric crosses a threshold value. If the memory health metric crosses the threshold value, the system presents a warning indicating that utilization of the memory is unhealthy.
    Type: Application
    Filed: April 18, 2018
    Publication date: October 24, 2019
    Applicant: Oracle International Corporation
    Inventor: John Robert Rose
  • Publication number: 20190243623
    Abstract: In one approach, a method comprises receiving one or more higher-level instructions specifying to assign a value of a particular value type to a particular container of a plurality of containers, wherein the plurality of containers represent a data structure for maintaining one or more variables during execution of a block of code, wherein at least two containers of the plurality of containers are different sizes; generating one or more lower-level instructions that assign the value to the particular container based on applying one or more assignment rules to the one or more higher-level instructions based on the particular value type and executing the one or more lower-level instructions.
    Type: Application
    Filed: April 15, 2019
    Publication date: August 8, 2019
    Inventors: JOHN ROBERT ROSE, BRIAN GOETZ, GUY STEELE
  • Patent number: 10324741
    Abstract: According to one technique, a virtual machine stores type profiling data for program code, the type profiling data indicating observed types for profiled values within the program code at specific profile points during previous executions of the program code. The virtual machine determines to optimize a particular code segment of the program code. The virtual machine generates a program representation describing a flow of data through different variables within the code segment. The virtual machine assigns speculative types to certain variables in the particular code segment by: assigning speculative types of first variables to respective observed types recorded in the type profiling data; calculating speculative types of second variables, based on propagating the speculative types of the first variables through the program representation.
    Type: Grant
    Filed: April 29, 2015
    Date of Patent: June 18, 2019
    Assignee: Oracle International Corporation
    Inventors: Roland Westrelin, John Robert Rose
  • Patent number: 10261764
    Abstract: In one approach, a method comprises receiving one or more higher-level instructions specifying to assign a value of a particular value type to a particular container of a plurality of containers, wherein the plurality of containers represent a data structure for maintaining one or more variables during execution of a block of code, wherein at least two containers of the plurality of containers are different sizes; generating one or more lower-level instructions that assign the value to the particular container based on applying one or more assignment rules to the one or more higher-level instructions based on the particular value type and executing the one or more lower-level instructions.
    Type: Grant
    Filed: April 29, 2015
    Date of Patent: April 16, 2019
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz, Guy Steele
  • Patent number: 9690709
    Abstract: According to one technique, a virtual machine identifies a first instruction to create a variable handle instance, the first instruction including declaration information that identifies a type of receiver and a variable held by the receiver to which the variable handle instance is configured to provide access. If access to the variable is permissible, the virtual machine creates the variable handle instance comprising constrained functions configured to execute constrained operations on a memory location of the variable. The virtual machine identifies a second instruction that specifies a call to a particular constrained, wherein the second instruction specifies the receiver or is implicitly bound to the receiver. The virtual machine identifies a particular memory location where the instance of the variable is stored and performs the particular constrained function with respect to the particular memory location.
    Type: Grant
    Filed: April 7, 2015
    Date of Patent: June 27, 2017
    Assignee: Oracle International Corporation
    Inventors: Paul Sandoz, Brian Goetz, John Robert Rose
  • Publication number: 20160357586
    Abstract: In one approach, a method comprises: a virtual machine receiving an invocation instruction from a caller that invokes a callee, wherein the caller represents a first set of instructions and the callee represents a second set of instructions, wherein the invocation instruction is associated with a first set of arguments; in response to receiving the invocation instruction and determining that the callee requires one or more additional parameters to be supplied by the virtual machine, the virtual machine causing the one or more additional parameters to be appended to the first set of arguments to create a second set of arguments; wherein the virtual machine prevents the caller from providing the one or more additional arguments that are to be supplied by the virtual machine; the virtual machine invoking the callee using the second set of arguments.
    Type: Application
    Filed: April 4, 2016
    Publication date: December 8, 2016
    Inventor: JOHN ROBERT ROSE
  • Publication number: 20160062878
    Abstract: According to one technique, a virtual machine stores type profiling data for program code, the type profiling data indicating observed types for profiled values within the program code at specific profile points during previous executions of the program code. The virtual machine determines to optimize a particular code segment of the program code. The virtual machine generates a program representation describing a flow of data through different variables within the code segment. The virtual machine assigns speculative types to certain variables in the particular code segment by: assigning speculative types of first variables to respective observed types recorded in the type profiling data; calculating speculative types of second variables, based on propagating the speculative types of the first variables through the program representation.
    Type: Application
    Filed: April 29, 2015
    Publication date: March 3, 2016
    Inventors: ROLAND WESTRELIN, JOHN ROBERT ROSE
  • Publication number: 20160011982
    Abstract: According to one technique, a virtual machine identifies a first instruction to create a variable handle instance, the first instruction including declaration information that identifies a type of receiver and a variable held by the receiver to which the variable handle instance is configured to provide access. If access to the variable is permissible, the virtual machine creates the variable handle instance comprising constrained functions configured to execute constrained operations on a memory location of the variable. The virtual machine identifies a second instruction that specifies a call to a particular constrained, wherein the second instruction specifies the receiver or is implicitly bound to the receiver. The virtual machine identifies a particular memory location where the instance of the variable is stored and performs the particular constrained function with respect to the particular memory location.
    Type: Application
    Filed: April 7, 2015
    Publication date: January 14, 2016
    Inventors: PAUL SANDOZ, BRIAN GOETZ, JOHN ROBERT ROSE
  • Publication number: 20160011992
    Abstract: According to one technique, a virtual machine generates an object configured to provide secure access to memory through one or more memory fencing operations. Through the object, the virtual machine receives a call that indicates a memory location and specifies a particular memory fencing operation of the one or more memory fencing operations to perform with respect to the memory location. The virtual machine causes performance of the particular memory fencing operation with respect to the memory location.
    Type: Application
    Filed: April 7, 2015
    Publication date: January 14, 2016
    Inventors: PAUL SANDOZ, BRIAN GOETZ, JOHN ROBERT ROSE
  • Publication number: 20150363174
    Abstract: In an approach, a virtual machine identifies, within a set of instructions, an instruction to load a constant; identifies, based on the instruction to load the constant, a first entry in a data structure that identifies a particular constant type of the one or more constant types, wherein the first entry specifies at least constant data and a first set of instructions for assembling a value or partial value from the constant data; executes the first set of instructions to assemble the value or the partial value from the constant data; and stores a particular value or a reference to the particular value onto a run-time data structure used to pass values or references between sets of instructions executing in a run-time environment, wherein the particular value is based on the value or the particular value assembled from the constant data.
    Type: Application
    Filed: May 29, 2015
    Publication date: December 17, 2015
    Inventors: JOHN ROBERT ROSE, BRIAN GOETZ
  • Publication number: 20150331681
    Abstract: In one approach, a method comprises receiving one or more higher-level instructions specifying to assign a value of a particular value type to a particular container of a plurality of containers, wherein the plurality of containers represent a data structure for maintaining one or more variables during execution of a block of code, wherein at least two containers of the plurality of containers are different sizes; generating one or more lower-level instructions that assign the value to the particular container based on applying one or more assignment rules to the one or more higher-level instructions based on the particular value type and executing the one or more lower-level instructions.
    Type: Application
    Filed: April 29, 2015
    Publication date: November 19, 2015
    Inventors: JOHN ROBERT ROSE, BRIAN GOETZ, GUY STEELE
  • Patent number: 8561040
    Abstract: In embodiments, prior to compilation into machine code, a preprocessor generates directives by processing a source code and/or bytecode representation of a program and/or selecting default directives. The preprocessor embeds the directives in a bytecode representation of the program or a separate stream associated with the bytecode representation of the program. A just-in-time compiler may compile the bytecode representation into machine code directed by the embedded directives in one pass and/or a bytecode interpreter may interpret the bytecode representation of the program. In some embodiments, a computing device generates bytecodes during execution of a program, selects default directives, and embeds the default directives in the bytecodes or a separate stream associated with the bytecodes prior to compilation of the bytecodes into machine code.
    Type: Grant
    Filed: March 10, 2009
    Date of Patent: October 15, 2013
    Assignee: Oracle America, Inc.
    Inventor: John Robert Rose
  • Publication number: 20100235819
    Abstract: In embodiments, prior to compilation into machine code, a preprocessor generates directives by processing a source code and/or bytecode representation of a program and/or selecting default directives. The preprocessor embeds the directives in a bytecode representation of the program or a separate stream associated with the bytecode representation of the program. A just-in-time compiler may compile the bytecode representation into machine code directed by the embedded directives in one pass and/or a bytecode interpreter may interpret the bytecode representation of the program. In some embodiments, a computing device generates bytecodes during execution of a program, selects default directives, and embeds the default directives in the bytecodes or a separate stream associated with the bytecodes prior to compilation of the bytecodes into machine code.
    Type: Application
    Filed: March 10, 2009
    Publication date: September 16, 2010
    Applicant: Sun Microsystems, Inc.
    Inventor: John Robert Rose