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: 10303467Abstract: 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: GrantFiled: April 13, 2015Date of Patent: May 28, 2019Assignee: Oracle International CorporationInventors: Maurizio Cimadamore, Brian Goetz
-
Publication number: 20190129699Abstract: 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: ApplicationFiled: December 27, 2018Publication date: May 2, 2019Applicant: Oracle International CorporationInventors: Brian Goetz, Daniel Smith, Maurizio Cimadamore
-
Patent number: 10275226Abstract: 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: GrantFiled: October 24, 2016Date of Patent: April 30, 2019Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Maurizio Cimadamore, Brian Goetz
-
Patent number: 10209970Abstract: 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: GrantFiled: January 10, 2017Date of Patent: February 19, 2019Assignee: Oracle International CorporationInventors: Brian Goetz, Daniel Smith, Maurizio Cimadamore
-
Publication number: 20190034178Abstract: 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: ApplicationFiled: February 28, 2018Publication date: January 31, 2019Applicant: Oracle International CorporationInventors: Brian Goetz, Maurizio Cimadamore, Vicente A. Romero Zaldivar
-
Patent number: 10127133Abstract: 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: GrantFiled: April 8, 2016Date of Patent: November 13, 2018Assignee: Oracle International CorporationInventors: Chris J. Hegarty, Maurizio Cimadamore
-
Publication number: 20180307468Abstract: 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: ApplicationFiled: May 10, 2018Publication date: October 25, 2018Applicant: Oracle International CorporationInventors: Maurizio Cimadamore, Daniel Smith
-
Patent number: 10055208Abstract: 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: GrantFiled: January 25, 2016Date of Patent: August 21, 2018Assignee: Oracle International CorporationInventors: Michael Haupt, Maurizio Cimadamore, Brian Goetz
-
Publication number: 20180232217Abstract: 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: ApplicationFiled: April 9, 2018Publication date: August 16, 2018Applicant: Oracle International CorporationInventors: Michael Haupt, Maurizio Cimadamore, Brian Goetz
-
Patent number: 10015065Abstract: 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: GrantFiled: September 29, 2014Date of Patent: July 3, 2018Assignee: Amazon Technolgies, Inc.Inventors: Alessandro Raffio, Neil Michael Cowzer, Maurizio Cimadamore
-
Patent number: 10001978Abstract: 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: GrantFiled: December 17, 2015Date of Patent: June 19, 2018Assignee: Oracle International CorporationInventors: Maurizio Cimadamore, Daniel Smith
-
Publication number: 20180081648Abstract: 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: ApplicationFiled: March 24, 2017Publication date: March 22, 2018Applicant: Oracle International CorporationInventors: Vicente A. Romero Zaldivar, Maurizio Cimadamore, Jonathan J. Gibbons
-
Patent number: 9891900Abstract: 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: GrantFiled: February 26, 2016Date of Patent: February 13, 2018Assignee: Oracle International CorporationInventors: Brian Goetz, John R. Rose, Maurizio Cimadamore
-
Publication number: 20170364339Abstract: 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: ApplicationFiled: February 26, 2016Publication date: December 21, 2017Inventors: Brian Goetz, John R. Rose, Maurizio Cimadamore
-
Publication number: 20170293547Abstract: 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: ApplicationFiled: April 8, 2016Publication date: October 12, 2017Inventors: Chris J. Hegarty, Maurizio Cimadamore
-
Publication number: 20170269907Abstract: 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: ApplicationFiled: March 18, 2016Publication date: September 21, 2017Inventors: Brian Goetz, Maurizio Cimadamore
-
Patent number: 9733907Abstract: 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: GrantFiled: November 14, 2012Date of Patent: August 15, 2017Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Brian Goetz, Jonathan Gibbons, Maurizio Cimadamore
-
Publication number: 20170147302Abstract: 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: ApplicationFiled: January 10, 2017Publication date: May 25, 2017Inventors: BRIAN GOETZ, DANIEL SMITH, MAURIZIO CIMADAMORE
-
Publication number: 20170131982Abstract: 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: ApplicationFiled: December 17, 2015Publication date: May 11, 2017Inventors: Maurizio Cimadamore, Daniel Smith
-
Publication number: 20170115965Abstract: 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: ApplicationFiled: October 24, 2016Publication date: April 27, 2017Inventors: Maurizio Cimadamore, Brian Goetz