Browse Prior Art Database

Object-Oriented Programming in C - the Linnaeus System

IP.com Disclosure Number: IPCOM000099910D
Original Publication Date: 1990-Feb-01
Included in the Prior Art Database: 2005-Mar-15
Document File: 3 page(s) / 144K

Publishing Venue

IBM

Related People

Allard, JR: AUTHOR [+6]

Abstract

In the field of software engineering it is known that object-oriented programming (OOP) promotes modularity and reusability of programs. Although various object-oriented languages and development systems are currently available, a number of problems diminish their usefulness for product development. Such problems include the incompatibility of the language with required system services, mismatches of the language with the delivery platforms, or simply conflicts with the corporate strategy.

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

Object-Oriented Programming in C - the Linnaeus System

       In the field of software engineering it is known that
object-oriented programming (OOP) promotes modularity and reusability
of programs.  Although various object-oriented languages and
development systems are currently available, a number of problems
diminish their usefulness for product development.  Such problems
include the incompatibility of the language with required system
services, mismatches of the language with the delivery platforms, or
simply conflicts with the corporate strategy.

      Some prior solutions to this problem adopt object-oriented
methodologies using a traditional language like C.  This approach is
called a hybrid OOP framework.

      Two hybrid schemes, both based on the C switch statement, have
been considered and rejected.  In each scheme, a class is represented
by a single function (or message handler) containing a switch
statement.  Each case evaluation corresponds to a message that the
class implements.  The default case passes messages to the
superclass.

      Despite their advantages, both hybrid approaches have a number
of deficiencies.  As the class trees grow and the number of messages
increases, resolving the destination of a message takes longer,
because execution must pass through more case evaluations.
Unfortunately, a prolific class tree with many branches is highly
desirable since it encourages code reuse.  In addition, all message
protocols must be uniform; that is, all input and output parameters
must be packed into a fixed interface.  When all message protocols
look alike, information and expressiveness are lost. Another
alternative considered is C ++.

      Unlike a hybrid system, C++ is a true object-oriented
programming language.  C++ adds new language constructs to C.  These
constructs go beyond the data abstractions of languages such as ADA
and begin to address the special characteristics of object-oriented
programming.

      But C++ has the disadvantage inherent in all precompilers:  the
need for two source files, one you change and one you debug.  This
adds complexity, particularly in large-scale program development.
The presently disclosed technique, called the Linnaeus System, does
not suffer from the deficiencies of these alternatives.

      The Linnaeus System addresses the problems of existing hybrid
approaches.  The Linnaeus System provides for gramming in the C
programming language.  This system supports the key object-oriented
programming concepts of objects, classes, messaging, inheritance,
encapsulation, and polymorphism.

      All language constructs of C are supported, and no new ones are
introduced.  By using C language features such as preprocessor
directives and function pointers, the Linnaeus System enables
programmers to write programs with object-oriented characteristics
while maintaining optimal performance.

      Objects are defined as a set of metho...