Browse Prior Art Database

Implementing Operator Overloading to Create Generic Methods

IP.com Disclosure Number: IPCOM000122625D
Original Publication Date: 1991-Dec-01
Included in the Prior Art Database: 2005-Apr-04
Document File: 4 page(s) / 191K

Publishing Venue

IBM

Related People

Barrett, K: AUTHOR [+2]

Abstract

The Enabling Architecture is a general, modular, and flexible software architecture. It is the result of a task force that investigated alternative design strategies for Release 1.0 of Extended Services, which includes the Communications Manager. The initial goal was to eliminate some of the fundamental limitations of the Communications Manager configuration; however, the software architecture described here is applicable to other products as well. Characteristics of the new Enabling Architecture include: - Unification of redundant architectures. - Support for a vertical team organization. - Facilitation of code reuse. - Support for multiple configuration files and configuration file formats. - Separation of the user interface from the configuration data. - Support for new function. - Implementation of an open architecture.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 34% of the total text.

Implementing Operator Overloading to Create Generic Methods

      The Enabling Architecture is a general, modular, and
flexible software architecture. It is the result of a task force that
investigated alternative design strategies for Release 1.0 of
Extended Services, which includes the Communications Manager.  The
initial goal was to eliminate some of the fundamental limitations of
the Communications Manager configuration;  however, the software
architecture described here is applicable to other products as well.
Characteristics of the new Enabling Architecture include:
- Unification of redundant architectures.
- Support for a vertical team organization.
- Facilitation of code reuse.
- Support for multiple configuration files and configuration file
formats.
- Separation of the user interface from the configuration data.
- Support for new function.
- Implementation of an open architecture.
- Preparation for later convergence with AIX*.

      The Enabling Architecture is an architecture designed to meet
most or all of these goals.  It is an object-oriented architecture
consisting of two main pieces: a topology graph showing the
relationships between objects such as hardware information, user
data, configuration files, and the communications features installed
by the user, and a C API implementing the methods used to access the
objects in the topology.

      The architecture is not tailored for use only by configuration;
it can be used by runtime or by any code that needs to access the
objects without regard for how or where they are stored.  In fact,
the architecture does not even assume that the context is
Communications Manager;  it was designed to be generic, for
application in other areas as well.

      This article and (1,2,3) explain further the key points of the
Enabling Architecture.
OPERATOR OVERLOADING

      In an object-oriented system, methods are the operations
allowed on an object of a specified type. Implementing methods in a
conventional programming language, such as C, requires a scheme for
handling operator overloading.  The Enabling Architecture handles
this via the "Three-DLL Mechanism for Method Selection".

      Operator overloading refers to the use of the same token or
identifier to specify similar (but not identical) operations on
different classes of objects.  For instance, the symbol "*" takes on
two different meanings in the instruction "C = A * B" depending upon
whether the variables A, B, and C represent integers or matrices.
Since the algorithm for multiplying matrices is considerably more
complex than simple integer multiplication, different code must be
executed according to the type of the variables being operated on.
Similarly, in an object-oriented system, the same method name may be
defined for several different object classes to represent similar
operations.

      In the Enabling Architecture, this is a commonplace event.  A
set of generic methods is defined for...