Patents by Inventor Joseph D. Darcy

Joseph D. Darcy 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).

  • Publication number: 20170161033
    Abstract: Cross-compiling, by a multi-version compiler, may produce complied code targeted to a specified release version of a programming platform supported by the compiler. The specified version may be different from a default version of the programming platform targeted by the compiler. Thus, the multi-version compiler may cross-compile source code to generate compiled code for different versions of the programming platform. A developer may specify the target version using a single compiler option and the compiler may, in response, cross-compile for the target version without requiring any additional options to be configured by the user. The multi-version compiler may include library data regarding multiple versions of the programming platform, preventing a developer from having to locate and provide the necessary library data for each targeted version.
    Type: Application
    Filed: December 2, 2015
    Publication date: June 8, 2017
    Inventors: Joseph D. Darcy, Jonathan J. Gibbons, Jan Lahoda, Magnus Ihse Bursie
  • Patent number: 9411560
    Abstract: A compiler may receive source code including two user source code blocks, each capable of throwing an exception. The received source code may be associated with a policy that discards a pending exception when a subsequent exception occurs. The compiler may transform the source code such that it allows for a propagation policy that supports multiple exceptions. The transformed source code may be executed in an execution environment. Upon execution of the transformed code, a pending exception may be propagated out and a later-in-time exception may be stored.
    Type: Grant
    Filed: January 26, 2012
    Date of Patent: August 9, 2016
    Assignee: Oracle International Corporation
    Inventors: Joseph D. Darcy, Stuart W. Marks
  • Patent number: 9141343
    Abstract: The disclosed embodiments provide a system that facilitates the development and compilation of a software program. During operation, the system provides, in a programming language platform associated with source code for the software program, an indicator for a resource with a close method that does not complete erroneously. Next, the system enables use of the indicator with a resource-management statement in the source code, wherein the indicator facilitates omission of an exception-handling construct for the resource-management statement.
    Type: Grant
    Filed: May 1, 2012
    Date of Patent: September 22, 2015
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventor: Joseph D. Darcy
  • Patent number: 9141351
    Abstract: The disclosed embodiments provide a system that facilitates the development and compilation of a software program. During operation, the system provides, in a programming language platform associated with source code for the software program, an indicator for a resource with an idempotent close method. Next, the system enables use of the indicator with a resource-management statement in the source code, wherein the indicator facilitates the use of a wrapped resource in the resource-management statement.
    Type: Grant
    Filed: May 1, 2012
    Date of Patent: September 22, 2015
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventor: Joseph D. Darcy
  • Patent number: 8863079
    Abstract: A tool, such as a compiler or an interpreter, receives program source code and determines that the code includes an operation for which type conversion is permitted on an operand. The tool determines a source type of the operand, and a target type to which the operand is to be converted. In response to determining that the source type is a reference type and the target type is a primitive type, the tool generates a set of instructions to (a) determine whether, at run time, in accordance with a class definition of the reference type, a value of the target primitive type can be obtained via one or more method invocations on the operand (b) if such a value can be obtained, obtain the value and assign the value to a result of the operation and (c) if such a value cannot be obtained, generate an error indication.
    Type: Grant
    Filed: July 31, 2012
    Date of Patent: October 14, 2014
    Assignee: Oracle International Corporation
    Inventors: Joseph D. Darcy, Maurizio Cimadamore, Alexander R. Buckley
  • Patent number: 8843888
    Abstract: One embodiment of the present invention provides a system that characterizes content in object code. During operation, the system receives the source code of a program. The system also receives one or more pieces of object code of the program, or creates one or more pieces of object code from the source code. Next, the system identifies a construct in the object code. The system then determines whether the construct is physically present in the source code. If the construct is not physically present, the system determines whether the construct is logically present in the source code, wherein a construct is logically present if it is required by the programming language. If so, the system sets a construct flag to indicate that the construct is “synthesized.” However, if not, the system sets the construct flag to indicate that the construct is “synthetic.” Finally, the construct flag is made available to a reflective API.
    Type: Grant
    Filed: January 26, 2010
    Date of Patent: September 23, 2014
    Assignee: Oracle America, Inc.
    Inventors: Joseph D. Darcy, Alexander R. Buckley
  • Patent number: 8813049
    Abstract: A compiler receives source code for a program and determines that the code includes a declaration expression and an initialization expression in an assignment context. The declaration expression introduces a variable and specifies part of a parameterized type for the variable but not another part of the parameterized type. A parameterized type may include a ground type part and one or more type arguments; in a declaration expression, the specified part of the parameterized type may include a ground type and the unspecified part may include one or more of the type arguments. The initialization expression specifies an initial value for the variable, where the value has a parameterized type. The assignment context associates the declared variable with the initial value. The compiler infers the type for the variable based at least on the part specified in the declaration expression and on the type specified by the initialization expression.
    Type: Grant
    Filed: June 30, 2010
    Date of Patent: August 19, 2014
    Assignee: Oracle International Corporation
    Inventors: Brian Goetz, Alexander R. Buckley, Joseph D. Darcy, Maurizio Cimadamore
  • Publication number: 20140040860
    Abstract: A tool, such as a compiler or an interpreter, receives program source code and determines that the code includes an operation for which type conversion is permitted on an operand. The tool determines a source type of the operand, and a target type to which the operand is to be converted. In response to determining that the source type is a reference type and the target type is a primitive type, the tool generates a set of instructions to (a) determine whether, at run time, in accordance with a class definition of the reference type, a value of the target primitive type can be obtained via one or more method invocations on the operand (b) if such a value can be obtained, obtain the value and assign the value to a result of the operation and (c) if such a value cannot be obtained, generate an error indication.
    Type: Application
    Filed: July 31, 2012
    Publication date: February 6, 2014
    Inventors: Joseph D. Darcy, Maurizio Cimadamore, Alexander R. Buckley
  • Publication number: 20130298105
    Abstract: The disclosed embodiments provide a system that facilitates the development and compilation of a software program. During operation, the system provides, in a programming language platform associated with source code for the software program, an indicator for a resource with a close method that does not complete erroneously. Next, the system enables use of the indicator with a resource-management statement in the source code, wherein the indicator facilitates omission of an exception-handling construct for the resource-management statement.
    Type: Application
    Filed: May 1, 2012
    Publication date: November 7, 2013
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventor: Joseph D. Darcy
  • Publication number: 20130298106
    Abstract: The disclosed embodiments provide a system that facilitates the development and compilation of a software program. During operation, the system provides, in a programming language platform associated with source code for the software program, an indicator for a resource with an idempotent close method. Next, the system enables use of the indicator with a resource-management statement in the source code, wherein the indicator facilitates the use of a wrapped resource in the resource-management statement.
    Type: Application
    Filed: May 1, 2012
    Publication date: November 7, 2013
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventor: Joseph D. Darcy
  • Publication number: 20130198727
    Abstract: A compiler may receive source code including two user source code blocks, each capable of throwing an exception. The received source code may be associated with a policy that discards a pending exception when a subsequent exception occurs. The compiler may transform the source code such that it allows for a propagation policy that supports multiple exceptions. The transformed source code may be executed in an execution environment. Upon execution of the transformed code, a pending exception may be propagated out and a later-in-time exception may be stored.
    Type: Application
    Filed: January 26, 2012
    Publication date: August 1, 2013
    Inventors: Joseph D. Darcy, Stuart W. Marks
  • Patent number: 8438536
    Abstract: Various embodiments herein include one or more of systems, methods, software, and/or data structures to implement a multi-way branch statement in a computer programming language. The multi-way branch statement may include a plurality of case labels each having a non-primitive data type (e.g., strings) and being associated with a block of code to be executed dependent upon a control variable that also has a non-primitive data type. The implementation may include encoding the case labels for the multi-way branch statement as a binary decision diagram (BDD), such as a zero-suppressed binary decision diagram (ZDD), wherein the control variable for the multi-way branch statement may be compared with the case labels by stepping through the BDD. The BDD may include identifiers that provide information regarding which of the case labels is matched by the control variable, such that an appropriate code block may be executed.
    Type: Grant
    Filed: October 28, 2009
    Date of Patent: May 7, 2013
    Assignee: Oracle America, Inc.
    Inventors: Alexander R. Buckley, Joseph D. Darcy
  • Patent number: 8387027
    Abstract: A method for compiling source code, involving: obtaining a statement of the source code comprising a method call, where the source code is composed in a statically-typed programming language; determining whether the method call is a dynamic method call; upon determining that the method call is a dynamic method call, compiling a dynamic method invocation without performing type checking on the method call; upon determining that the method call is not a dynamic method call: performing type checking on the method call, selecting a target method to invoke, and compiling a static method invocation to invoke the target method.
    Type: Grant
    Filed: January 15, 2010
    Date of Patent: February 26, 2013
    Assignee: Oracle America, Inc. formerly Sun Microsystems, Inc.
    Inventors: Alexander R. Buckley, John Rose, Joseph D. Darcy
  • Patent number: 8387003
    Abstract: Various embodiments herein include one or more of systems, methods, software, and/or data structures to implement a “pluperfect” hash function. Generally, a pluperfect hash function is a hash function that maps distinct elements in a set S to distinct hash values H with no collisions (i.e., perfect hash function) and also includes an additional constraint that the hash function does not map other elements outside the set S into the set of distinct hash values H. In some example embodiments, pluperfect hash functions are used to implement a multi-way branch statement in a computer programming language. The implementation may include generating hash values for each of the case labels of the branch statement according to a pluperfect hash function.
    Type: Grant
    Filed: October 27, 2009
    Date of Patent: February 26, 2013
    Assignee: Oracle America, Inc.
    Inventor: Joseph D. Darcy
  • Publication number: 20120005660
    Abstract: A compiler receives source code for a program and determines that the code includes a declaration expression and an initialization expression in an assignment context. The declaration expression introduces a variable and specifies part of a parameterized type for the variable but not another part of the parameterized type. A parameterized type may include a ground type part and one or more type arguments; in a declaration expression, the specified part of the parameterized type may include a ground type and the unspecified part may include one or more of the type arguments. The initialization expression specifies an initial value for the variable, where the value has a parameterized type. The assignment context associates the declared variable with the initial value. The compiler infers the type for the variable based at least on the part specified in the declaration expression and on the type specified by the initialization expression.
    Type: Application
    Filed: June 30, 2010
    Publication date: January 5, 2012
    Inventors: Brian Goetz, Alexander R. Buckley, Joseph D. Darcy, Maurizio Cimadamore
  • Publication number: 20110185344
    Abstract: One embodiment of the present invention provides a system that characterizes content in object code. During operation, the system receives the source code of a program. The system also receives one or more pieces of object code of the program, or creates one or more pieces of object code from the source code. Next, the system identifies a construct in the object code. The system then determines whether the construct is physically present in the source code. If the construct is not physically present, the system determines whether the construct is logically present in the source code, wherein a construct is logically present if it is required by the programming language. If so, the system sets a construct flag to indicate that the construct is “synthesized.” However, if not, the system sets the construct flag to indicate that the construct is “synthetic.” Finally, the construct flag is made available to a reflective API.
    Type: Application
    Filed: January 26, 2010
    Publication date: July 28, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Joseph D. Darcy, Alexander R. Buckley
  • Publication number: 20110179402
    Abstract: A method for compiling source code, involving: obtaining a statement of the source code comprising a method call, where the source code is composed in a statically-typed programming language; determining whether the method call is a dynamic method call; upon determining that the method call is a dynamic method call, compiling a dynamic method invocation without performing type checking on the method call; upon determining that the method call is not a dynamic method call: performing type checking on the method call, selecting a target method to invoke, and compiling a static method invocation to invoke the target method.
    Type: Application
    Filed: January 15, 2010
    Publication date: July 21, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Alexander R. Buckley, John Rose, Joseph D. Darcy
  • Publication number: 20110099535
    Abstract: Various embodiments herein include one or more of systems, methods, software, and/or data structures to implement a multi-way branch statement in a computer programming language. The multi-way branch statement may include a plurality of case labels each having a non-primitive data type (e.g., strings) and being associated with a block of code to be executed dependent upon a control variable that also has a non-primitive data type. The implementation may include encoding the case labels for the multi-way branch statement as a binary decision diagram (BDD), such as a zero-suppressed binary decision diagram (ZDD), wherein the control variable for the multi-way branch statement may be compared with the case labels by stepping through the BDD. The BDD may include identifiers that provide information regarding which of the case labels is matched by the control variable, such that an appropriate code block may be executed.
    Type: Application
    Filed: October 28, 2009
    Publication date: April 28, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: ALEXANDER R. BUCKLEY, JOSEPH D. DARCY
  • Publication number: 20110099175
    Abstract: Various embodiments herein include one or more of systems, methods, software, and/or data structures to implement a “pluperfect” hash function. Generally, a pluperfect hash function is a hash function that maps distinct elements in a set S to distinct hash values H with no collisions (i.e., perfect hash function) and also includes an additional constraint that the hash function does not map other elements outside the set S into the set of distinct hash values H. In some example embodiments, pluperfect hash functions are used to implement a multi-way branch statement in a computer programming language. The implementation may include generating hash values for each of the case labels of the branch statement according to a pluperfect hash function.
    Type: Application
    Filed: October 27, 2009
    Publication date: April 28, 2011
    Applicant: SUN MICROSYSTEMS, INC.
    Inventor: Joseph D. Darcy
  • Patent number: 7669184
    Abstract: A technique in accordance with one embodiment of the present invention provides introspection support for anonymous and local classes. As a result of the technique, an enclosing class that defines a generic type variable that is not defined within a local or anonymous class that refers to the generic type variable can be determined. According to one embodiment of the invention, when a compiler determines that a particular class is a local or anonymous class, the compiler emits, into the particular class' binary class file, information that indicates which class encloses the particular class. In response to the invocation of a method (described herein) relative to a reflective proxy that corresponds to an enclosed class, information that identifies an enclosing class that encloses the enclosed class is returned. This is so even if the enclosed class is a local or anonymous class.
    Type: Grant
    Filed: June 30, 2005
    Date of Patent: February 23, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Joseph D. Darcy, Peter von der Ahe