System and method for interfacing two modules supporting...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06578090

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to interfacing two software modules, one of which is a processing module to send various data structures to the other software module which is an application processing module which utilizes the data structures. The present invention is more specifically related to use of an abstract class having a virtual function and a plurality of first level derived classes of the abstract class defining the plurality of data structures to be sent and a plurality of second level derived classes of the plurality of first level derived classes of the abstract class, each second level derived class defining the virtual function to utilize the data structures. The invention is more specifically related to a method, system, computer program product, and a memory for interfacing two software modules.
2. Discussion of the Background
Object-oriented-technology is based upon the manipulation of software objects instantiated from software classes. A software class is considered as a user defined type equivalent to normal types such as integer type. The software class is typically declared with data items and procedures or software methods that operate on the data items. Many high-level languages, including C++, support the declaration of a class. Software objects instantiated for software classes are called instances of the software classes from which they are instantiated, and have all the features, or the “type” of the software class used for instantiation.
An abstract class is a software class that is not intended to be instantiated. The purpose of an abstract class is to define interfaces shared by derived classes through inheritance. An abstract class is frequently used with virtual functions or software methods which declare the interfaces with or without definitions. When a software class derived from an abstract class defines an inherited virtual function of the abstract class, the virtual function of the derived software class will be executed even when the instantiated object of the derived software class is accessed through a reference type of the base abstract class. If the function referenced is not a virtual function, the base class function or software method will be executed. This technique allows the client or user of the software object to execute the correct function or software method with only the knowledge of the abstract class. Many examples of such techniques are shown in Gamma, E., Helm, R., Johnson, R. and Vlissides, J.,
Design Patterns: Elements of Reusable Software
, Addison-Wesley, Massachusetts, 1995, which is incorporated herein by reference.
Object-Oriented Programming (“OOP”) is a programming methodology in which a program is viewed as a collection of discrete objects that are self-contained collections of data structures and routines that interact with other objects. As discussed above, a class has data items, structures, and functions or software methods. Data items correspond to variables and literals of prior programming art. Structures are named groupings of related data items and other structures. Software methods correspond to functions and subroutines of prior programming art. An object-oriented framework is a reusable basic design structure, comprising abstract and concrete classes, that assists in building applications.
Pointers used for accessing specific objects, data items, and software methods are data items which include values of system equivalents of absolute addresses in computer memory. Null pointers, or zero pointers, are pointer variables or literals which have been assigned a system value, for example, zero, denoting that a specific pointer is currently pointing to a null or non-existent item. References and reference variables are generally data items which have values of system equivalents of absolute addresses in computer memory. In programming terminology, dereferencing a reference means accessing information at the computer memory address referenced by a pointer or reference.
A compiler is a software program that translates programs written in a high-level language, such as C++ or Pascal, into an intermediate language or machine language which is specific to a particular computer system configuration. In general programming terminology, data items, variables, and functions or software methods are declared so that a compiler knows specific names the programmer will use in the high-level language code to be translated. A compiler typically creates a symbol table to keep track of valid data items, variable names, function or software method names, structures, and addresses thereof as space is allocated. This process enables the compiler to assign numeric addresses to references to the data items, variables, functions or software methods, or software structures, or to create executable code to enable referencing of the data items, variables, functions or software methods or software structures during execution of the executable code that is output from the compilation process. For purposes of this invention, a declaration of a data item, variable, function, or software method is a declaration of the name of the data item, variable, function, or software method. A definition of the data item, variable, function, or software method is the defining content for the data item, variable, function, or software method. For example, the declaration of a software method named “draw” includes the name and types of interfaces for the software method, but not the defining code. The definition of the software method named “draw” includes the name of the software method, any needed data type information, information concerning parameters to be passed, and the defining code for the software method. In some programming languages, a definition is also a declaration.
The three main features of object-oriented programming are inheritance, encapsulation, and polymorphism. Encapsulation and polymorphism have already been described and are already well known in patents relating to object-oriented systems. Inheritance allows a programmer to establish a general software class with features which are desirable for a wide range of software objects. For example, if a programmer designs a software class shape having certain generalized features such as a closed convex shape and a generalized computable property called “draw,” it is then possible to construct subclasses derived from the superclass shape such as triangles, squares and circles, all having the shared properties of the parent class shape, with additional properties such as the lengths of sides or a radius value. It is also possible, for example, to have derived subclasses of classes which have additional properties such as a solid circle and a dashed circle.
The class shape is considered a base class, in that instantiations of actual objects is performed in its subclasses. The class shape is also considered an abstract class, in that it makes no sense to instantiate a shape object since object properties are not fully defined for the class shape. An abstract class is a class from which no objects are instantiated, and for which an interface for subclasses is established. The class shape establishes certain properties inherent to all shape subclasses for inheritance purposes. For example, an operation named “draw” of a shape, a commonly requested operation among users of shapes, can be declared as a software method for the class shape, to be inherited in all subclasses of the class shape. A programmer creates new classes derived from the class shape which inherit all desired features of the class shape without rewriting code already written for the class shape. This feature, called reusability, offers tremendous savings of time and resources in system development, maintenance, and support.
In many high-level programming languages, a programmer declares a derived class by providing the name of the class being declared and the names of base classes from which the derived class is to inherit properties. In t

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and method for interfacing two modules supporting... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for interfacing two modules supporting..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for interfacing two modules supporting... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3139326

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.