Patents by Inventor Maurizio Cimadamore

Maurizio Cimadamore 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: 10303467
    Abstract: A code analysis tool identifies a first and a second proposed code transformation (PCT) for respective expressions within a refactoring candidate section of source code, such that at least one PCT would result in an exercise of a target typing mechanism of the programming language being used. The determination of the data type of at least one of the expressions depends on the determination of the data type of the other. The tool generates a plurality of PCT combinations for the refactoring candidate section. In response to determining that a particular PCT combination meets acceptance criteria, a refactoring option which includes that PCT combination is recommended.
    Type: Grant
    Filed: April 13, 2015
    Date of Patent: May 28, 2019
    Assignee: Oracle International Corporation
    Inventors: Maurizio Cimadamore, Brian Goetz
  • Publication number: 20190129699
    Abstract: A system and method can support compatibility checking in a programming language environment. The programming language environment can check whether a target type associated with an expression in the programming language environment is functional, wherein the target type is functional when it has exactly one method meeting one or more criteria that define that method as relevant in a counting system. Then, the programming language environment can derive a function descriptor from the target type, which is context-dependent. Furthermore, the programming language environment can type-check the expression with the function descriptor associated with the target type.
    Type: Application
    Filed: December 27, 2018
    Publication date: May 2, 2019
    Applicant: Oracle International Corporation
    Inventors: Brian Goetz, Daniel Smith, Maurizio Cimadamore
  • Patent number: 10275226
    Abstract: Techniques herein process type variables to transform type parameters (TPs) of generic classes. In an embodiment, a computer stores a generic class attribute associated with a definition of a generic class. The generic class attribute includes a type variable declaration (TVD) for each TP. Each TVD is associated with usage entries (VUEs) within the definition. Each VUE indicates an actual type for use, within a portion of the definition, as the TP represented by the VUE. Based on how a particular portion of the definition uses a particular TP represented by a particular TVD of a particular VUE, the computer determines whether the particular VUE is to be assigned to a particular type or erased. In response to determining that the particular VUE is to be erased, the computer configures the particular VUE to indicate erasure. Otherwise, the computer assigns the particular type to the particular VUE.
    Type: Grant
    Filed: October 24, 2016
    Date of Patent: April 30, 2019
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Maurizio Cimadamore, Brian Goetz
  • Patent number: 10209970
    Abstract: A system and method can support compatibility checking in a programming language environment. The programming language environment can check whether a target type associated with an expression in the programming language environment is functional, wherein the target type is functional when it has exactly one method meeting one or more criteria that define that method as relevant in a counting system. Then, the programming language environment can derive a function descriptor from the target type, which is context-dependent. Furthermore, the programming language environment can type-check the expression with the function descriptor associated with the target type.
    Type: Grant
    Filed: January 10, 2017
    Date of Patent: February 19, 2019
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, Daniel Smith, Maurizio Cimadamore
  • Publication number: 20190034178
    Abstract: Techniques for compiling non-native constants are disclosed. While compiling source code instructions, a compiler determines that a particular source code expression is associated with a command to the compiler to resolve the particular source code expression as a constant during compilation. The compiler is not configured to recognize the particular source code expression as constant without the command signaling to the compiler that the particular source code expression is constant. Based on the command, the compiler executes the particular source code expression to obtain a constant value. The compiler generates compiled instructions based on the source code instructions, in which the constant value is substituted for at least one reference to the particular source code expression.
    Type: Application
    Filed: February 28, 2018
    Publication date: January 31, 2019
    Applicant: Oracle International Corporation
    Inventors: Brian Goetz, Maurizio Cimadamore, Vicente A. Romero Zaldivar
  • Patent number: 10127133
    Abstract: A compiler, IDE or other code analyzer may determine whether an instance variable declaration assignment is redundant. The code analyzer may also take action based on that determination. A code analyzer may be able to determine with certainty that a particular instance variable initialization or assignment is definitely redundant. The code analyzer may cause a compiler to automatically elide the redundant assignment from compiled source code. The code analyzer may be able to determine with certainty that a particular assignment is definitely not redundant. Additionally, a code analyzer may not be able to determine with certainty whether an instance variable assignment is definitely redundant or definitely not redundant. Additionally, the code analyzer may report a warning or other informative message indicating the redundancy property of the assignment, thus alerting the programming to a (possibly) redundant assignment.
    Type: Grant
    Filed: April 8, 2016
    Date of Patent: November 13, 2018
    Assignee: Oracle International Corporation
    Inventors: Chris J. Hegarty, Maurizio Cimadamore
  • Publication number: 20180307468
    Abstract: Operations include (a) identifying bounds corresponding to two or more inference variables corresponding to a nested method invocation context, (b) determining that resolution of a first inference variable can be determined as a function of a resolution of a second inference variable, (c) propagating bounds corresponding to the second inference variable from the nested method invocation context to an outer method invocation context without propagating bounds corresponding to the first inference variable, (d) resolving a constraint set to resolve the second inference variable, and (e) resolving the first inference variable based on the resolution of the second inference variable.
    Type: Application
    Filed: May 10, 2018
    Publication date: October 25, 2018
    Applicant: Oracle International Corporation
    Inventors: Maurizio Cimadamore, Daniel Smith
  • Patent number: 10055208
    Abstract: Operations include a compilation process and a runtime process. A compiler compiles code to generate virtual machine instructions. The compiler further generates information referencing respective parameter types of the parameters of a target virtual machine instruction. The compiler stores the information external to and in association with the target virtual machine instruction. The information may be included in another virtual machine instruction that precedes the target virtual machine instruction. A runtime environment processes the target virtual machine instruction based on the information stored external to and in association with the target virtual machine instruction. Parameter types referenced by the external information override parameter types that are (a) referenced by the target virtual machine instruction itself, (b) deduced by the runtime environment and/or (c) stored directly in association with the parameter values.
    Type: Grant
    Filed: January 25, 2016
    Date of Patent: August 21, 2018
    Assignee: Oracle International Corporation
    Inventors: Michael Haupt, Maurizio Cimadamore, Brian Goetz
  • Publication number: 20180232217
    Abstract: Operations include a compilation process and a runtime process. A compiler compiles code to generate virtual machine instructions. The compiler further generates information referencing respective parameter types of the parameters of a target virtual machine instruction. The compiler stores the information external to and in association with the target virtual machine instruction. The information may be included in another virtual machine instruction that precedes the target virtual machine instruction. A runtime environment processes the target virtual machine instruction based on the information stored external to and in association with the target virtual machine instruction. Parameter types referenced by the external information override parameter types that are (a) referenced by the target virtual machine instruction itself, (b) deduced by the runtime environment and/or (c) stored directly in association with the parameter values.
    Type: Application
    Filed: April 9, 2018
    Publication date: August 16, 2018
    Applicant: Oracle International Corporation
    Inventors: Michael Haupt, Maurizio Cimadamore, Brian Goetz
  • Patent number: 10015065
    Abstract: Based on network route tracing data from a set of monitored computing nodes, pairs of network analysis agents that are allocated to monitored computing nodes that are linked by at least a target number of non-redundant network paths are identified. The identified pairs of agents are de-allocated from the set of monitored computing nodes. New pairs of agents are allocated to the set of monitored computing nodes to replace the de-allocated pairs of agents.
    Type: Grant
    Filed: September 29, 2014
    Date of Patent: July 3, 2018
    Assignee: Amazon Technolgies, Inc.
    Inventors: Alessandro Raffio, Neil Michael Cowzer, Maurizio Cimadamore
  • Patent number: 10001978
    Abstract: Operations include (a) identifying bounds corresponding to two or more inference variables corresponding to a nested method invocation context, (b) determining that resolution of a first inference variable can be determined as a function of a resolution of a second inference variable, (c) propagating bounds corresponding to the second inference variable from the nested method invocation context to an outer method invocation context without propagating bounds corresponding to the first inference variable, (d) resolving a constraint set to resolve the second inference variable, and (e) resolving the first inference variable based on the resolution of the second inference variable.
    Type: Grant
    Filed: December 17, 2015
    Date of Patent: June 19, 2018
    Assignee: Oracle International Corporation
    Inventors: Maurizio Cimadamore, Daniel Smith
  • Publication number: 20180081648
    Abstract: Operations include determining a compile-time representation of a particular type. A request for the compile-time representation of the particular type comprises a source representation of the particular type. Based on and subsequent to receiving the request, a source representation of a source code file comprising the source representation of the particular type is generated. The source representation of the source code file is converted to a compile-time representation of the source code file. The compile-time representation of the particular type is derived from the source time representation of the source code file. The source code file may also be compiled to generate a set of compiled code. The set of compiled code may be loaded into a virtual machine for generating a runtime representation of the set of compiled code. A runtime representation of the particular type is derived from the runtime representation of the set of compiled code.
    Type: Application
    Filed: March 24, 2017
    Publication date: March 22, 2018
    Applicant: Oracle International Corporation
    Inventors: Vicente A. Romero Zaldivar, Maurizio Cimadamore, Jonathan J. Gibbons
  • Patent number: 9891900
    Abstract: Generic method specialization represents the ability to specialize generic methods over various types. When implementing generic method specialization an annotated class file may include a generic method declaration that is annotated with specialization metadata indicating elements of the generic method to be adjusted during specialization. The annotated method may be usable directly as an erased method implementation (e.g., to load the method when instantiated with reference types) and may also be usable as a template for specialization. When a generic method is being prepared for execution, such as when it is first invoked during runtime, a specialization method generator function may be used to specialize the generic method based on the specialization metadata in the generic method declaration. The specialization method generator function may use the annotated generic method declaration as a template for specialization.
    Type: Grant
    Filed: February 26, 2016
    Date of Patent: February 13, 2018
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, John R. Rose, Maurizio Cimadamore
  • Publication number: 20170364339
    Abstract: Generic method specialization represents the ability to specialize generic methods over various types. When implementing generic method specialization an annotated class file may include a generic method declaration that is annotated with specialization metadata indicating elements of the generic method to be adjusted during specialization. The annotated method may be usable directly as an erased method implementation (e.g., to load the method when instantiated with reference types) and may also be usable as a template for specialization. When a generic method is being prepared for execution, such as when it is first invoked during runtime, a specialization method generator function may be used to specialize the generic method based on the specialization metadata in the generic method declaration. The specialization method generator function may use the annotated generic method declaration as a template for specialization.
    Type: Application
    Filed: February 26, 2016
    Publication date: December 21, 2017
    Inventors: Brian Goetz, John R. Rose, Maurizio Cimadamore
  • Publication number: 20170293547
    Abstract: A compiler, IDE or other code analyzer may determine whether an instance variable declaration assignment is redundant. The code analyzer may also take action based on that determination. A code analyzer may be able to determine with certainty that a particular instance variable initialization or assignment is definitely redundant. The code analyzer may cause a compiler to automatically elide the redundant assignment from compiled source code. The code analyzer may be able to determine with certainty that a particular assignment is definitely not redundant. Additionally, a code analyzer may not be able to determine with certainty whether an instance variable assignment is definitely redundant or definitely not redundant. Additionally, the code analyzer may report a warning or other informative message indicating the redundancy property of the assignment, thus alerting the programming to a (possibly) redundant assignment.
    Type: Application
    Filed: April 8, 2016
    Publication date: October 12, 2017
    Inventors: Chris J. Hegarty, Maurizio Cimadamore
  • Publication number: 20170269907
    Abstract: A method for software compilation is disclosed. A compiler may identify features of source code which are unavailable in a target environment for the compilation. The compiler may then translate the identified features into modified features in response to determining that projections for the identified features into the target environment are available. The compiler may then compile the source code dependent upon the modified features.
    Type: Application
    Filed: March 18, 2016
    Publication date: September 21, 2017
    Inventors: Brian Goetz, Maurizio Cimadamore
  • Patent number: 9733907
    Abstract: A system and method can support compiler testing in a programming language environment. The programming language environment can include a testing framework that can provide a program template based on a programming language that is targeted by a compiler implementation to be tested. Furthermore, the testing framework can generate a plurality of sub-tests that contains different variations in the test space based on the program template, and can use the compiler implementation to be tested to compile the generated sub-tests. Finally, the testing framework can check the output of the compiler implementation to be tested against the expected output for the generated sub-tests.
    Type: Grant
    Filed: November 14, 2012
    Date of Patent: August 15, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Brian Goetz, Jonathan Gibbons, Maurizio Cimadamore
  • Publication number: 20170147302
    Abstract: A system and method can support compatibility checking in a programming language environment. The programming language environment can check whether a target type associated with an expression in the programming language environment is functional, wherein the target type is functional when it has exactly one method meeting one or more criteria that define that method as relevant in a counting system. Then, the programming language environment can derive a function descriptor from the target type, which is context-dependent. Furthermore, the programming language environment can type-check the expression with the function descriptor associated with the target type.
    Type: Application
    Filed: January 10, 2017
    Publication date: May 25, 2017
    Inventors: BRIAN GOETZ, DANIEL SMITH, MAURIZIO CIMADAMORE
  • Publication number: 20170131982
    Abstract: Operations include (a) identifying bounds corresponding to two or more inference variables corresponding to a nested method invocation context, (b) determining that resolution of a first inference variable can be determined as a function of a resolution of a second inference variable, (c) propagating bounds corresponding to the second inference variable from the nested method invocation context to an outer method invocation context without propagating bounds corresponding to the first inference variable, (d) resolving a constraint set to resolve the second inference variable, and (e) resolving the first inference variable based on the resolution of the second inference variable.
    Type: Application
    Filed: December 17, 2015
    Publication date: May 11, 2017
    Inventors: Maurizio Cimadamore, Daniel Smith
  • Publication number: 20170115965
    Abstract: Techniques herein process type variables to transform type parameters (TPs) of generic classes. In an embodiment, a computer stores a generic class attribute associated with a definition of a generic class. The generic class attribute includes a type variable declaration (TVD) for each TP. Each TVD is associated with usage entries (VUEs) within the definition. Each VUE indicates an actual type for use, within a portion of the definition, as the TP represented by the VUE. Based on how a particular portion of the definition uses a particular TP represented by a particular TVD of a particular VUE, the computer determines whether the particular VUE is to be assigned to a particular type or erased. In response to determining that the particular VUE is to be erased, the computer configures the particular VUE to indicate erasure. Otherwise, the computer assigns the particular type to the particular VUE.
    Type: Application
    Filed: October 24, 2016
    Publication date: April 27, 2017
    Inventors: Maurizio Cimadamore, Brian Goetz