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: 7895156Abstract: 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: GrantFiled: December 28, 2007Date of Patent: February 22, 2011Assignee: Cadence Design Systems, Inc.Inventors: Gilad Bracha, Yaron Kashai
-
Patent number: 7810077Abstract: 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: GrantFiled: April 18, 2005Date of Patent: October 5, 2010Assignee: Oracle America Inc.Inventor: Gilad Bracha
-
Patent number: 7735070Abstract: 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: GrantFiled: June 30, 2005Date of Patent: June 8, 2010Assignee: Oracle America, Inc.Inventors: Peter von der Ahe, Gilad Bracha
-
Patent number: 7669184Abstract: 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: GrantFiled: June 30, 2005Date of Patent: February 23, 2010Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Joseph D. Darcy, Peter von der Ahe
-
Patent number: 7574700Abstract: 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: GrantFiled: March 31, 2005Date of Patent: August 11, 2009Assignee: Sun Microsystems, Inc.Inventor: Gilad Bracha
-
Publication number: 20090172042Abstract: 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: ApplicationFiled: December 28, 2007Publication date: July 2, 2009Applicant: CADENCE DESIGN SYSTEMS, INC.Inventors: Gilad Bracha, Yaron Kashai
-
Patent number: 7458061Abstract: 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: GrantFiled: June 12, 2003Date of Patent: November 25, 2008Assignee: Sun Microsystems, Inc.Inventor: Gilad Bracha
-
Patent number: 7444648Abstract: 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: GrantFiled: May 22, 2003Date of Patent: October 28, 2008Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Patent number: 7197511Abstract: 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: GrantFiled: February 7, 2002Date of Patent: March 27, 2007Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang
-
Publication number: 20070006138Abstract: 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: ApplicationFiled: June 30, 2005Publication date: January 4, 2007Inventors: Peter Ahe, Gilad Bracha
-
Publication number: 20070006141Abstract: 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: ApplicationFiled: June 30, 2005Publication date: January 4, 2007Inventors: Gilad Bracha, Joseph Darcy, Peter Ahe
-
Publication number: 20060236315Abstract: 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: ApplicationFiled: April 18, 2005Publication date: October 19, 2006Inventor: Gilad Bracha
-
Publication number: 20060225045Abstract: 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: ApplicationFiled: March 31, 2005Publication date: October 5, 2006Inventor: Gilad Bracha
-
Patent number: 7051343Abstract: 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: GrantFiled: August 29, 2003Date of Patent: May 23, 2006Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Patent number: 6766521Abstract: 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: GrantFiled: May 27, 1999Date of Patent: July 20, 2004Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Timothy G. Lindholm, Sheng Liang
-
Patent number: 6763397Abstract: 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: GrantFiled: May 27, 1999Date of Patent: July 13, 2004Assignee: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Patent number: 6725280Abstract: 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: GrantFiled: August 13, 1999Date of Patent: April 20, 2004Assignee: Sun Microsystems, Inc.Inventor: Gilad Bracha
-
Publication number: 20040045019Abstract: 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: ApplicationFiled: August 29, 2003Publication date: March 4, 2004Applicant: Sun Microsystems, Inc.Inventors: Gilad Bracha, Sheng Liang, Timothy G. Lindholm
-
Publication number: 20040039746Abstract: 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: ApplicationFiled: June 12, 2003Publication date: February 26, 2004Applicant: Sun Microsystems, Inc.Inventor: Gilad Bracha
-
Patent number: 6687759Abstract: 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: GrantFiled: August 13, 1999Date of Patent: February 3, 2004Assignee: Sun Microsystems, Inc.Inventor: Gilad Bracha