Patents by Inventor Gilad Bracha

Gilad Bracha 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: 7895156
    Abstract: Disclosed are a method, a system, and a computer program products for implementing model exchange in a system design. In various embodiments, the method or system receives a model exchange request from a client where model exchange request comprises a first synchronization record which comprises a delta of both a program aspect and a data aspect between a system design on the client and a system design on the server, implements the first model exchange request by processing the first model exchange, generates a second synchronization record in response to the first model exchange, transmitting the second synchronization record to the first client by using a fusion technology, and displaying a result of implementing the first model exchange request or storing the result in a tangible computer readable medium.
    Type: Grant
    Filed: December 28, 2007
    Date of Patent: February 22, 2011
    Assignee: Cadence Design Systems, Inc.
    Inventors: Gilad Bracha, Yaron Kashai
  • Patent number: 7810077
    Abstract: In accordance with one embodiment of the present invention, there is provided a technique for reifying generic types while maintaining migration compatibility. According to this technique, the actual type parameters that should be associated with a raw type, but which are not expressed in a binary file, are dynamically inferred at run time. The actual type parameters are inferred based on the run time usage of an object that is an instance of the raw type.
    Type: Grant
    Filed: April 18, 2005
    Date of Patent: October 5, 2010
    Assignee: Oracle America Inc.
    Inventor: Gilad Bracha
  • Patent number: 7735070
    Abstract: In accordance with one embodiment of the present invention, there is provided a technique for allowing a first method to override a second method as long as specified criteria are satisfied, even if the types of the parameters of the first method differ from the types of the parameters of the second method, and even if the return type of the first method differs from the return type of the second method. As a result of the technique, older methods, which do not have generic return types and/or generically typed parameters, can continue to override methods that did not used to have generic return types and/or generically typed parameters, but now do.
    Type: Grant
    Filed: June 30, 2005
    Date of Patent: June 8, 2010
    Assignee: Oracle America, Inc.
    Inventors: Peter von der Ahe, Gilad Bracha
  • 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
  • Patent number: 7574700
    Abstract: In accordance with one embodiment of the present invention, a technique for supporting dynamically typed languages in typed assembly languages is provided. According to one embodiment, a new bytecode instruction, “invokedynamic,” supplements “invokevirtual.” Prior to the execution of a typed assembly language program, it is determined whether a particular method-invoking instruction is a particular kind of instruction. If the instruction is of the particular kind, then the verifier refrains from performing the usual pre-execution type checking of the arguments that will be on the operand stack when the instruction is executed. Consequently, the bytecode instruction may be used to represent the invocation of a method that might not indicate formal parameter types. Because the verifier performs less stringent type checking in response to such an instruction, the JVM can execute assembly language programs that were generated based on source code that was written in a dynamically typed language.
    Type: Grant
    Filed: March 31, 2005
    Date of Patent: August 11, 2009
    Assignee: Sun Microsystems, Inc.
    Inventor: Gilad Bracha
  • Publication number: 20090172042
    Abstract: Disclosed are a method, a system, and a computer program products for implementing model exchange in a system design. In various embodiments, the method or system receives a model exchange request from a client where model exchange request comprises a first synchronization record which comprises a delta of both a program aspect and a data aspect between a system design on the client and a system design on the server, implements the first model exchange request by processing the first model exchange, generates a second synchronization record in response to the first model exchange, transmitting the second synchronization record to the first client by using a fusion technology, and displaying a result of implementing the first model exchange request or storing the result in a tangible computer readable medium.
    Type: Application
    Filed: December 28, 2007
    Publication date: July 2, 2009
    Applicant: CADENCE DESIGN SYSTEMS, INC.
    Inventors: Gilad Bracha, Yaron Kashai
  • Patent number: 7458061
    Abstract: Methods and systems for protecting object identity in an object-oriented programming language. An object from a class for protecting object identity is instantiated in memory. The object includes a first method that determines whether two object values are equal, and a second method that overrides an identity method associated with a superclass of the object by invoking the first method, the identity method for determining the identity of two objects. The object is immediately locked in response to the instantiating, so that the identity of the locked object is protected from threads that attempt to synchronize on the locked object.
    Type: Grant
    Filed: June 12, 2003
    Date of Patent: November 25, 2008
    Assignee: Sun Microsystems, Inc.
    Inventor: Gilad Bracha
  • Patent number: 7444648
    Abstract: A method, computer program, and apparatus verify instructions in a module of a computer program during linking using pre-verification constraints with fully lazy loading. It is first determined whether a first module which is loaded has passed verification one-module-at-a-time before linking. If the first module has passed verification, a pre-verification constraint on a constrained module is read, if any. It is then determined if the constrained module is loaded, if any pre-verification constraint is read. If the constrained module is not already loaded, the pre-verification constraint is retained as a verification constraint.
    Type: Grant
    Filed: May 22, 2003
    Date of Patent: October 28, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Patent number: 7197511
    Abstract: Type safe linkage is ensured by establishing a constraint if a class references an attribute that is contained in another class. This constraint acts as a “promise” to later ensure type safe linkage. At some point later—such as at the earliest time that the type is loaded by both loaders—the constraint is verified. This may be accomplished by verifying that the type for the attribute is the same regardless of whether it is loaded by a loader that defines the referencing class or a loader that defines the referred class. If the constraint is not met, an error message is provided.
    Type: Grant
    Filed: February 7, 2002
    Date of Patent: March 27, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang
  • Publication number: 20070006138
    Abstract: In accordance with one embodiment of the present invention, there is provided a technique for allowing a first method to override a second method as long as specified criteria are satisfied, even if the types of the parameters of the first method differ from the types of the parameters of the second method, and even if the return type of the first method differs from the return type of the second method. As a result of the technique, older methods, which do not have generic return types and/or generically typed parameters, can continue to override methods that did not used to have generic return types and/or generically typed parameters, but now do.
    Type: Application
    Filed: June 30, 2005
    Publication date: January 4, 2007
    Inventors: Peter Ahe, Gilad Bracha
  • Publication number: 20070006141
    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: Application
    Filed: June 30, 2005
    Publication date: January 4, 2007
    Inventors: Gilad Bracha, Joseph Darcy, Peter Ahe
  • Publication number: 20060236315
    Abstract: In accordance with one embodiment of the present invention, there is provided a technique for reifying generic types while maintaining migration compatibility. According to this technique, the actual type parameters that should be associated with a raw type, but which are not expressed in a binary file, are dynamically inferred at run time. The actual type parameters are inferred based on the run time usage of an object that is an instance of the raw type.
    Type: Application
    Filed: April 18, 2005
    Publication date: October 19, 2006
    Inventor: Gilad Bracha
  • Publication number: 20060225045
    Abstract: In accordance with one embodiment of the present invention, a technique for supporting dynamically typed languages in typed assembly languages is provided. According to one embodiment, a new bytecode instruction, “invokedynamic,” supplements “invokevirtual.” Prior to the execution of a typed assembly language program, it is determined whether a particular method-invoking instruction is a particular kind of instruction. If the instruction is of the particular kind, then the verifier refrains from performing the usual pre-execution type checking of the arguments that will be on the operand stack when the instruction is executed. Consequently, the bytecode instruction may be used to represent the invocation of a method that might not indicate formal parameter types. Because the verifier performs less stringent type checking in response to such an instruction, the JVM can execute assembly language programs that were generated based on source code that was written in a dynamically typed language.
    Type: Application
    Filed: March 31, 2005
    Publication date: October 5, 2006
    Inventor: Gilad Bracha
  • Patent number: 7051343
    Abstract: A method, computer program, signal transmission and apparatus pre-verify instructions in a module of a computer program one module-at-a-time. First it is determined whether checking an instruction in a first module which is loaded requires information in a referenced module different than the first module. If the information is required, a constraint for the referenced module is written without loading or otherwise accessing the referenced module. During linking it is determined whether a first module which is loaded has passed pre-verification one-module-at-a-time before linking. A pre-verification constraint on a constrained module is read, if any, if the first module has passed such verification. If any pre-verification constraint is read, the pre-verification constraint is enforced if the constrained module is already loaded.
    Type: Grant
    Filed: August 29, 2003
    Date of Patent: May 23, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Patent number: 6766521
    Abstract: A method, computer program, signal transmission, apparatus and system verify instructions in a module of a computer program to be dynamically linked with at least one other module. First it is determined whether checking an instruction in a first module which is loaded requires a lowest upper bound (LUB) class of at least two referenced classes in one or more referenced modules different than the first module. If such information is required, a constraint for the referenced module is written without loading the referenced module. The constraint is of the form “the set of at least two classes inherits from a specified class.
    Type: Grant
    Filed: May 27, 1999
    Date of Patent: July 20, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Timothy G. Lindholm, Sheng Liang
  • Patent number: 6763397
    Abstract: A method, computer program, signal transmission, apparatus and system for fully lazy verification of instructions in a module of a computer program include first determining whether an instruction in a first module which is loaded requires information in a referenced module different than the first module. If such information is required, it is then determined whether the referenced module is already loaded. If the referenced module is not already loaded, a constraint is written for the referenced module without loading the referenced module. The constraint is then checked when the referenced class is loaded, if ever.
    Type: Grant
    Filed: May 27, 1999
    Date of Patent: July 13, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Patent number: 6725280
    Abstract: A mechanism is disclosed for constructing dispatch tables which enable transitive method override. A dispatch table for a class C (wherein C is within a package P and is a subclass of superclass S) is constructed as follows. First, the S dispatch table is copied and is used as the starting point for the C dispatch table. Then, for each locally declared method m in C, the method m is checked to determine whether it has been marked public/protected. If so, then the S dispatch table is checked for a public/protected entry corresponding to a method having the same name as method m. If such an entry is found, then the corresponding entry in the C dispatch table is overridden. Otherwise, a new entry is allocated in the C dispatch table and is marked public/protected. In addition, the S dispatch table is checked for a package private (private to package P) entry corresponding to a method having the same name as method m.
    Type: Grant
    Filed: August 13, 1999
    Date of Patent: April 20, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Gilad Bracha
  • Publication number: 20040045019
    Abstract: A method, computer program, signal transmission and apparatus pre-verify instructions in a module of a computer program one module-at-a-time. First it is determined whether checking an instruction in a first module which is loaded requires information in a referenced module different than the first module. If the information is required, a constraint for the referenced module is written without loading or otherwise accessing the referenced module. During linking it is determined whether a first module which is loaded has passed pre-verification one-module-at-a-time before linking. A pre-verification constraint on a constrained module is read, if any, if the first module has passed such verification. If any pre-verification constraint is read, the pre-verification constraint is enforced if the constrained module is already loaded.
    Type: Application
    Filed: August 29, 2003
    Publication date: March 4, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
  • Publication number: 20040039746
    Abstract: Methods and systems for protecting object identity in an object-oriented programming language. An object from a class for protecting object identity is instantiated in memory. The object includes a first method that determines whether two object values are equal, and a second method that overrides an identity method associated with a superclass of the object by invoking the first method, the identity method for determining the identity of two objects. The object is immediately locked in response to the instantiating, so that the identity of the locked object is protected from threads that attempt to synchronize on the locked object.
    Type: Application
    Filed: June 12, 2003
    Publication date: February 26, 2004
    Applicant: Sun Microsystems, Inc.
    Inventor: Gilad Bracha
  • Patent number: 6687759
    Abstract: A method lookup mechanism is disclosed which not only enforces accessibility constraints imposed by modularity constructs but also enables transitive method override. According to one embodiment, when a method m is invoked on a target object, the method m in a resolved class is checked to determine whether it has been declared as public/protected. If so, then standard method lookup may be used to determine the proper implementation of method m to invoke. However, if the resolved method is not declared as public/protected, then the class of the target object is searched for an implementation of the method m. If no implementation is found, then a superclass of the target object class is searched for an implementation. This process repeats until an implementation is found or until the resolved class is reached.
    Type: Grant
    Filed: August 13, 1999
    Date of Patent: February 3, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Gilad Bracha