Patents by Inventor Guy Steele

Guy Steele 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: 11263541
    Abstract: Systems and methods are disclosed to build and execute a decision system based on multiple machine learned decision models. In embodiments, the decision system performs a hashing technique to reduce relevant features of the input data into a feature vector for each decision model. The feature vector reduces the dimensionality of the feature universe of the input data, and its use allows the decision models to be trained and executed using less computing resources. In embodiments, the decision system implements an ensembled decision model that makes decisions based on a combination function that combines the decision results of the individual models in the ensemble. The decision models employ different hashing techniques to hash the input features differently, so that errors caused by the feature hashing of individual models are reduced in the aggregate.
    Type: Grant
    Filed: September 27, 2017
    Date of Patent: March 1, 2022
    Assignee: Oracle International Corporation
    Inventors: Jean-Baptiste Tristan, Adam Pocock, Michael Wick, Guy Steele
  • Patent number: 11175896
    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 15, 2019
    Date of Patent: November 16, 2021
    Assignee: Oracle International Corporation
    Inventors: John Robert Rose, Brian Goetz, Guy Steele
  • Patent number: 10860829
    Abstract: A novel data-parallel algorithm is presented for topic modeling on a highly-parallel hardware architectures. The algorithm is a Markov-Chain Monte Carlo algorithm used to estimate the parameters of the LDA topic model. This algorithm is based on a highly parallel partially-collapsed Gibbs sampler, but replaces a stochastic step that draws from a distribution with an optimization step that computes the mean of the distribution directly and deterministically. This algorithm is correct, it is statistically performant, and it is faster than state-of-the art algorithms because it can exploit the massive amounts of parallelism by processing the algorithm on a highly-parallel architecture, such as a GPU. Furthermore, the partially-collapsed Gibbs sampler converges about as fast as the collapsed Gibbs sampler and identifies solutions that are as good, or even better, as the collapsed Gibbs sampler.
    Type: Grant
    Filed: January 16, 2015
    Date of Patent: December 8, 2020
    Assignee: Oracle International Corporation
    Inventors: Jean-Baptiste Tristan, Guy Steele
  • 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: 10310827
    Abstract: Techniques for flow-based scoping are disclosed. A first code segment in a sequence of same-level code segments encapsulates a first lower-level lexical scope. The first lower-level scope is inclusive of scoping provided for the sequence of same-level code segments. The first code segment comprises a condition and an uninitialized variable. If executed, the first code segment causes the condition to be evaluated. If the condition is satisfied, the uninitialized variable is initialized and made available only within the first lower-level lexical scope. If a second code segment (a) references the uninitialized variable and (b) is in the sequence of same-level code segments or in a second lower-level lexical scope outside of the first lower-level lexical scope, an error message is presented indicating that the uninitialized variable is out of scope for the second code segment.
    Type: Grant
    Filed: April 6, 2018
    Date of Patent: June 4, 2019
    Assignee: Oracle International Corporation
    Inventors: Gavin Mark Bierman, Brian Goetz, Guy Steele
  • 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
  • Publication number: 20190095805
    Abstract: Systems and methods are disclosed to build and execute a decision system based on multiple machine learned decision models. In embodiments, the decision system performs a hashing technique to reduce relevant features of the input data into a feature vector for each decision model. The feature vector reduces the dimensionality of the feature universe of the input data, and its use allows the decision models to be trained and executed using less computing resources. In embodiments, the decision system implements an ensembled decision model that makes decisions based on a combination function that combines the decision results of the individual models in the ensemble. The decision models employ different hashing techniques to hash the input features differently, so that errors caused by the feature hashing of individual models are reduced in the aggregate.
    Type: Application
    Filed: September 27, 2017
    Publication date: March 28, 2019
    Inventors: Jean-Baptiste Tristan, Adam Pocock, Michael Wick, Guy Steele
  • Publication number: 20180293058
    Abstract: Techniques for flow-based scoping are disclosed. A first code segment in a sequence of same-level code segments encapsulates a first lower-level lexical scope. The first lower-level scope is inclusive of scoping provided for the sequence of same-level code segments. The first code segment comprises a condition and an uninitialized variable. If executed, the first code segment causes the condition to be evaluated. If the condition is satisfied, the uninitialized variable is initialized and made available only within the first lower-level lexical scope. If a second code segment (a) references the uninitialized variable and (b) is in the sequence of same-level code segments or in a second lower-level lexical scope outside of the first lower-level lexical scope, an error message is presented indicating that the uninitialized variable is out of scope for the second code segment.
    Type: Application
    Filed: April 6, 2018
    Publication date: October 11, 2018
    Applicant: Oracle International Corporation
    Inventors: Gavin Mark Bierman, Brian Goetz, Guy Steele
  • Publication number: 20160210718
    Abstract: A novel data-parallel algorithm is presented for topic modeling on a highly-parallel hardware architectures. The algorithm is a Markov-Chain Monte Carlo algorithm used to estimate the parameters of the LDA topic model. This algorithm is based on a highly parallel partially-collapsed Gibbs sampler, but replaces a stochastic step that draws from a distribution with an optimization step that computes the mean of the distribution directly and deterministically. This algorithm is correct, it is statistically performant, and it is faster than state-of-the art algorithms because it can exploit the massive amounts of parallelism by processing the algorithm on a highly-parallel architecture, such as a GPU. Furthermore, the partially-collapsed Gibbs sampler converges about as fast as the collapsed Gibbs sampler and identifies solutions that are as good, or even better, as the collapsed Gibbs sampler.
    Type: Application
    Filed: January 16, 2015
    Publication date: July 21, 2016
    Inventors: Jean-Baptiste Tristan, Guy Steele
  • 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
  • Publication number: 20070157214
    Abstract: One embodiment of the present invention provides a system that facilitates performing operations on a lock-free double-ended queue (deque). This deque is implemented as a doubly-linked list of nodes formed into a ring, so that node pointers in one direction form an inner ring, and node pointers in the other direction form an outer ring. The deque has an inner hat, which points to a node next to the last occupied node along the inner ring, and an outer hat, which points to a node next to the last occupied node along the outer ring. The system uses a double compare-and-swap (DCAS) operation while performing pop and push operations onto either end of the deque, as well as growing and shrinking operations to change the number of nodes that are in the ring used by the deque.
    Type: Application
    Filed: January 3, 2006
    Publication date: July 5, 2007
    Inventors: Paul Martin, Guy Steele, Christine Flood
  • Publication number: 20060242215
    Abstract: A floating point max/min circuit for determining the maximum or minimum of two floating point operands includes a first analysis circuit configured to determine a format of a first floating point operand of the two floating point operands based upon floating point status information encoded within the first floating point operand, a second analysis circuit configured to determine a format of a second floating point operand of the two floating point operands based upon floating point status information encoded within the second floating point operand, a decision circuit, coupled to the first analysis circuit and to the second analysis circuit and responding to a function control signal that indicates the threshold condition is one of a maximum of the two floating point operands and a minimum of the two floating point operands, for generating at least one assembly control signal based on the format of a first floating point operand, the format of a second floating point operand, and the function control signal,
    Type: Application
    Filed: March 31, 2006
    Publication date: October 26, 2006
    Inventor: Guy Steele
  • Publication number: 20060218561
    Abstract: A methodology has been discovered for transforming garbage collection-dependent algorithms, shared object implementations and/or concurrent software mechanisms into a form that does not presume the existence of an independent, or execution environment provided, garbage collector. Algorithms, shared object implementations and/or mechanisms designed or transformed using techniques described herein provide explicit reclamation of storage using lock-free pointer operations. Transformations can be applied to lock-free algorithms and shared object implementations and preserve lock-freedom of such algorithms and implementations. As a result, existing and future lock-free algorithms and shared object implementations that depend on a garbage-collected execution environment can be exploited in environments that do not provide garbage collection.
    Type: Application
    Filed: January 30, 2006
    Publication date: September 28, 2006
    Inventors: Mark Moir, David Detlefs, Simon Doherty, Maurice Herlihy, Victor Luchangco, Paul Martin, Guy Steele
  • Publication number: 20060206548
    Abstract: A floating point comparator circuit for comparing a plurality of floating point operands includes a plurality of analysis circuits, one for each of the floating point operands, configured to determine a format of each of the floating point operands based upon floating point status information encoded within each of the floating point operands, and a result generator circuit coupled to the analysis circuits, the result generator circuit configured to generate a result signal based on the format determined by each analysis circuit and based on a comparative relationship among the floating point operands. The format of each of the floating point operands may be from a group comprising: not-a-number (NaN), infinity, normalized, denormalized, zero, invalid operation, overflow, underflow, division by zero, exact, and inexact.
    Type: Application
    Filed: March 31, 2006
    Publication date: September 14, 2006
    Inventor: Guy Steele
  • Publication number: 20060179104
    Abstract: A floating point total order comparator circuit for comparing a first floating point operand and a second floating point operand includes a first analysis circuit for determining a format of the first floating point operand based upon floating point status information encoded within the first floating point operand, a second analysis circuit for determining a format of the second floating point operand based upon floating point status information encoded within the second floating point operand, and a result generator circuit coupled to the analysis circuits for producing a result indicating a total order comparative relationship between the first floating point operand and the second floating point operand based on the format of the first floating point operand and the format of the second floating point operand. The result can condition the outcome of a floating point instruction.
    Type: Application
    Filed: March 31, 2006
    Publication date: August 10, 2006
    Inventor: Guy Steele
  • Publication number: 20060161737
    Abstract: In some embodiments, a Hat Trick deque requires only a single DCAS for most pushes and pops. The left and right ends do not interfere with each other until there is one or fewer items in the queue, and then a DCAS adjudicates between competing pops. By choosing a granularity greater than a single node, the user can amortize the costs of adding additional storage over multiple push (and pop) operations that employ the added storage. A suitable removal strategy can provide similar amortization advantages. The technique of leaving spare nodes linked in the structure allows an indefinite number of pushes and pops at a given deque end to proceed without the need to invoke memory allocation or reclamation so long as the difference between the number of pushes and the number of pops remains within given bounds. Both garbage collection dependent and explicit reclamation implementations are described.
    Type: Application
    Filed: March 20, 2006
    Publication date: July 20, 2006
    Inventors: Paul Martin, David Detlefs, Alexander Garthwaite, Guy Steele, Mark Moir
  • Patent number: 6101580
    Abstract: In computer systems which do not inherently distinguish between references and primitive values within a program stack a method and apparatus to assist exact garbage collection techniques utilizes a stack tag cache which operates in conjunction with a program stack and supplies a tag item for every entry in the process stack. The value of a tag item indicates whether the stack entry is either a reference to another memory location or a primitive value, i.e. integer or floating point number. The arrangements and values of the tag items are correlated with changes to the program stack. The stack tag cache includes facilities for swapping the contents of the cache in the event of a trap or context switch, as well as means for redundantly verifying the tag value with intended instruction operand types.
    Type: Grant
    Filed: April 23, 1997
    Date of Patent: August 8, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Ole Agesen, Steve Heller, Michael O'Connor, Guy Steele, Marc Tremblay
  • Patent number: 5700026
    Abstract: A vehicle body lowering system for installation in a motor vehicle having a wheeled carriage, a cargo/passenger compartment body, a door in the passenger compartment body for cargo loading and unloading or passenger embarking and debarking, and a spring suspension for the buoyant support of the body above the carriage between a lower position and an upper position. The components of the vehicle body lowering system include a hydraulic cylinder mounted within the body, a power source, a manually actuated control for energizing and deenergizing the power source, and an interconnection extending through the body between the cylinder and the carriage. The interconnection is characterized by an operative condition at which the body is in the lower position under the control of the power source, and an inoperative condition at which the body is freely subject to the buoyant support of the spring suspension.
    Type: Grant
    Filed: November 8, 1996
    Date of Patent: December 23, 1997
    Assignee: Safe-T-Vans, Inc.
    Inventors: Wojciech T. Zalewski, Guy Steele, Christopher J. MacKenzie
  • Patent number: 5573266
    Abstract: The vehicle body lowering system of the present invention is installed in a motor vehicle having a wheeled carriage, a cargo/passenger compartment body, a door in the passenger compartment body for cargo loading and unloading or passenger embarking and debarking, and a spring suspension for the buoyant support of the body above the carriage between a lower position and an upper position. The components of the vehicle body lowering system include a drive for forcing the body into the lower position, where the drive comprises a power source and an interconnection between the body and the carriage, and a manually actuated control for energizing and deenergizing the power source. The interconnection is characterized by an operative condition at which the body is in the lower position under the control of the power source, and an inoperative condition at which the body is freely subject to the buoyant support of the spring suspension.
    Type: Grant
    Filed: February 13, 1995
    Date of Patent: November 12, 1996
    Assignee: Safe-T-Vans, Inc.
    Inventors: Wojciech T. Zalewski, Guy Steele, Christopher J. Mackenzie