Compiler generation of a late binding interface implementation
First Claim
1. In a computer system, a method of generating a dispatch interface implementation, the method comprising:
- receiving definition information that defines dispatch interface features of a dispatch interface, the dispatch interface including plural dispatch methods and one or more other methods;
receiving programming language code for the one or more other methods, each of the one or more other methods having a name;
generating a dispatch interface implementation for operating the one or more other methods, wherein the generating includes parsing the programming language code and the definition information during compilation, the dispatch interface implementation including;
executable code for the one or more other methods;
executable code for a first dispatch method, the first dispatch method for mapping the names to corresponding dispatch identifiers for binding at run time; and
executable code for a second dispatch method, the second dispatch method for calling the one or more other methods at run time responsive to client requests, each client request including a dispatch identifier.
2 Assignments
0 Petitions
Accused Products
Abstract
A compiler automatically generates a late binding interface implementation based upon programming language code and definition information. The programming language code is for implementing the late bound methods of the interface, while the definition information defines late binding interface features of the interface. The late binding interface implementation includes code for invoking one or more late bound methods through a late binding mechanism, and also can include code for directly invoking the one or more late bound methods through an early binding mechanism. The compiler can also generate client-side code for calling a late bound method of a late binding interface.
67 Citations
30 Claims
-
1. In a computer system, a method of generating a dispatch interface implementation, the method comprising:
-
receiving definition information that defines dispatch interface features of a dispatch interface, the dispatch interface including plural dispatch methods and one or more other methods; receiving programming language code for the one or more other methods, each of the one or more other methods having a name; generating a dispatch interface implementation for operating the one or more other methods, wherein the generating includes parsing the programming language code and the definition information during compilation, the dispatch interface implementation including; executable code for the one or more other methods; executable code for a first dispatch method, the first dispatch method for mapping the names to corresponding dispatch identifiers for binding at run time; and executable code for a second dispatch method, the second dispatch method for calling the one or more other methods at run time responsive to client requests, each client request including a dispatch identifier. - View Dependent Claims (2, 3, 4, 5, 6, 26)
-
-
7. A computer readable medium having stored thereon a computer executable compiler system that generates a late binding interface implementation from definition information and programming language code, the compiler system comprising:
-
a front end module that receives definition information and programming language code, the definition information defining late binding interface features of a late binding interface, the programming language code for implementing one or more late bound methods; a converter module that identifies relations between the definition information and the one or more late bound methods during compilation, including parsing the definition information and the programming language code; and a back end module that generates a late binding interface implementation based upon the relations, the late binding interface implementation for operating the one or more late bound methods. - View Dependent Claims (8, 9, 10, 11, 12, 27)
-
-
13. A computer readable medium having stored thereon computer executable instructions for performing a method of automatically generating a late binding interface implementation, the method comprising:
-
receiving programming language code for one or more late bound methods of a late binding interface; receiving definition information that defines late binding interface features of the late binding interface; and generating a late binding interface implementation for operating the one or more late bound methods, wherein the generating includes parsing the programming language code and the definition information during compilation, the late binding interface implementation including one or more late binding methods, wherein the one or more late binding methods include a first late binding method for calling the one or more late bound methods responsive to client requests. - View Dependent Claims (14, 15, 16, 17, 18, 19, 28)
-
-
20. In a computer system, a method of automatically generating an interface implementation, the interface implementation having early binding and late binding mechanisms, the method comprising:
-
receiving programming language code for one or more methods of an interface; receiving definition information that defines late binding interface features of the interface; and generating an interface implementation for alternatively operating the one or more methods by an early binding mechanism or by a late binding mechanism, wherein the generating includes parsing the programming language code and the definition information during compilation, wherein the early binding mechanism provides for direct invocation of the one or more methods, and wherein the late binding mechanism provides for invocation of the one or more methods responsive to a request through a late binding method. - View Dependent Claims (21, 22, 29)
-
-
23. In a computer system, a method of automatically generating client side call site code for calling a late bound method through a late binding interface, the method comprising:
-
receiving definition information for late binding interface features of a late binding interface; receiving programming language code for calling a late bound method of the late binding interface; parsing the definition information and the programming language code during compilation; based upon type information for one or more input arguments of the late bound method, generating code for packing the one or more input arguments into a generic argument data structure; and generating code for calling the late bound method through an invocation method of the late binding interface, wherein the calling includes passing the generic argument data structure to the invocation method. - View Dependent Claims (24, 25, 30)
-
Specification