Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
1992-10-09
2001-03-27
Banankhah, Majid (Department: 2151)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
Reexamination Certificate
active
06209040
ABSTRACT:
DESCRIPTION
1. Technical Field
This invention relates generally to a computer method and system for storing type information, and in particular, a method and system for storing type information in a language-independent manner.
2. Background of the Invention
The use of object-oriented programming techniques can facilitate the development of complex computer programs. Programming languages that support object-oriented techniques have been developed. One such programming language is C++. The C++ programming language is described in “The C++ Language Reference,” published by Microsoft Corporation, which is hereby incorporated by reference.
Two common characteristics of object-oriented programming languages are support for data encapsulation and data type inheritance. Data encapsulation refers to the coupling of data to the functions that operate on the data. Inheritance refers to the ability to define a data type as an extension of other data types. An instance of a data type that couples data and functions is referred to as an “object.”
An object is a run time structure for a user-defined type (a class type) that may contain data members and function members. Each class has a class definition that specifies its data members and function members. Each object is declared to be a certain class type. In a preferred embodiment, the run time data structures of an object conforms to the model defined in U.S. patent application Ser. No. 07/682,537, now U.S. Pat. No. 5,297,284, entitled “A Method for Implementing Virtual Functions and Virtual Bases in a Compiler for an Object-Oriented Programming Language,” which is hereby incorporated by reference.
It is often useful for two computer programs to access the same instance of an object. For example, a first computer program instantiates an object in shared memory and notifies a second computer program of the location of the object. The second computer program then accesses the object in shared memory. However, to access the object, the second computer program needs to be written and compiled with the class definition of the object. Without the class definition, the second computer program would not know how to access the data members and function members of the object. Thus, a computer program is written and compiled with the class definition for each object it wishes to share with another computer program.
When the developer of a computer program wishes to allow other computer programs to access its objects, the developer publishes the class definitions of the objects. The developers of other computer programs could then incorporate the published class definitions into their computer programs. One skilled in the art would appreciate that this publication may use a “header” file containing the class definitions. The developers of other computer programs could then write their computer programs to access objects defined in the header file and “include” the header file in the source code for the computer programs. The source code is then compiled and is ready to access the object.
Because prior methods require that a class definition be available when developing a computer program, there has been limited sharing of objects between computer programs developed by independent developers. This limited sharing occurs because, for example, it is difficult to distribute class definitions to independent developers, who may be located throughout the world, in a timely manner. Similarly, it is difficult to distribute updates to the class definition and difficult for the developers to integrate these updates and distribute updated versions of the computer programs to users. These difficulties are compounded when a computer program incorporates class definitions provided by several developers. Also, because there is no standard programming language, it can be difficult to adapt a class definition in one programming language to another.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a system for storing and accessing information defining user-defined types.
It is another object of the present invention to provide a system for storing and accessing information for binding to objects.
It is another object of the present invention to provide a system for storing and accessing information for loading class definitions.
It is another object of the present invention to provide a type library interface and implementation for storing and accessing, defining, binding, and loading information relating to objects such that objects instantiated by one computer program can be accessed at run time by a second computer program without need for the second computer program to be compiled with the class definitions at compile time.
It is another object of the present invention to provide language-independent, implementation-indepdendent precompiled type definitions.
These and other objects, which will become apparent as the invention is more fully described below, are obtained by an improved method and system for interfacing to type libraries that store type information. In a preferred embodiment, the present invention defines an interface to a type library. The interface has a plurality of interface methods through which type information can be stored in and retrieved from the type library. A plurality of implementations of the defined interface are provided. A computer program is compiled using the defined interfaces to access the type information. When the compiled computer program is executed, it accesses the type information using one of the plurality of implementations. In a preferred embodiment, a type library contains type information to allow a compiler to bind to an instance of type at compile time (early binding).
REFERENCES:
patent: 5093914 (1992-03-01), Coplien et al.
patent: 5146593 (1992-09-01), Brandle et al.
patent: 5206951 (1993-04-01), Khoyi et al.
patent: 5235701 (1993-08-01), Ohler et al.
patent: 5280617 (1994-01-01), Brender et al.
patent: 5307499 (1994-04-01), Yin
patent: 5339430 (1994-08-01), Lunden et al.
patent: 5339438 (1994-08-01), Conner et al.
patent: 5361350 (1994-11-01), Conner et al.
patent: 5421016 (1995-05-01), Connor et al.
patent: 5428792 (1995-06-01), Connor et al.
patent: 5619710 (1997-04-01), Travis et al.
patent: 471 442 A2 (1992-02-01), None
patent: 0 546 794 A2 (1992-08-01), None
Sebesta;Concepts of Programming Languages;Benjamin/Cummings Publishing Co.; 1992.*
Silbershatz, et al.;Operating System Concepts;Addison-Wesley Pub. Co., Inc.; 1994 (4th Ed.)*
Object-Oriented Software Construction: Bertrand Meyer, Prentice Hall, 1988, pp. 183-217, 327-339, 67-103.*
Michael Kilian, “Trellis: turning designs into programs”, Communication of the ACM, vol. 33, No. 9, pp. 65-67; Sep. 1990.*
Jiri Soukup, “Organized C: A unified method of handling data in CAD algorithms and databases”, ACM/III design automation conference, pp. 425-430, 1990.*
Agrawal et al, “Static type checking of multi-methods”, OOPSLA '91, pp. 113-128.*
Borland, Turbo Pascal Turbo Vision Guide, version 6, chapters 3, 9, 1990.*
Shannon et al, “Mapping the Interface Description Language Type Model Into C” IEEE Transactions on Software Eng., V15,N(11) pp. 1333-1346, Nov. 1989.*
Meyers, Randall, “The Interaction of Pointers to Members & Virtual Base Classes in C++”, USENIX, 1991, pp. 1-11.*
Shaw, Richard, “A Preview of Microsoft C/C++ & The Microsoft Foundation Classes for Windows”,Microsoft Systems Journal,Mar./Apr. '92, V7, N2 p. 43(13).*
McCluskey, Glen, “An Environment for Template Instantation”CH Report,V4, N2, Feb. '92 pp. 3-7.*
Ravindran et al, “Reliable Client Server Communication in Distributed Programs” Local Computer Networks, Oct. 10-12, 1989 pp. 242-251.*
Cole, Robert, “Application Configuration in a Client Server Distributed System”, IEE, 1992 pp. 309-317.*
Inside Macintosh,vol. VI, Addison-Wesley Publishing Company, 1991, Chapter 6, “The Apple Event Manager,” pp. 6-1 to 6-117.
Meyer, “Object-oriented Software Construction,”Interactive Software Engineering and Societe
Acton Colin L.
Caron Ilan G.
Carter Alan W.
Corbett Tom
Woolf Michael J.
Banankhah Majid
Caldwell P. G
Klarquist Sparkman Campbell & Leigh & Whinston, LLP
Microsoft Corporation
LandOfFree
Method and system for interfacing to a type library does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and system for interfacing to a type library, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for interfacing to a type library will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2489133