<<<<<<<<<<<<<<<<<
lymb
LYMB is an object-oriented software development system that allows users to create object-oriented applications in C and provides an interactive interface to these applications. LYMB provides macros and run-time support for inheritance, instancing and message passing, as well as a parser that allows users to create instances and pass messages.
Object-oriented systems are characterized by abstract constructs called "objects", that contain data and procedures to manipulate that data. Some commonly used object- oriented terminology is presented below.
Objects, the abstractions of object-oriented systems, often correspond to a physical or abstract object in the system being modeled. Every object has two parts: a private part and shared part. The private part consists of data that is not visible to other objects and can only be accessed by other objects by message passing. An object's private data constitutes its state. The shared part consists of data and methods accessible to all the instances of a given class. Classes and instances are both objects.
Classes are objects that are similar to types in procedural languages. They contain templates that can be copied to create instances. Their private data are called class variables. This data is accessible by any instance of the class. Classes have a table of procedures (method dictionary) indexed by messages. These procedures, called methods, define the valid operations that can be performed on the class and its instances. Usually, a class provides a method to create instances of the class. Because of this, a class is sometimes called a factory object.
Instances are objects that are created by classes. Their private data are called instance variables. Instances share their method dictionaries with other instances of the same class.
Methods are procedures that access an object's data to access or change the data, or to perform some complex action. All instances in a class share the
same methods.
Messages act as selectors to procedures. At run-time, a message handler controls the passing of messages to objects by looking up messages in an object's method dictionary and invoking the corresponding procedure. A method dictionary contains a table of methods indexed by messages.
Inheritance is the mechanism through which data structures and procedures are passed from objects in the class hierarchy. Two forms of inheritance are possible: single and multiple. LYMB implements single inheritance.
To create an application in LYMB, the user performs the following steps:
1. Writes a main program, in C, that defines the classes in the application. Writes classes, in C, using the LYMB macros and methodology mixed with conventional programming techniques.
2. Compiles the C programs, producing object files.
3. Loads the user-written C main and classes with the LYMB run-time library, producing an executable.
4. Prepares scripts for the LYMB parser which has been linked with the user's application code.
5. The user application reads the scripts.
6. The application creates output.
The first three steps in this list are dealt with in the "LYMB Reference Manual." Steps 4-6 are discussed in "A Practical Introduction to LYMB." LYMB applications are written in C with object-oriented tools provided by the LYMB environment. A user interfacing these applications with scripts confronts the parser object presented by the system at run time. Application means a set of classes that may consist of one class only.
1. Lorensen W., Yamrom B., McLachlan D., Barry M. "LYMB Reference Manual" General Electric Research and Development Center, Schenectady, NY, 1986.
2. Yamrom B., Lorensen W., Schroeder W. "A Practical Introduction to LYMB" General Electric Research and Development Center, Schenectady, NY, 1986.
Return to ACS home page.
Please send comments and suggestions to
consult@rpi.edu