Apparatus and method for dynamic linking of computer software components
First Claim
1. In an object-oriented computer system having a processor and a memory coupled to the processor, a computer implemented process for dynamically linking an abstract base class with an un-named derived class, said process comprising the steps of:
- providing an explicitly named abstract base class with interface parameters, said abstract base class residing in said memory;
providing a call to an object function, said call to an object function naming only said abstract base class with interface parameters;
converting said call to a dynamically generated search string corresponding to said abstract base class with interface parameters;
providing a library symbol table defining a correspondence between said abstract base class with interface parameters and a derived class name, said library symbol table residing in said memory, said library symbol table being provided after compilation of software in said computer system;
searching said library symbol table for an occurrence of said search string corresponding to said abstract base class with interface parameters, said library symbol table having a derived class name corresponding to said abstract base class with interface parameters, said searching step being performed by said processor;
retrieving instantiation information corresponding to said derived class name from said library symbol table, said retrieving step being performed by said processor; and
instantiating an instance of a derived class using said instantiation information corresponding to said derived class name, said instance of said derived class derived from said abstract base class with interface parameters, said explicitly named abstract base class with interface parameters thereby being dynamically linked to said instance of a derived class, said instantiating step being performed by said processor, said instance of said derived class being stored in said memory.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus and method for the dynamic (execution time) linking of object oriented software components is disclosed. The present invention comprises a computer system including a set of at least two software components. This invention provides a method and means for dynamically linking object oriented software components during run time execution of the program. The present includes two main features. First, a query function is provided to allow an application component to determine, during program execution time, the name and location of library classes available for use. Second, the application component can create (instantiate) instances of derived classes of an abstract base class. The application component can manipulate the instantiated object using the abstract interface provided by the base class definition. The implementation of the present invention involves processing at two steps in the software generation cycle. First, the prior art static linker must be modified to provide processing support for the present invention at link time. Second, the main features of the present invention are performed at program execution time.
183 Citations
6 Claims
-
1. In an object-oriented computer system having a processor and a memory coupled to the processor, a computer implemented process for dynamically linking an abstract base class with an un-named derived class, said process comprising the steps of:
-
providing an explicitly named abstract base class with interface parameters, said abstract base class residing in said memory; providing a call to an object function, said call to an object function naming only said abstract base class with interface parameters; converting said call to a dynamically generated search string corresponding to said abstract base class with interface parameters; providing a library symbol table defining a correspondence between said abstract base class with interface parameters and a derived class name, said library symbol table residing in said memory, said library symbol table being provided after compilation of software in said computer system; searching said library symbol table for an occurrence of said search string corresponding to said abstract base class with interface parameters, said library symbol table having a derived class name corresponding to said abstract base class with interface parameters, said searching step being performed by said processor; retrieving instantiation information corresponding to said derived class name from said library symbol table, said retrieving step being performed by said processor; and instantiating an instance of a derived class using said instantiation information corresponding to said derived class name, said instance of said derived class derived from said abstract base class with interface parameters, said explicitly named abstract base class with interface parameters thereby being dynamically linked to said instance of a derived class, said instantiating step being performed by said processor, said instance of said derived class being stored in said memory. - View Dependent Claims (2, 3)
-
-
4. An object-oriented computer system having a processor, a memory coupled to the processor, and a computer implemented dynamic linker for dynamically linking an abstract base class with an un-named derived class, said dynamic linker comprising:
-
an explicitly named abstract base class with interface parameters, said abstract base class residing in said memory; a call to an object function, said call to an object function naming only said abstract base class with interface parameters; means for converting said call to a dynamically generated search string corresponding to said abstract base class with interface parameters; a library symbol table defining a correspondence between said abstract base class with interface parameters and a derived class name, said library symbol table residing in said memory, said library symbol table being provided after compilation of software in said computer system; means for searching said library symbol table for an occurrence of said search string corresponding to said abstract base class with interface parameters, said library symbol table having a derived class name corresponding to said abstract base class with interface parameters, said means for searching being memory resident software executed by said processor; means for retrieving instantiation information corresponding to said derived class name from said library symbol table, said means for retrieving being memory resident software executed by said processor; and means for instantiating an instance of a derived class using said instantiation information corresponding to said derived class name, said instance of said derived class derived from said abstract base class with interface parameters, said explicitly named abstract base class with interface parameters thereby being dynamically linked to said instance of a derived class, said means for instantiating being memory resident software executed by said processor, said instance of said derived class being stored in said memory. - View Dependent Claims (5, 6)
-
Specification