Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z - Internet FAQ Archives

Comp.Object FAQ Version 1.0.9 (04-02) Part 11/13

( Part1 - Part2 - Part3 - Part4 - Part5 - Part6 - Part7 - Part8 - Part9 - Part10 - Part11 - Part12 - Part13 )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Neighborhoods ]
Archive-name: object-faq/part11
Last-Modified: 04/02/96
Version: 1.0.9

See reader questions & answers on this topic! - Help others by sharing your knowledge
Indicate in your accompanying letter whether you want the system on a 9-track
tape at 1600 BPI, at 6250 BPI, on a cartridge tape for SUN shoeboxes (QIC 24 
format), or on a TK50 DEC cartridge tape.

>22  Sniff (C++ devel environ)

[See also APPENDIX C, SNiFF+, for the commercial version]

What: SNIFF (Sniff 1.1b (C++ Development Environment))
From: (Stephen Hite)
Date: 23 Aug 92 18:14:00 GMT

Sniff 1.1b is available from in the C++ hierarchy.  It's a
development environment for C++ (minus the C++ compiler or interpreter).
It's freely available and you're gonna need OpenWindows 3.0 if you want
to play with it immediately.  I just downloaded it and haven't had a 
chance to look into whether the XView 3.0 package will be able to handle
everything Sniff requires of the OpenLook part.


From: (Mr. Sniff)
Newsgroups: comp.lang.c++,comp.unix,comp.unix.osf.osf1,comp.unix.solaris,comp.object
Subject: SNiFF+ takeFive Starts Free University Distribution of Commercial C/C++ Programming Environment
Date: 22 Sep 1993 15:51:26 GMT
Organization: EUnet EDV-Dienstleistungsgesellschaft m.b.H
Keywords: programming environments, browsing, C++

SNiFF+: takeFive Starts Free University Distribution of Commercial C/C++
Programming Environment

1. Introduction
Since the beginning of 1993 takeFive has taken over development and support 
for SNiFF+, a leading edge C/C++ programming environment.  With SNiFF+ 
rapidly gaining commercial acceptance takeFive has decided to offer the 
product free to educational establishments. There are several reasons for 
this step.


6. How to Obtain SNiFF+
6.1 FTP
Sniff can be downloaded from anonymous FTP sites in USA and Europe.
You can get all details from


From: (Hermann Hueni)
Subject: Re: Browsers
Date: Fri, 11 Jun 1993 12:37:28 GMT

Sniff is a commercial product.
Send mail to
AN early version is available as a SUN SPARC binary only from     (THIS site is in EUROPE)

>23  C++ tags

What: ctags/etags for C and C++
From: (Sam Kendall)
Date: 10 Jun 92 09:31:27 GMT

A lot of people have requested this software!  You can now get Tags for
C/C++ version 1.0 via anonymous ftp at: is  Anonymous ftp means login as "ftp" and
give your email address as the password.

If you don't have ftp access to the internet, you may want to wait for this
stuff to come out in comp.sources.unix.  Or, if you plan to use it right away,
send me a letter that says "I can't use ftp; please send by email" and I will
do so.

>24  short tool

From: (Neil Wilson)
Subject: New version of 'short' available
Date: Sat, 7 Aug 1993 09:38:25 +0000

A new beta release (1.2) of 'short' is available from the Stuttgart
Eiffel archive ( in directory

Command line processing is now included in the short system. Short can
now cope with multiple input files, the standard input and deal with
most file errors.

Short now depends on the argument cluster which is available from
the same archive and directory.

Short supports the following options:

        -V, +version, -h, +help
                Displays the 'short' version information and gives the
                usage help message for the command.

        -e, +abstract, +eiffel
                Produces a fully deferred version of the input class(es)
                which will compile just like any other class (hopefully :-)

        -l <class_name>, +view <class_name>
                Produces the output from the point of view of the class
                <class_name> - the "short form for <class_name>".
                Special handling for ANY and NONE of course. By default
                short outputs the "short form for ANY".

        -f, +full
                Produces the short form including all the feature
                blocks.  (Implemented as the "short form for NONE".)

        -p, +parents
                Retains the inheritance clause in the output. The default is
                to drop it.

        -b <number>, +blank <number>
                Indent levels by <number> characters. 

        -c <number>, +column <number>
                Width of the output is <number> characters. Should be
                greater than 20.

Obsolete features are not retained. Obsolete classes retain no features.

The output of the tool now conforms to the layout rules in Appendix A of
ETL and should look like the 'short' examples in the book. As much as is
possible the output and command line options conform to ISE's 2.3
version of 'short'.

This release of short has been tested on all the v1.21 Eiffel/S
libraries, itself and the argument clusters, plus any other class
fragments I had lying around at the time.

My biggest debt is of course to David Morgan. This version is only
really a tiny modification of his work. His ELEXER Eiffel 3 parser
remains the core of the tool.  I though am responsible for any remaining
deficiencies or problems with this release.

Problems, suggestions, comments, criticisms to me please. All gratefully
received - I can't improve my Eiffel if somebody doesn't tell me where I
blew it.

>25  COOL(C++, Cfront 2.1, from GE)

COOL is a C++ class library developed at Texas Instruments.

Features are:
1. Rich set of containers like Vector, List, Hash_Table, Matrix, etc...
2. Hierarchy is shallow with no common base class, rather than deep like NIHCL.
3. Functionality close to Common Lisp data structures, like GNU libg++.
4. Template syntax very close to Cfront3.x, g++2.x.
5. Free, with good documentation, and extensive test cases.

Light version of COOL from General Electric:
1. Hairy macros, run-time type, exceptions removed for mainstream C++
2. Free of memory leaks and bound violations. Leaks and bounds are checked
   with Purify.
3. Has memory management and efficient copy in expressions like:
  Set c = a+b+c;    
  Pointers are shared with Handle and Reference count. Deep copy in
  expressions are replaced by shallow copy.
4. Compatible with Cfront2.1, and is being converted to Cfront3.0. You can
  build both static and shared library on SunOS 4.1.x

1. original version from Texas Instruments:
   at, get pub/COOL.tar.Z
2. Cfront2.1 version modified by General Electric:
   at, get pub/COOL/GE_COOL2.1.tar.Z

I am working on Cfront3.0 version of COOL, using the Beta 3.0 from Sun. I am
experiencing problems with instantiation and specialization of templates.  So
Cfront3.0 version of COOL won't be available until Sun's Cfront 3.0 is
released with bugs fixed.

Van-Duc Nguyen
General Electric 
Research & Development Ctr
1 River Road, Room K1-5C39.
Schenectady, NY 12301.
Phone: (518) 387-5659
Fax:   (518) 387-6845

>26  idl.SunOS4.x, idl.Solaris2.x

Subject: Binaries for OMG IDL CFE placed on
Date: 11 Jun 93 00:13:11 GMT

SunSoft has made available statically linked binaries for the OMG IDL CFE,
for both Solaris 1.x and Solaris 2.x. Because they are statically linked,
these binaries can be used on systems which do not have the SparcWorks (TM)
compilers installed.

It is expected that people who only want an IDL parser will prefer to
obtain these binaries instead of compiling the program on their host.
People who want to build a complete compiler, by programming their own
back-end, will continue to obtain the sources which are also provided at
the same location.

The binaries can be obtained by anonymous FTP to They are
installed in the directory pub/OMG_IDL_CFE_1.2/bin, in idl.SunOS4.x and
idl.Solaris2.x. Uuencoded versions are also available, in the same

Please send email to if you obtain these files.

The attached copyright applies to the provided binaries and to the source
files provided on the file server.

Copyright 1992 Sun Microsystems, Inc.  Printed in the United States of
America.  All Rights Reserved.

This product is protected by copyright and distributed under the following
license restricting its use.

The Interface Definition Language Compiler Front End (CFE) is made
available for your use provided that you include this license and copyright
notice on all media and documentation and the software program in which
this product is incorporated in whole or part. You may copy and extend
functionality (but may not remove functionality) of the Interface
Definition Language CFE without charge, but you are not authorized to
license or distribute it to anyone else except as part of a product or
program developed by you or with the express written consent of Sun
Microsystems, Inc. ("Sun").

The names of Sun Microsystems, Inc. and any of its subsidiaries or
affiliates may not be used in advertising or publicity pertaining to
distribution of Interface Definition Language CFE as permitted herein.

This license is effective until terminated by Sun for failure to comply
with this license.  Upon termination, you shall destroy or return all code
and documentation for the Interface Definition Language CFE.

[...] etc. on copyright stuff [...]

SunSoft, Inc.  
2550 Garcia Avenue 
Mountain View, California  94043

>27  Browser for OO info

A search engine for Object-Oriented Information Sources on the World
Wide Web is being maintained by the Software Composition Group at the
University of Berne, Switzerland.  The URL to access is:

A mirror of the catalog is available from the University of Geneva:

Please e-mail suggestions for new entries to: 

A searchable bibliography of object-oriented references is also available:

as is a (searchable) version of the OO FAQ:

Oscar Nierstrasz

Prof. Dr. Oscar Nierstrasz;;
Software Composition Group; CS Inst., U. Berne; Tel/Fax: +41 31 631.4618/3965

>28  Apertos(Meta-Obj Distr OS, research)

The Apertos (formerly MUSE) project at Sony Research
is a meta-object based distributed OS for turning portable wireless
hand-held computers into fully-connected Dynabook-like
terminals.  It's very very wizzy.  The papers are on:

The source is available for research; I think you have to
sign something first.

>29  Actors Paper (UIUC)

From: (Gul Agha)
Subject: Actor Theory Paper available
Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
Date: Wed, 4 Aug 1993 15:41:02 GMT

A new paper providing a definitive and detailed development of the
semantics of actor systems is available via anonymous ftp.  Comments
are especially welcome.  

Title:          A Foundation for Actor Computation

Authors:        Gul Agha, Univerity of Illinois at Urbana-Champaign
                Ian Mason, Stanford University
                Scott Smith, John Hopkins University
                Carolyn Talcott, Stanford University


        We present an actor language which is
        an extension of a simple functional language, and provide a precise
        operational semantics for this extension.  Actor configurations are
        open distributed systems, meaning we explicitly take into account the
        interface with external components in the specification of an actor
        system.  We define and study various notions of equivalence on actor
        expressions and configurations.

to ftp the compressed postscript file:
        ftp  (or
        login: anonymous
        send ident as password.
        cd pub/MT
the file is called: 

Note: the paper is 76pp long.  It subsumes work reported in our paper
in CONCUR '92.  

(A number of other recent papers on actor languages and their
implementation may be obtained by anonymous ftp from in the directory pub/papers).

>30  Chambers' Thesis

What: SELF optimizing compiler and Thesis
From: (Craig Chambers)
Date: 9 May 92 22:00:53 GMT

My Ph.D. thesis, entitled "The Design and Implementation of the Self Compiler,
an Optimizing Compiler for Object-Oriented Programming Languages," is now
available as Stanford technical report number STAN-CS-92-1420.  Copies may be
ordered from Stanford.  Stanford requires $20 (plus tax for orders from within
California), in advance, for each copy.

The dissertation also is available in compressed postscript form.  The
electronic version may be copied via anonymous ftp from in
the directory pub/papers/chambers-thesis.  This version is free.  Note however
that the thesis is about 250 pages long.

>31  graph drawing

From: (Roberto Tamassia)
Subject: annotated bibliography on graph drawing algorithms
Organization: Brown University Department of Computer Science
Date: Wed, 30 Jun 1993 06:45:48 GMT

A new revised version of the annotated bibliography on graph drawing
algorithms by Giuseppe Di Battista, Peter Eades, Roberto Tamassia, and
Ioannis Tollis is now available via anonymous ftp from (  The files are /pub/gdbiblio.tex.Z
and /pub/

>32  Law of Demeter

From: (Karl Lieberherr)
Subject: Law of Demeter/Adaptive Software
Organization: College of CS, Northeastern University
Date: Fri, 4 Jun 1993 20:41:49 GMT

 Yes, the Law of Demeter paper is available in electronic form on the
 net. Indeed, many of the Demeter project papers are available from
 the ftp server at Northeastern University (see instructions below).

 The Law of Demeter idea has been automated in the Demeter Tools/C++
 as an adaptive software tool which automatically makes much of your C++ code
 compliant with the Law of Demeter. The tool is an add-on tool to
 your favorite C++ development environment and is commercially available
 from Demeter International. The Demeter Tools/C++ lift
 object-oriented programming to a higher level of abstraction
 by allowing the user to focus on the essential and
 stable classes. A paper on ADAPTIVE SOFTWARE will appear in 
 the Communications of the ACM and is also available from the
 ftp server.

 For more information, use the ftp instructions below or call

Demeter International
56 Bennett Road
Marblehead, MA 01945

 phone: (617) 639 1544
 fax: (617) 373 5121

or send e-mail to 

-- Karl Lieberherr

FTP instructions:

Some of our papers are available in one package by anonymous ftp from (

in directory pub/demeter/documents

Use the following command sequence to copy the Demeter papers:

% ftp or
Name ( ... ): ftp
Password: your-email-address
ftp> cd pub/demeter/documents
ftp> ls
ftp> binary
ftp> get papers.tar.Z
ftp> quit
% uncompress papers.tar.Z
% tar xf papers.tar

If you want to copy individual papers and not all at once, go to 
directory pub/demeter/documents/papers and retrieve them

Law of Demeter paper:
Adaptive Software papers:

>33  OO Dyn Grping, memory

From: (Mario Wolczko)
Subject: Re: OOPLs and Locality of Reference
Keywords: locality of reference
Date: 5 Jul 93 14:39:13 GMT
Organization: Dept Computer Science, University of Manchester, U.K.

The measurements done as part of the work here on the Mushroom project
show that temporal locality within Smalltalk objects is great (and
hence even conventional caches work reasonably well [unless the GC
scheme trashes the cache]), whereas spatial locality on a scale much
larger than the average object (which is 40 bytes) is much harder to
come by.

More details can be found in these papers (all available by ftp from in /pub/mushroom/papers):
    "Dynamic Grouping in an Object Oriented Virtual Memory Hierarchy"
    Ifor Williams, Mario Wolczko, Trevor Hopkins, Proc. ECOOP 87,
    Springer-Verlag LNCS 276, pp.79-88.
    "Realization of a Dynamically Grouped Object-Oriented Virtual
     Memory Hierarchy", Proceedings of the Workshop on Persistent Object
     Systems: Their Design, Implementation and Use, available as
     Persistent Programming Research Report PPRR-44-87, Universities
     of Glasgow and St. Andrews, Aug. 1987, pp.298--308.
    "An Object-Based Memory Architecture"
    Ifor Williams and Mario Wolczko, in Implementing Persistent Object
    Bases: Proc. Fourth International Workshop on Persistent Object Systems,
    Morgan Kaufmann, 1991, pp.114-130.
    The first three figures are in obma-fig[123].ps.Z.

Mario Wolczko

   ______      Dept. of Computer Science   Internet:
 /~      ~\    The University              uucp:    mcsun!uknet!man.cs!mario
(    __    )   Manchester M13 9PL          JANET:
 `-':  :`-'    U.K.                        Tel: +44-61-275 6146  (FAX: 6236)
____;  ;_____________the mushroom project___________________________________

>34  Pred Classes (Cecil)

What: "Predicate Classes" paper
From: (Craig Chambers)
Date: Fri, 30 Apr 93 01:25:02 GMT

"Predicate classes are a new linguistic construct designed to
complement normal classes in object-oriented languages. Like a normal
class, a predicate class has a set of superclasses, methods, and
instance variables. However, unlike a normal class, an object is
automatically an instance of a predicate class whenever it satisfies a
predicate expression associated with the predicate class. The
predicate expression can test the value or state of the object, thus
supporting a form of implicit property-based classification that
augments the explicit type-based classification provided by normal
classes. By associating methods with predicate classes, method lookup
can depend not only on the dynamic class of an argument but also on
its dynamic value or state. If an object is modified, the
property-based classification of an object can change over time,
implementing shifts in major behavior modes of the object. A version
of predicate classes has been designed and implemented in the context
of the Cecil language."

Comments on the ideas in the paper are appreciated.

-- Craig Chambers

>35  Manchester Archive and some

What: Manchester Archive, SmallTalk-V
From: (Ralph Johnson)
Date: 18 Dec 91 19:41:38 GMT

We have a complete copy of everything in the Manchester archive, and you
can either access it by e-mail like the Manchester archive or by anonymous
ftp.  Our archive is on, and you can get information about the
e-mail server by sending to, and putting the
line help in your message. We actually have a little more than is in the
Manchester archive.  We have the Smalltalk-V code from the defunct
International Smalltalk Association, and a few other odds and ends.

The University of Illinois Smalltalk Archive is now offering a WWW server
the URL is

>36  Object Design's OO7 Results

What: Object Design's Results on the OO7 Benchmarks
From: (Glen Dudek)
Date: Thu, 29 Apr 93 17:17:11 GMT

April 26, 1993

We have made a copy of our results available to the Internet community. You
can access this information through anonymous ftp from in the
file /pub/oo7/

The report includes the "official" tests done for ObjectStore by the
University of Wisconsin, and our internal execution of all the tests using
ObjectStore Release 2.0.1, the current production version.  As the report
shows, our internal execution carefully followed the agreed-upon procedures
for running OO7, and we believe the numbers that were produced accurately
represent ObjectStore's performance.

        For further information contact

>37  Graph service

From: (Stephen C. North)
Subject: free samples of directed graph layouts by mail
Keywords: graph layout, DAG, embedder
Date: 25 Jun 93 18:28:29 GMT
Organization: AT&T Bell Laboratories, Murray Hill

I have created an experimental service for remote users to try some of
our graph layout programs through Internet mail, for research or
educational purposes.  I'm looking for a few friendly users to try this
service.  The programs are:

    dag (directed graphs, old, program, works with some USL C++ utilities.
                This may have unintentionally sparked the apparently misdirected 
                discussion of "DAG classes" in one newsgroup recently.)
    dot (directed graphs, newer algorithms, better layouts, more features)
    neato (undirected graphs, compatible with dot, Kamada-Kawai spring embedder)

You can ftp PostScript files of documentation from dist/drawdag/*.Z on

To draw graphs, send a graph file to
and give the command line in the Subject header.  For example,

    From cs.Princeton.EDU!north Thu Jun 24 11:45:28 0400 1993 remote from toucan
    Date: Thu, 24 Jun 1993 11:45:28 -0400
    From: Stephen North <north@cs.Princeton.EDU>
    Subject: dot -Tps 

    digraph G { a -> b }

File arguments are disabled for obvious reasons.  Please let me know if
you hit any snags.  There is a reasonable limit on graph size and probably
number of invocations from a given site/account. (If you use it that much,
AT&T's Intellectual Property Division sells binary executables; their number
is 800-462-8146).

Stephen North, AT&T Bell Laboratories, Murray Hill NJ, (908) 582 7392
Parturiunt montes, nascetur ridiculus mus!

>38  C++SIM (Simula-like Sim Pkg)

From: (Mark Little)
Subject: C++SIM Release 1.0 Announcement
Organization: Computing Laboratory, U of Newcastle upon Tyne, UK NE17RU
Keywords: C++, SIMULA, simulation, object-oriented
Date: Mon, 14 Jun 1993 15:02:33 GMT

C++SIM 1.0 Release Announcement.

This is to announce the release of version 1.0 of C++SIM, a simulation
package written in C++. C++SIM provides discrete process based
simulation similar to that provided by the simulation class and
libraries of SIMULA. The linked list manipulation facilities provided
by SIMSET are also included in the package.

Inheritance was used throughout the design to an even greater extent
than is already provided by SIMULA. This has allowed us to add new
functionality without affecting the overall system structure, and hence
provides for a more flexible and expandable simulation package.

A paper is included which describes the design and implementation of
C++SIM and includes a worked example of how to use the package. The
paper describes the class hierarchy which we have created, and
indicates how it can be used to further refine the simulation package.

The simulation package requires the use of a threads package and
currently only works with Sun's lightweight process library or the Gnu
thread package (which *is* included in the distribution). The package has
been used on Sun workstations, and, with the exception of the thread
library requirement, contains no system specific code which should make
porting to other systems relatively easy. The code has been compiled
with Cfront 2.1 and Cfront 3.0.1 and g++ 2.3.3

If you find any bugs or make modifications (e.g., ports to other thread
packages) or port it to other systems, then please let me know so I can
keep the sources up-to-date for other users.

The package is available via anonymous ftp from

>39  commercial on cd-rom

From: (Jim Adcock)
Subject: Re: Non-defense Ada applications - answering several requests
Date: 11 Jun 93 18:56:55 GMT
Organization: Microsoft Corporation


1) Get a copy of the Computer Select Database.  [I notice the company
is offering free trial copies [the database is CD-ROM based]]

2) Select "Section: Software Product Specifications"

3) Select "Find: C++"

Behold!  A list of 734 commercially available software packages written
in C++, including some of the best known names in the software industry.

>40  C++ Signatures (subtyping)

From: (Gerald Baumgartner)
Newsgroups: comp.object,comp.lang.c++
Subject: signature implementation for G++ 2.5.2 and tech report available
Date: 4 Nov 1993 12:03:00 -0500
Organization: Department of Computer Sciences, Purdue University

Announcing the paper

	Signatures: A C++ Extension for
	Type Abstraction and Subtype Polymorphism

	by Gerald Baumgartner and Vincent F. Russo.
	Tech report CSD-TR-93-059, Dept. of Computer
	Sciences, Purdue University, September 1993.
	Submitted to Software Practice & Experience.

and a beta release of our implementation of

	signatures for GCC 2.5.2.

 How to Get that Stuff?

You can get both the paper and the implementation by ftp from

	host:	(

	login:		anonymous

	password:	your e-mail address

	directory:	pub/gb

	files:		COPYING			Copyright notice.

			README			This file.

			Signatures.{dvi,ps}.gz	DVI and Postscript versions
						of the paper.

			gcc-2.5.2.sig.diff.gz	Patch to upgrade GCC 2.5.2.

			test.tar.gz		Test files and script to run
						the tests.

To make GCC 2.5.2 understand signatures, just copy the context diff
file into the GCC source directory, type

	gunzip gcc-2.5.2.sig.diff.gz
	patch < gcc-2.5.2.sig.diff

and rebuild and install `gcc,' `cc1plus,' the man pages, and the manual.

For compiling C++ code containing signatures, you need to use the
command line option


We tested our extension on Sun 4 only, but since there are no changes
to the compiler backend, it is expected work on other architectures as
well.  To test whether it works on your architecture, unpack the file
`test.tar.gz' and run the shell script


It compiles the test programs and runs them.  If everything works
correctly, all the test programs (all 40 of them) should print

	Hello World.

 What are Signatures anyway?

Roughly, signatures are type abstractions or interfaces of classes.
They are related to ML's signatures, categories in Axiom, definition
modules in Modula-2, interface modules in Modula-3, and types in

The main language constructs added are signatures and signature pointers.
For example, the signature declaration

	signature S
	  int foo (void);
	  int bar (int);

defines a new abstract type `S' with member functions `int foo (void)'
and `int bar (int).'  Signature types cannot be instantiated since they
don't provide any implementation.  Only signature pointers and signature
references can be defined.  For example,

	C obj;
	S * p = &obj;

defines a signature pointer `p' and initializes it to point to an object
of class type `C,' where `C' is required to contain the public member
functions `int foo (void)' and `int bar (int).'  The member function call

	int i = p->foo ();

executes then ` ().'

Class `C' is called an implementation of the abstract type `S.'  In
this example, we could have made `S' an abstract virtual class and `C' a
subclass of `S,' and we would have had the same effect.  The advantages
of signatures over abstract virtual classes are

	- you can build a type hierarchy separate from the class inheritance
	  (implementation) hierarchy,
	- subtyping becomes decoupled from inheritance, and
	- signatures can be used with compiled classes, while you cannot
	  retrofit an abstract virtual class on top of compiled class

For more information, please, see the paper.

 What's Implemented and what's not?

Signature declarations and signature pointers are implemented and
working.  For examples of what's working and how to use them you can
have a look at the test files.

The following bugs are known:

      - The destructor of objects cannot be called though signature pointers.
      - A signature pointer cannot point to an object of a class defined
	by multiple inheritance.
      - The signature conformance check does not work if the signature
	contains other signature declarations or class declarations.
      - Operator and conversion operator member functions of signatures
	can only be called with function call syntax, such as
	`p->operator+(17),' but not with operator or conversion syntax.

The following language constructs and features are not yet implemented:

      - constants in signatures,
      - signature references,
      - signature inheritance,
      - the `sigof' (signature of a class) construct,
      - views (not even the parsing is done),
      - signature templates, and
      - exception specifications in signature member function declarations.

The following optimization is not implemented:

      - Looking up a virtual class member function through a signature
	pointer/reference requires double indirection.  This can be optimized
	by memoizing, so that only the first lookup of a member function
	requires double indirection and further lookups require only single

The items above are roughly in the order in which they will be implemented.

Besides bug fixes, the main features that have been implemented since the
last release are default implementations of signature member functions
and opaque types.


Please, send your questions, comments, suggestions, and complaints to

Gerald Baumgartner
Dept. of Computer Sciences, Purdue University,  W. Lafayette, IN 47907
Internet:, UUCP: ...!{decwrl,gatech,ucbvax}!purdue!gb

>41 The Texas Persistent Store

  The Texas Persistent Store, version 0.1

Texas is a simple, portable, high-performance and (best of all) FREE
persistent store for C++ using "pointer swizzling at page fault time"
to translate persistent addresses to hardware-supported virtual addresses.

Texas is built on top of a normal virtual memory, and relies on the
underlying virtual memory system for caching.  It uses user-level virtual
memory protections to control the faulting of data from a persistent storage
file into virtual memory.

All addresses in a page are translated from a persistent format to
actual virtual addresses when the page is brought into virtual memory,
and subsequent memory references (including pointer traversals) are
just as fast as for non-persistent data.

Texas is easy to use, and is implemented as a UNIX library.  It is small
and can be linked into applications.  It requires no special operating 
system privileges, and persistence is orthogonal to type---objects may be 
allocated on either a conventional transient heap, or on the persistent
heap, as desired.

Texas supports simple checkpointing of heap data.  A log-structured storage
module is under development, and will provide fast checkpointing of small

Texas is beta software, and the current prerelease version supports only
simple single-machine operation.  Future releases will support client-server
operation, a flexible access control scheme, and transaction support.

Texas currently runs under SunOS and ULTRIX, using Sun CC or GNU C++.
Porting to other modern systems (e.g., OS/2, WNT, Mach) should be easy---it
requires only mprotect(), signal(), and sbrk() calls (or their equivalent)
to control virtual memory protection setting and trap handling.

Papers about the pointer swizzling scheme and Texas itself (referenced
below) are available via anonymous ftp from (IP address, as postscript files and in the
directory pub/garbage.

The source code for Texas is also available, in the directory


Paul R. Wilson and Sheetal V. Kakkad, "Pointer Swizzling at Page Fault
Time: Efficiently and Compatibly Supporting Huge Address Spaces on Standard
Hardware," Proc. Second Int'l. Workshop on Object Orientation in Operating
Systems, Sept. 1992, Dourdan, France, pp. 364--377.

Vivek Singhal, Sheetal V. Kakkad, and Paul R. Wilson, "Texas: an Efficient,
Portable Persistent Store", Proc. Fifth Int'l. Workshop on Persistent Object
Systems, Sept. 1992, San Miniato, Italy, pp. 11-33.

>42 OSE C++lib

From: (Graham Dumpleton)
Date: Tue, 9 May 1995 08:58:55 +1000 (EST)

OSE is a collection of programming tools and class libraries for C++. The
core of the environment is the C++ class libraries, of which three are
provided. These are:

  OTCLIB - A library of generic components, including support for error
  handling, error message logging, error recovery, program debugging,
  memory management, resource management, generic collections, text
  manipulation, date/time, operating system interfacing and event driven

  OUXLIB - A library of components which primarily extends classes in the
  OTCLIB library to support features specific to the UNIX operating

  OTKLIB - A library of components which builds on the OTCLIB and OUXLIB
  libraries to allow integration of the TCL/TK library into applications
  using the event driven systems framework provided by the OTCLIB

The C++ libraries are portable to a wide range of C++ compilers on the
UNIX platform. Supported C++ compilers include those from ATT/USL (CFRONT),
CenterLine, DEC, HP, IBM, Lucid, ObjectStore, SGI (CFRONT), SGI (DELTA),
Sun (CFRONT) and Sun (NATIVE), as well as the freely available GNU C++
compiler. If your C++ compiler does not support templates, it is possible
to use a template preprocessor which is supplied with OSE. If your C++
compiler support exceptions, they will be used. Portability to all the
major variants of UNIX has been achieved. Supported platforms include AIX,
BSD, HPUX, IRIX, Linux, NeXT, OSF, SCO, Solaris, SunOS, SYSV and Ultrix. In
addition to being available under UNIX, the OTCLIB library has been ported
to DOS, OS/2 and Windows NT using Borland, Watcom and Microsoft C++

The C++ libraries have been fully integrated with the ObjectStore OODBMS,
allowing instances of classes from the C++ libraries to be made persistent.
The C++ libraries can also be used in conjunction with applications using
Versant, although in this case instances of classes from the C++ libraries
cannot be made persistent.

In addition to the C++ libraries, a build environment is provided. The
build environment greatly simplifies the writing of makefiles, making the
the task of building applications, as well as the generation and
installation of both static and shared libraries easy. The details of
template instantiation for many of the C++ compilers is also hidden, making
it possible to write makefiles which are portable between different C++
compilers as well as different platforms. The build environment also
supports tasks such as schema generation for the ObjectStore and Versant
OODBMS, and testing of applications using tools such as Purify, Quantify,
PureCoverage, TestCenter and Sentinel.

Comprehensive documentation for the C++ libraries and build environment is
provided. Documentation for the C++ libraries comes in the form of a UNIX
style manual page for each class and higher level documentation giving
examples of how to use the classes. The UNIX style manual pages are
generated from the class header files using documentation extraction tools.
These tools are provided with OSE and are capable of generating both UNIX
style manual pages and Frame documents.

Development of OSE commenced in 1990, being made freely available via the
Internet in 1993. OSE was winner of CODA'94, the ComputerWorld Object
Developer Awards, held in conjunction with ObjectWorld in Sydney,
Australia. The category in which OSE was a winner was "Best implementation
of a reusable development environment for company deployment".

OSE (source code and documentation) can be obtained via anonymous ftp from:

  Europe: []
    directory pub/programming/languages/C++/class-libraries/OSE

  United States

    -- looking for new site

  Australia: []
    directory pub/SEG/ose

Documentation for OSE is also available online via WWW at:

Questions regarding OSE can be sent to;

A mailing list for discussion of OSE, and a mail server providing a list of
known problems and fixes also exists.

OSE is made freely available by Dumpleton Software Consulting Pty Limited.
OSE contains licensed program materials which are the copyright of Telstra
Corporation Limited and which are licensed to Dumpleton Software Consulting
Pty Limited by Telstra Corporation Limited.

>43 Traces,kiczales,MOP,DI

From: (Gregor Kiczales)
Subject: Re: Dynamic Objects
In-Reply-To:'s message of 25 Aug 93 21:52:56 GMT
Message-ID: <>
Organization: Xerox Palo Alto Research Center
References: <> <>
Date: 3 Sep 93 09:35:06

Earlier in this series of messages, Craig Chambers and others mentioned
his ECOOP'93 paper on predicate classes, which provide a powerful handle
on some of the problems that have been mentioned in this series of
messages, specifically, how dynamic changes to an object or its context
can be harnessed to reliably effect the object's (message receipt)
behavior.  As I see it, predicate classes are a key step towards solving
one of the most frustrating problems of OO programming: the struggle
over whether to encode some difference among objects in the value of a
slot (that is one of its parts) or in the object's `method table' (class
or that which it is one-of).

A closely related problem, that has also come up in this series of
messages, is how so-called factory objects can dynamically select the
behavior of the objects they create.  We have developed a new OO
language concept called Traces, that can be used to make much more
powerful factory objects, as well as handle some of the things predicate
classes do.  The two ideas are similar in that they both make behavior
selection a much more dynamic phenomena.

My ISOTAS'93 paper presents the concept of Traces and shows it
application to some problems.  This paper is available for anonymous FTP
from, in the /pub/mops directory.  The file is


Following is the abstract from the paper:
Object-oriented techniques are a powerful tool for making a system
end-programmer specializable.  But, in cases where the system not only
accepts objects as input, but also creates objects internally,
specialization has been more difficult.  This has been referred to as
the ``make isn't generic problem.''  We present a new \oo{} language
concept, called traces, that we have used successfully to support
specialization in cases that were previously cumbersome.
The concept of traces makes a fundamental separation between two kinds
of inheritance in \oo{} languages: inheritance of default implementation
-- an aspect of code sharing; and inheritance of specialization, a
sometimes static, sometimes dynamic phenomenon.

>44 C++ coding standard

From: (Igor Metz)
Subject: Re: C++ coding standard
Organization: Dept. of CS, University of Berne, Switzerland
Date: Tue, 7 Sep 1993 07:08:21 GMT   (Internet Address:

[Also an archive site.  E.g. Coplien includes a dir of C++ examples]

>45 Kala Archive

From: (Sergiu S Simmel)
Subject: Kala White Paper now available via anonymous ftp
Message-ID: <>
Organization: Penobscot Development Corporation, Cambridge MA
Date: Fri, 10 Sep 1993 07:18:11 GMT

An 8-page paper providing an overview of what Kala is and what Kala is
for is now available, in PostScript format, in the Kala Archive. The
file is accessible, via anonymous FTP, at the following location:


The outline is the following

        1 What is Kala For?
        2 Software Infrastructure
                Persistent Data and Persistent Stores
        3 Data Transfer
        4 Data Visibility
                Changing Visibility
                Sharing Visibility
        5 Runtime and Architectural Models
        6 Relationship to Other Technologies

This paper is targeted towards those who don't know anything about
Kala and would like to find out a bit in 10 pages or less.


P.S. For those of you who do not have FTP access and would like to
     obtain this file, please send a brief e-mail message to, requesting that the file be e-mailed to you.
     Beware that the file is approximately 425Kbytes long (the paper
     contains 13 illustrations!).

>46 BeBOP(seq,par,LP,OO,meta)

From: (Andrew Davison)
Subject: BeBOP v.1.0 Available
Message-ID: <>
Organization: Department of Computer Sci, University of Melbourne
Follow-Up: comp.parallel
Date: Mon, 13 Sep 1993 04:08:41 GMT

 BeBOP and bp Version 1.0 now available

 What is BeBOP?
The language BeBOP is a unique combination of sequential 
and parallel Logic Programming (LP), object oriented 
programming and meta-level programming. 

The LP component offers both don't know non-determinism
and stream AND-parallelism, a combination not possible 
with concurrent LP languages. 

BeBOP's object oriented features include object IDs, 
encapsulation, message passing, state updating, and 
object behaviour modification. 

The meta-level capabilities are based on the treatment 
of Prolog theories as first order entities, which 
enables them to be updated easily, and for fragments 
to be passed between objects in messages.

BeBOP is implemented by translation down to NU-Prolog,
and its parallel extension, PNU-Prolog. An unusual
aspect of this is the way that object IDs are utilized 
as a communication mechanism between objects.

 What is bp?
The bp interactive interpreter supports BeBOP programming 
by allowing the flexible invocation of objects, and 
offering the means for setting up communication links 
between objects at any time. An incidental benefit is 
the ability to use `global' variables in queries. Since 
bp is an augmentation of the NU-Prolog np system, objects 
and Prolog goals can be combined, and a by-product is 
that the floundering of Prolog queries is avoided.

 Where are they?
The BeBOP system (BeBOP and bp), and the PNU-Prolog 
preprocessor pnp, can be found at the anonymous ftp 
site (, in the directory 
pub as the file bebop.tar.Z. Remember to use binary 
mode when copying it.

The release comes with a user manual, several papers 
(in Postscript format), sample programs, and source code.

 System requirements
The BeBOP system requires the following:

* The NU-Prolog system, compiler and interpreter
* The pnp preprocessor 
  (this is included as part of the BeBOP system release)
* GCC or similar compiler
* Yacc (or Bison) and Lex

 For more details, contact:
        Andrew Davison
        Dept. of Computer Science
        University of Melbourne
        Parkville, Victoria 3052

Fax:    +61 3 348 1184
Phone:  +61 3 287 9172 / 9101
Telex:  AA 35185

>47 Knowledge Media, Massive cd-rom, lots of freeware

A "Resource Library" of cd-rom discs .  CDs for language/OS, graphics, multi-
media, mega-media (3), and audio.  "Gathered from the resources of the
Internet, CompuServe, Genie, BIX, and other BBS's".  Some shareware.  Should be
available at your local software store.

From the back of the Languages CD:

  'Over 100 Languages'

This is the largest collection of compilers, interpreters, libraries, and
source code for standard and experimental computer languages and operating
systems ever assembled.  A must for anyone interested in computer programming,
this disc is just right for everyone, whether he or she is a researcher,
student, or an interested hobbist.

Knowledge Media Inc.
Paradise, CA  95969 USA

>48 u++, C++ Trans. and Concry RTS

From: (Nat Makarevitch)
Subject: Re: 'Concurrent Objects' - Suggestions needed
Date: 10 Oct 1993 02:41:15 GMT
Organization: LIVIA

       u++ - uC++ Translator and Concurrency Runtime System

The u++ command introduces  a  translator  pass  over  the
specified source files after the C preprocessor and before
the actual C++ compilation.  The translator converts  sev-
eral  new  uC++  constructs  into C++ statements.  The u++
command also provides  the  runtime  concurrency library,
which must be linked with each uC++ application.

uC++:  Concurrency in the Object-Oriented Language C++, by      
P.A.  Buhr,  G.  Ditchfield,  R.A.   Stroobosscher,   B.M.
Younger, C.R.  Zarnke;   Software-Practise and Experience,
22(2):137--172, February 1992.  This paper describes  uC++
v2.0, which has been significantly extended.

The  uC++  system is available via anonymous FTP
from  A license agreement
is required to use uC++.

>49 Real Time

From: (David B Stewart)
Subject: Re: Object-Oriented Systems and Realtime
Organization: The Robotics Institute, Carnegie Mellon University
Date: Mon, 11 Oct 1993 16:51:19 GMT

In article <>,
Chris Zimmermann <> wrote:
>Hi community:
>What is the state of the art concerning real time in 
>object-oriented systems (if any)? By this, I mean the
>marriage of more or less traditional real time systems
>(including systems concerned with "soft" real time aspects
>like multimedia) with the OO paradigm.

We've done significant work in that area.  Check out the following tech

D. B. Stewart, R. A. Volpe, and P. K. Khosla, "Design of Dynamically
    Reconfigurable Real-Time Software using Port-Based Objects," 
    Carnegie Mellon University Tech Report #CMU-RI-TR-93-11, July 1993.

	Abstract: The current development of applications for sensor-based
	robotic and automation (R&A) systems is typically a `one-of-a-kind'
	process, where most software is developed from scratch, even though
	much of the code is similar to code written for other applications.
	The cost of these systems can be drastically reduced and the capability
	of these systems improved by providing a suitable software framework
	for all R&A sys tems. We describe a novel software framework, based on
	the notion of dynamically reconfigurable software for sensor-based
	control systems. Tools to support the implementation of this framework
	have been built into the Chimera 3.0 Real-Time Operating System. The
	framework provides for the systematic development and predictable
	execution of flexible R&A applications while maintaining the ability to
	reuse code from previous applications. It combines object-oriented
	design of software with port-automaton design of digital control
	systems. A control module is an instance of a class of port-based
	objects. A task set is formed by integrating objects from a module
	library to form a specific configuration. An implementation using
	global state variables for the automatic integration of port-based
	objects is presented. A control subsystem is a collection of jobs
	which are executed one at a time, and can be programmed by a user.
	Multiple control subsystems can execute in parallel, and operate
	either independently or cooperatively. One of the fundamental concepts
	of reconfigurable software design is that modules are developed
	independent of the target hardware. Our framework defines classes of
	reconfigurable device driver objects for proving hardware independence
	to I/O devices, sensors, actuators, and special purpose processors.
	Hardware independent real-time communication mechanisms for
	inter-subsystem communication are also described. Along with providing
	a foundation for design of dynamically reconfigurable real-time
	software, we are also developing many modules for the control module,
	device driver, and subroutine libraries. As the libraries continue to
	grow, they will form the basis of code that can eventually be used by
	future R&A applications. There will no longer be a need for developing
	software from scratch for new applications, since many required modules
	will already be available in one of the libraries.  

This report is available via anonymous FTP as follows:

	% ftp IUS4.IUS.CS.CMU.EDU	(
	Name:       anonymous
	Password:   yourname@yourmachine
	ftp> binary
	ftp> cd /usr/chimera/public
	ftp> get
	ftp> quit
	% uncompress
	% lpr	(must be a postscript printer)

For more information, 'finger'.

>50 Ada95 (compiler, GNU)

From: (Tucker Taft)
Subject: Re: which language to use ...?
Organization: Intermetrics, Inc.
Date: Mon, 1 Nov 1993 23:22:42 GMT


Also, there is a preliminary release of a GNU-GCC-based Ada 9X
compiler available from NYU on in pub/gnat/...
The front end is written in Ada itself; the back end
is the usual GCC back end (enhanced as appropriate).

S. Tucker Taft
Intermetrics, Inc.
Cambridge, MA  02138

>51 OO Course Slides

From: (David Weller)
Subject: Re: Slides on OOP or OMT wanted
Organization: Sigma Software Engineering, Inc.
Date: Fri, 5 Nov 1993 11:01:44 EST

In article <2bdot7$> (Mikal Ziane (Univ. Paris 5 and INRIA) ) writes:
>Hello netters,
>Is anybody aware of public domain slides available on an ftp site ?
>I'd like slides on OO programming or OO design methods (esp. OMT).
>I know I am crazy to ask for that but someone told me he saw
>a very good C++ course on some ftp site ! (he does not remember which one 

It's true!  On WUArchive ( there is a series of
slides developed in Microsoft's PowerPoint.  The course material
includes lesson plans, tests, and workbooks, along with full notes
accompanying each slide.

There's one _little_ catch -- it's in the Public Ada Library.  Now,
the OOP course (there's three courses, one on OOD, OOP, and Software
Engineering) covers both C++ and Ada.  It was designed to let the
students work in both languages to get an objective opinion of the
pluses and minuses of each language (gee, what a concept!).

User Contributions:

Comment about this article, ask questions, or add new information about this topic:

Part1 - Part2 - Part3 - Part4 - Part5 - Part6 - Part7 - Part8 - Part9 - Part10 - Part11 - Part12 - Part13

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
Bob Hathaway <>

Last Update March 27 2014 @ 02:11 PM