From: Bob Hathaway <objsys@netcom.com>
Subject: FAQ (Part 2 of 2)
Keywords: FAQ
Organization: Object Systems
Date: Sat, 23 Jan 1993 07:11:43 GMT


APPENDICES
==========

APPENDIX A  VIPS
================

These are individuals whose names appear in comp.object most often. 
Please send recommendations for *major* VIPS often cited or referenced.

Booch, Grady

Grady Booch has been an object-oriented Ada advocate for some time.  He's
written books such as Software Engineering with Ada, Software Components
with Ada, and OOD with Applications.  The first two are what he calls
Object-Based and the second is primarily Object-Oriented and all use
OB and OO notations and methodologies.  His last notations are often
referred to as simply the "Booch" method or notation and his company,
Rational, provides automated support with a tool named "Rose".

Goldberg, Adele

One of the founders of Smalltalk.  David Robson is another.  They are most
well know because of their text, "Smalltalk-80 The Language and its
Implementation".  Smalltalk was invented by a group at Xerox PARC.

Meyer, Bertrand

Founder of Eiffel, author of [Meyer 88].  Often posts to comp.lang.eiffel
[what a FAQ writer notices].

Nygaard, krysten and Dahl, Ole-Johan.

Inventor of Simula, the first object-oriented programming language.

Rumbaugh, James

Part of Rumbaugh, Blaha, Premerlani, Eddy and Lorenson, The authors of
[Rumbaugh 91].  They are from GE's R&D Center and Have an OOA/OOD
notation/Methodology called the "Object Modeling Technique".  It is a rather
formal and complete method which is often discussed and referred to.  OMTool
is the name of the CASE system provided by GE which supports OMT.

Shlaer, Sally (and Mellor, Stephen J.)
>Sally Shlaer            sally@projtech.com
>Project Technology      Training and Consulting using Shlaer-Mellor OOA/RD
>Berkeley, CA            (510) 845 1484

Founder of the Shlaer/Mellor OOA/RD method.  As shown above, occasionally
posts to comp.object [what a FAQ writer notices].

Stroustrup, Bjarne

Inventor of C++, a C superset, which has probably gained the most widespread
use of any object-oriented language today.


APPENDIX B  Object-Oriented Databases and Vendors
=================================================

This is an initial list of Object-Oriented databases.  Thanks go to Stewart
Clamen, who Ok'd the use of his survey.  His survey is actually on schema
evolution in OODB's, but it covers so many systems it should do for a start.
Additional short entries are encouraged; please send additions to the author
of the FAQ (and/or to Stewart).  Also, I noticed [Kim 89] covers a few of
the research systems below in depth.

Entries will be more well-rounded in future (non-draft) FAQs.


From: Stewart M. Clamen <clamen@cs.cmu.edu>

 The most recent copy of this summary will be available indefinitely
 via anonymous FTP from BYRON.SP.CS.CMU.EDU:clamen/evolution-summary.

Last update: 14Oct92

Direct quotes are attributed by including the email address of the
poster directly following the information.  Prose written by the
poster, but with primary information provided by email are so
identified.  Information gleaned from publications is so noted.  The
information included here is not intended to completely describe the
systems addressed, but rather, to describe what support, if any, is
provided by the system for the evolution of schemas and the conversion
of database objects (class instances) resulting from the schema
change.

                                                        Stewart Clamen

                       ----------*-*----------

                          TABLE OF CONTENTS


Extended Relational Database Model
 Research Systems
  POSTGRES

Object-Oriented Data Model
 Research Systems
  AVANCE
  ConceptBase
  CLOSQL
  COOL/COCOON
  Encore
  Exodus
  Machiavelli
  OBST/STONE
  Orion [marketed as Itasca]
  OTGen

Commercial Systems
  Common Lisp Object System (CLOS)
  EasyDB (Objective Systems, Sweden)
  GemStone
  O_2
  Objectivity/DB
  ObjectStore
  Ontos [formerly VBase]
  Statice
  Versant

Other Models
 Research Systems  
  IRIS
 Commercial Systems  
  IDL
  Kala
  Pick


                       ----------*-*----------


                 <<< EXTENDED RELATIONAL DB MODEL >>>

                        << Research Systems >>


>> POSTGRES (Berkeley)

You ask explicitly about type evolution.  We support schema
modification on all classes, including user classes.  This means that
you can add attributes (instance slots) and methods at any time.
Further, since postgres is a shared database system, such changes are
instantly visible to any other user of the class.

The language syntax supports attribute deletion, but the system won't
do it yet.  Since all data is persistent, removing attributes from a
class requires some work -- you need to either get rid of or ignore
all the values you've already stored.

[Mike Olson <mao@Postgres.Berkeley.EDU>]



                        <<< OO DATA MODEL >>>

                        << Research Systems >>

>> AVANCE (SYSLAB)

An object-oriented, distributed database programming language.  Its
most interesting feature is the presence of system-level version
control, which is used to support schema evolution, system-level
versioning (as a way of improving concurrency), and objects with their
own notion of history.  System consists of programming language (PAL)
and distributed persistent object manager. 

REFERENCES: 
        Anders Bjornerstedt and Stefan Britts. "AVANCE: An
        Object Management System".  Proceedings of OOPSLA88.

[clamen]



>> CLOSQL (University of Lancaster)

CLOSQL is a prototype object environment written on top of CLOS [c.f.
CLtL II].  CLOSQL implements a class versioning scheme (like ENCORE),
but employs a conversion adaptation strategy.  Instances are converted
when there is a version conflict, but unlike ORION and GemStone,
CLOSQL can convert instances to older versions of the class if
necessary.


REFERENCES: 

        Simon Monk and Ian Sommerville. "A Model for Versioning
        Classes in Object-Oriented Databases."  Proceedings of the
        Tenth British National Conference on Databases (BNCOD10).
        Aberdeen, Scotland. July, 1992.

[clamen, srm@computing.lancaster.ac.uk]



>> ConceptBase

We have developed a deductive object-oriented database called
ConceptBase where everything (tokens, classes, meta-classes
,meta-meta-classes ,attributes, instantiations, specializations) is
treated as an object. That means that you may update the "schema"
(classes) at any time just as any other ordinary object.

The systems has (user-defined and builtin) integrity constraints that
prevent inconsistency (e.g. violation of ref.integrity).  Integrity
constraints in ConceptBase are (as in most other systems) static,
i.e., they are conditions that each database "state" must satisfy.

The data model we use does not distinguish schema level information
(i.e. classes) from instance level information. If you change for
example some classes and this change violates some integrity
constraints, e.g.  some instances now don't have the right attribute
types anymore, then you have the choice either to reject the update or
to change the existing DB. Currently, ConceptBase simply rejects such
updates.  We are thinking of exploiting abduction (see VLDB'90 article
of Kakas&Mancarella) to make more clever reactions in the sense of
"reformating" instances.

The system is available for research purposes. Contact

                 CB@picasso.informatik.rwth-aachen.de

for more information.


[Manfred Jeusfeld <jeusfeld@forwiss.uni-passau.de>]



>> COOL/COCOON (Ulm Universitaet)

Project goals are:

- to develop a general formal framework for investigations of all
  kinds of schema changes in object-oriented database systems
  (including schema design, schema modification, schema tailoring, and
  schema integration);
- to find implementation techniques for evolving database schemas,
  such that changes on the logical level propagate automatically to
  adaptations of the physical level (without the need to modify all
  instances, if possible).


In their current paper [see below], schema evolution is used as
example of a general framework for change in OODBs, supporting change
on three levels of database objects: data objects, schema objects, and
meta-schema objects.


Contact Markus Tresch <tresch@informatik.uni-ulm.de> for more information.


REFERENCES:
        M. Tresch and M.H. Scholl. "Meta Object Management
        and its Application to Database Evolution."  In
        _Proceedings of the Eleventh International
        Conference on the Entity-Relationship Approach",
        Karlsruhe, Germany, Oct 1992.  Springer Verlag (to
        appear).



>> Encore (Brown University)

Objects are never converted, rather, classes are versioned, and the
user can specify filters to make old-style instances appear as new
instances to new applications (and vice versa).

REFERENCES:
        Andrea H. Skarra,  and Stanley B. Zdonik. "Type
        Evolution in an Object-Oriented Database."  In the
        book, "Research Directions in Object-Oriented
        Programming", by Shriver and Wegner.  (An earlier
        version of the paper appears in the proceedings to
        OOPSLA86.) 

[clamen]



>> Exodus (University of Wisconsin)

No solution for the problem of schema evolution is provided.
Emulation is rejected by the authors, who claim that the addition of a
layer between the EXODUS Storage Manager and the E program would
seriously reduce efficiency.  Automatic conversion, whether lazy or
eager, is also rejected, as it does not mesh well with the C++ data
layout.  To implement immediate references to other classes and
structures, C++ embeds class and structure instances within its
referent.  The resulting change in the size of the object might
invalidate remote pointer references.

        Joel E.  Richardson and Michael J.  Carey.  "Persistence
        in the E language: Issues and Implementation."  Appeared
        in "Software -- Practice and Experience",
        19(12):1115-1150, December 1989.

[clamen]


>> Machiavelli (University of Pennsylvania)

Machiavelli is a statically-typed programming language developed
at the University of Pennsylvania. Its most outstanding innovation 
is the use of conditional typing scheme in its type inference system. 
It does not address type evolution.

[communication with limsoon@saul.cis.upenn.edu]

[Ed. Note: Machiavelli is included in this summary because it
           previously incorporated persistence in its data model.]



>> OBST/STONE (Forschungszentrum Informatik [FZI], Karlsruhe, Germany)

The currently available version of OBST (3.2) does not provide any
support for schema evolution. Users may modify the meta database to
adapt the schema information to their changed needs, but they do so on
their own risk and without any support. Existing instances are not
adapted automatically.

A new release of OBST is planned for the end of this year.  This
version will provide a new meta schema, with some operations to make
schema modifications more comfortable.

Furthermore we work at the moment on:

   -  a graphical schema browser that will make schema design 
      and modification more fun

   -  a view concept that shall make OBST applications to a wide
      degree independent from schema changes

   -  an integration of different conversion strategies (immediate
      conversion, different kinds of lazy conversion and screening),
      to provide suitable mechanisms for all situations during the
      schema life cycle

The first two developments shall be available with new OBST releases
during the first half of 1993.

While the two points mentioned above are already to be implemented,
the last point is just in an experimental state, and matter of
investigation.


[schiefer@fzi.de]


The system is available by anonymous FTP from GATE.FZI.DE. Contact
stone@fzi.de for more information.



>> ORION [now Itasca] (MCC/Itasca System, Inc.)

ORION was a prototype OODBMS developed at MCC, an American consortium.
It is now marketed as Itasca by Itasca Systems in Minnesota.  ORION is
built on top of Common Lisp, and is intended to support applications
such in the CAD/CAM, AI, and OIS domains.  Advanced functions
supported include [object] versions, change notification, composite
objects, dynamic schema evolution, and multimedia data.

For schema evolution, ORION identifies a list of database-consistency
constraints that must be preserved across any class evolution
operation.  They then list the type of evolution operations you can
perform, and how the relevant instances can be converted.  Conversion
is performed as the instances are accessed.

REFERENCES:

I have found nearly a dozen papers published by the ORION folks.  The
most recent and general one is:

        W. Kim, N. Ballow, H-T. Chou, J.F. Garza, D. Woelk,
        and J.  Banerjee. "Integrating an Object-Oriented
        Programming System with a Database System."
        Proceedings of OOPSLA88.  [Pointers to the previous
        papers documenting each of the advanced features
        listed above are cited therein.]

The paper most relevant to the issue of schema evolution is the
following:

        J. Banerjee, W. Kim, H.J. Kim, H.F. Korth.
        "Semantics and Implementation of Schema Evolution in
        Object-Oriented Databases." Proceedings of SIGMOD87.

You might also like to look at Kim's book:

        Won Kim.  _Introduction to Object-Oriented
        Databases_. MIT Press, Cambridge, Mass., 1990.

[clamen]



>> OTGen (Carnegie Mellon University/UMass Amherst)

OTGen describes a scheme for computer-assisted schema evolution.  A
wide variety of changes (wider than those supported by Orion or
GemStone) can be expressed in the evolution "mini-language", which
describes a procedure for transforming instances from their new to old
representations.  Objects are converted as databases (which in the
invisioned OTGen system are rather small) are opened.

REFERENCES:

        Barbara Staudt Lerner and A. Nico Habermann. "Beyond
        Schema Evolution to Database Reorganization" in
        Proceedings of OOPSLA/ECOOP '90.

[clamen, blerner@cs.umass.edu]


                       << Commercial Systems >>

>> Common Lisp Object System

Not persistent, but implementations must support redefinition of
classes and the conversion (either lazy or eager) of existing
instances. [c.f. CLtL II]  In spite of this freedom, implementations
seem to convert lazily.
[communication with gregor@parc.xerox.com, hornig@symbolics.com,
 dussud@lucid.com] 

The generic function UPDATE-INSTANCE-FOR-REDEFINED-CLASS discards old
slots (and the values of redefined slots).  However, the generic can
be overriden by the user, allowing for arbitary instance conversion
procedures.


REFERENCES:

[CLtL II]       Steele, Jr., Guy L.  _Common Lisp: The Language_.
                Second Edition.  Digital Press.  1990.
        


>> EasyDB (Objective Systems, Sweden)

EasyDB features a (programming language independent) Data Definition
Language (DDL) for the definition of schemas.  It relies on the
Entity-Attribute-Relationship model.  Data Manipulation Languages
(DML) include a Navigational Query language (NQL) embedded in a host
language (C available now, Ada in January '93), and a generic C++
class library.

The schema may be freely extended with new items (types, domains,
attributes, entities, relationships etc.). Deletion of items is not
allowed.

Data created with an older schema may co-exist with newer data. Old
applications need not be recompiled when the schema is updated.
Attempts by newer applications to access `older' data in an
inconsistent way are detected and reported via an exception handling
system.

[Tomas Lundstrom <tomas@os.se>]



>> GemStone (Servio Logic)

GemStone currently supports modification of leaf classes (classes with
no subclasses) with transparent, lazy, data migration.  Immediate
migration can also be forced.  Modification of non-leaf classes is
also possible, but requires some programming in GemStone's DML to make
it happen.  Transparent migration of modified non-leaf classes will be
offered in a future release.

[Bruce Schuchardt <bruce@slc.com>]


ADDITIONAL REFERENCES: 
        Robert Bretl, David Maier, Allan Otis, Jason Penney,
        Bruce Schuchardt, Jacob Stein, E. Harold Williams,
        Monty Williams. "The GemStone Data Management
        System."  Chapter 12 of "Object-Oriented Concepts,
        Databases and Applications", by Kim and Lockovsky.



>> O_2 (INRIA/O_2 Technology)

We have implemented in O2 schema updates in our first release but
without NO IMPACT on the database (we have a design to implement
deferred update, but it is a paper design). However, users manage to
convert their instances by hand, using their O_2 programs written
themselves, and with the aid of the following tools:

1- There is a set of predefined classes whose instances contain
   objects representing a schema (i.e., a Meta-schema). These classes
   may be used in a conversion program, they may even be extended by
   the programmer.

2- There is a save-restore program that allows to take an O2 database,
   save it on a file or a tape in a logical way (i.e., independent of
   the physical format of objects on disk), and restore it again on a
   (perhaps new release) of the system, in an empty database.
   Currently, when saving a database its schema is also saved. The
   next extension to this save/restore program will be to save the
   database without saving its schema, and then restore the database
   on a new version of that schema. The restore program will be able
   to perform automatically some conversions like "add attribute" or
   "delete attribute".


Schema updates with impact on the database will be implemented in future 
releases.

[Fernando Velez <fernando@o2tech.fr>]


For more information on O_2, consult the following REFERENCES:

        Francois Bancilhon, Claude Delobel, Paris
        Kanellakis.  "Building an Object-Oriented Database
        System: The Story of O_2".  Morgan Kaufmann Series
        in Data Management Systems, San Mateo, Calif., 1992.
        
        F. Bancilhon, G. Barbette, V. Benzaken, C. Delobel,
        S. Gamerman, C. Lecluse, P. Pfeffer, P. Richard,
        and F. Velez.  "The Design and Implementation of
        O2, and Object-Oriented Database System".
        Advances in Object-Oriented Database Systems,
        Springer Verlag. (Lecture Notes in Computer Science
        series, Number 334.)

        C. Lecluse, P. Richard, and F. Velez. "O2, an
        Object-Oriented Data Model".  Proceedings of
        SIGMOD88.  Also appears in Zdonik and Maier,
        "Readings in Object-Oriented Database Systems",
        Morgan Kaufmann, 1990.




>> Objectivity/DB (Objectivity)

In the just-released Version 2.0 (shipping Oct 92), schema evolution
is supported via dynamic versioning of type-defining objects [ie.
class versions -- SMC], and via a step-by-step approach that allows
conversion of instance data via user-provided conversion methods.
Also, a full dynamic type manager interface is available for doing
fancier things.

[Drew Wade <drew@objy.com>]




>> ObjectStore (Object Design)


ObjectStore does not provide schema evolution as yet but it has
promised to provide schema evolution in the next release.
[h.subramanian@trl.OZ.AU]


ObjectStore is an ODBMS produced by Object Design, Inc.  Release 2,
which is in beta test now, supports schema evolution.  The kinds of
evolution supported include change of a data member's type, addition
and removal of data members, and change in inheritance structure.
There are default transformations built in, (e.g. from int to float),
and user-defined transformations may be run also.

[Jack Orenstein, Object Design, Inc. <jack@odi.com>]


        
>> Ontos [formerly VBase] (Ontologic)

*Ontos provides schema evolution. It allows any class to be modified.
*The major drawback is that data does not migrate ie., instances are
*not modified to adopt to the new class definition. So schema changes
*can be done only on classes that do not contain instances and do not
*have sub classes that contain instances.
*[h.subramanian@trl.OZ.AU]

*As a system for experiments, we are currently using ONTOS from
*Ontologic Inc.  Unfortunately, there is no transparent concept of
*schema evolution for populated database. Thus, we still investigate
*how it works.
*[Markus Tresch <tresch@inf.ethz.ch>]
                                   


>> Statice (Symbolics)

I'm familiar with Statice, sold by Symbolics Inc.  The Statice command
"Update Database Schema" brings an existing database into conformance
with a modified schema.  Changes are classified as either compatible
(lossless, i.e., completely information-preserving) or incompatible
(i.e., potentially information-losing in the current implementation).
Basically, any change is compatible except for the following:

    -- If an attribute's type changes, all such attributes extant
    are re-initialized (nulled out).  Note that Statice permits
    an attribute to be of type T, the universal type.  Such an
    attribute can then take on any value without schema
    modification or information loss.

    -- If a type's inheritance (list of parents) changes, the
    type must be deleted and re-created, losing all extant
    instances of that type. This is Statice's most serious
    current limitation.  The simplest workaround is to employ a
    database dumper/loader (either the one supplied by Symbolics
    or a customized one) to save the information elements and
    then reload them into the modified schema.

[Lawrence G Mayka <lgm@IExist.ATT.COM>]



>> Versant (Versant Object Technology)

We support run-time schema evolution.  It uses a lazy scheme, so
schema operations are very fast.  Objects on disk may have an older
`storage class' and they will be updated to the new schema when they
are used.

In older releases schema evolution was allowed only on leaf classes
(those with no subclasses).  In our new release 2 (going to beta test
soon) you can do schema evolution on any class.

In the future we're working on more general view mechanisms so you can
see a subset of the attributes in memory, or some more complicated
transformation.  This goes together with support for multiple
compilers and multiple languages.

[Joe Keane <osc!jgk@amd.com>]




                         <<< OTHER MODELS >>>

                        << Research Systems >>

>> IRIS (HP Labs)

Objects in the Iris system may acquire or lose types dynamically.
Thus, if an object no longer matches a changed definition, the user
can choose to remove the type from the object instead of modifying the
object to match the type.  In general, Iris tends to restrict class
modifications so that object modifications are not necessary.  For
example, a class cannot be removed unless it has no instances and new
supertype-subtype relationships cannot be established.

REFERENCES:
        D.H. Fishman, D. Beech, H.P. Cate, E.C. Chow, T.
        Connors, J.W. Davis, N. Derrett, C.G. Hock, W. Kent,
        P. Lyngbaek, B. Mahbod, M.A. Neimat, T.A. Tyan, M.C.
        Shan. "Iris: An Object-Oriented Database Management
        System".  ACM Transactions on Office Information
        Systems 5(1):48-69, Jan 1987.

[clamen]



                       << Commercial Systems >>


>> IDL (Persistent Data Systems)

IDL is a schema definition language. Schema modifications are defined
in IDL, requiring ad-hoc offline transformations of the database, in
general.  A simple class of transformations can be handled by
IDL->ASCII and ASCII->IDL translators (i.e., integer format changes,
list->array, attribute addition).

[conversation with Ellen Borison of Persistent Data Systems]


ADDITIONAL REFERENCES:
        John R. Nestor. "IDL: The Language and Its
        Implementation". Prentice Hall. Engelwood Cliffs,
        NJ., 1989.



>> Kala

Kala manages an untyped persistent store, implementing the semantics
of robust, distributed, secure, changing, and shareable persistent
data.  Layers built upon the Kala platform can implement the semantics
of objects with the same properties.

As it operates below the schema layer, Kala does not address schema
evolution directly. However, It supports the building of schema'ed
layers above it and below the application, and those layers can
provide for schema evolution conveniently using Kala primitives.
This parts-box approach requires extra work on the part of the developer
compared to out-of-the-box solutions, but provides power and
flexibility sufficient for relatively low cost solutions in
difficult environments (e.g. graph-structured data, dynamic classing) 
where no out-of-the-box solution is available.

[Ivan Godard <ivang@cup.portal.com>]



For more information, contact either Sergiu Simmel (sss@world.std.com)
or Ivan Godard <ivang@cup.portal.com>.


REFERENCES:
        Segui S. Simmel and Ivan Godard. "The Kala Basket: A
        Semantic Primitive Unifying Object Transactions,
        Access Control, Versions, annd Configurations

[clamen]



>> Pick

With Pick and its variants you only have problems if you want to
redefine an existing field.  Because of the way the data are stored
and the separation of the data and the dictionary you can define
additional fields in the dictionary without having to do anything to
the data - a facility which we have found very useful in a number of
systems.

There is no general facility to redefine an existing field - you just
make whatever changes are required in the dictionary then write an
Info Basic program to change the data.  We have seldom needed to do
this, but it has not been complicated to do.

If a field in the database is no longer used, it is often easiest
simply to delete the reference to that field in the dictionary, and
accept the storage overhead of the unused data.  In such cases, while
the data cannot be accessed through the query language, (Pick)Basic
programs can still access them.

[Geoff Miller <ghm@ccadfa.cc.adfa.oz.au>]


APPENDIX C  Object-Oriented Languages and Vendors
=================================================

This APPENDIX is yet to be written.  Contributions are welcome.


APPENDIX D  Object-Oriented CASE (OOA/D/P Tools) and Vendors
============================================================

The following tentative list comes from Ronald C. Schultz (of Berard Software
Engineering), who posted this on 9/13/92.  Additional short entries are
encouraged; please send additions to the author of the FAQ (and/or to Ron).

From: Ronald C. Schultz <ron@bse.com> <info@bse.com>

The following is a list of object-oriented CASE tools, as identified in
advertisements in Object Magazine, Software Magazine, and 
JOOP.  If you know of any additional vendors, please e-mail me.
Also, if you know the costs for these tools, please let me know.
I will repost with any updates.  
Thanx.
------------------------------------------
[format - Vendor name, city/state, phone (if known),
tool name, operating systems, description and methods]
-----------------------------------------

Andersen Consulting
Chicago, Il.
Foundation
MVS, PC-DOS, OS/2, VAX/VMS, GCOS
Object-oriented full life-cycle tools

Bachman Information Systems
Burlington, Ma.
800-222-4626
Bachman Data Analyst
PC-DOS, OS/2
Data Modeling and analysis with OO support

Cadre Technologies
Providence, R.I.
401-351-CASE
Teamwork
VAX/VMS, Unix, OS/2, PC-DOS
CASE toolset with object-oriented capabilities
Shlaer/Mellor, HOOD

Chen & Associates, Inc.
Baton Rouge, La.
514-928-5765
OBJECT-DESIGNER
?? platforms supported unknown ??
Graphical object-oriented design tool

Excel Software
Marshalltown, Ia.
515-752-5359
MacAnalyst and MacDesigner
Macintosh
Object-oriented analysis

GE Advanced Concepts Center
King of Prussia, Pa.
215-992-6200 or
800-438-7246
OMTool
?? platforms supported unknown ??
Object-oriented analysis and design
Rumbaugh

Hamilton Technologies
Cambridge, Ma.

001
VAX/VMS, Unix
Object-oriented, full life cycle CASE

Hewlett Packard
Cupertino, Ca.
800-752-0900 ext. 2707
or 303-229-2255
HP C++/Softbench
HP, Apollo
CASE tool integration, C/C++ development

Iconix Software Engineering
Santa Monica, Ca.
Iconix Power Tools
Macintosh
Multiuser, OO development toolset

Interactive Development Environments
San Francisco, Ca.
Software Through Pictures
VAX/VMS, Unix
Object-oriented structured design with multi-user OO data dictionary
Wasserman's OOSD

Knowledge Garden, Inc.
Nassau, N.Y.
KnowledgePro /
Windows
Windows
OO Development environment with C++ code generation

Mark V Software
Encino, Ca.
818-995-7671
ObjectMaker
Windows, Unix, Macinstosh
Object-oriented analysis and design
Berard, Booch, Coad/Yourdon, Colbert, Rumbaugh, and others

Object International, Inc.
Austin, Tx.
512-795-0202 or
800-926-9306
OOATool
Unix, Macintosh, Windows
Object-oriented analysis
Coad/Yourdon

Palladio Software, Inc.
Brookfield, Wi.
1-800-437-0019 or
414-789-5253
Object System/Designer
Windows
Object-oriented design
Booch

Popkin Software
N.Y., N.Y.
212-571-3434
System Architect
Windows, OS/2
Object-oriented design

Protosoft
Houston, Tx.
713-480-3233
Paradigm Plus
Windows, Unix, OS/2
CASE toolset supporting  Berard (EVB), Booch, Coad/Yourdon, and others

Rational
Santa Clara, Ca.
408-496-3700
Rose
Unix, AIX
Object-oriented analysis and design
Booch

Semaphore
North Andover, Ma.
508-794-3366 or
800-937-8080
ATRIOM
?? platforms supported unknown ??
Object-oriented analysis and design

StructSoft
Bellevue, Wa.
206-644-9834
TurboCase
Macintosh
Object-oriented analysis, structured design

Texas Instruments, Inc.
800-527-3500
IEF
?? platforms supported unknown ??
Object-oriented information engineering

TGS Systems
Halifax, Nova Scotia
902-455-4446
Prograph
Macintosh
OO visual programming environment

Roman Zielinski Metod & SystemUtveckling
Norsborg, Sweden
OOTher 
Windows
OO Documentation Tool
Coad/Yourdon



APPENDIX E  Anonymous FTP Sites
===============================

These are anonymous ftp sites of interest to the OO community.  Thanks go to
Mike DeVaney (dm_devaney@pnl.gov gen ftp site list) and to Bill Kinnersley
(anon ftp programming languages list), whose initial lists helped to get
things going.  Additional short entries are encouraged; please send additions
to the author of the FAQ (and/or to Mike and Bill).

Entries will be standardized and summarized in future (non-draft) FAQs
and are not limited to one category.

Starred entries have a summary.

PROGRAMMING LANGUAGES
=====================

ftp.inria.fr				       *ALCOOL-90 (dyn ML)
monch.edrc.cmu.edu:/usr0/snl/archive/bos-1.2   *BOS (prototyping)
grape.ecs.clarkson.edu:/pub/msdos/djgpp/djgpp.zip C++ (for MS-DOS)
prep.ai.mit.edu:/pub/gnu/g++-1.39.0.tar.Z 	C++ (for Unix)
parcftp.xerox.com:pcl			 	CLOS
pion.lcs.mit.edu				CLU (Sun, VAX)
ftp.cs.cornell.edu:/pub/CML-0.9.tar.Z		CML
arisia.xerox.com				Pcl (Portable CommonLoops)
xcf.berkeley.edu:src/local/fmpl		       *FMPL (prototyping)
nebula.cs.yale.edu				Glasgow Haskell
piggy.cs.chalmers.se				Chalmers Haskell (hbc)
software.watson.ibm.com				Hermes (Unix)
cs.arizona.edu					Icon
sun.soe.clarkson.edu				ISETL (DOS, Mac, Unix, VMS,src)
cs.orst.edu					Little Smalltalk (C src)
gatekeeper.dec.com				Modula-3
obj3dist@csl.sri.com (licence or request)      *OBJ3 (OO lang)
gate.fzi.de				       *OBST (lang, perst)
neptune.inf.ethz.ch				Oberon (MacII, SPARC, DECstn)
wuarchive.wustl.edu:/mirrors/msdos/pgmutl/oberon11.zip Oberon (MS-DOS)
ux1.cso.uiuc.edu:pub/amiga/fish/ff380		Oberon (Amiga)
watserv1.waterloo.edu				occam (VAX sim, Tahoe)
wuarchive.wustl.edu:/mirrors/unix-c/languages/ops5 OPS5 (interpreter)
wuarchive.wustl.edu:/mirrors/msdos/pli/runpli1a.arc PL/I (interpreter)
watserv1.waterloo.edu				Russell
icsi-ftp.berkeley.edu			       *Sather (simple Eiffel)
altdorf.ai.mit.edu: scm				Scheme (small, portable)
gatekeeper.dec.com: elk 			Scheme (for Suns)
acorn.cs.brandeis.edu: gambit 			Scheme (for 68K's)
otis.stanford.edu			       *Self
self.stanford.edu				Self
cs.nyu.edu					SETL2 (DOS, OS/2, Mac, Unix)
rascal.ics.utexas.edu				SIMULA 67 (Mac)
prep.ai.mit.edu:pub/gnu				Smalltalk-80 (GNU v1.1)
st.cs.uiuc.edu					Smalltalk V
cs.yale.edu:pub/ml				SML/NJ
research.att.com:dist/ml			SML (Version 0.75)
sbcs.sunysb.edu					SML (lazy)
gatekeeper.dec.com				Modula-3 (SRC)
ucbvax.berkeley.edu				tcl
ftp.cs.umu.se:/pub/umlexe01.zoo			uML

COMPILER TOOLS
==============
prep.ai.mit.edu:pub/gnu/bison-1.14.tar.Z	Yacc
ftp.th-darmstadt.de:/pub/programming/languages/C++ *(C++ gram, etc.)

DATABASES
=========
ftp.cs.wisc.edu:exodus				*Exodus	(Storage Man, perst)
gate.fzi.de:/pub/obst				*OBST	(schema, perst objs)
postgress.berkeley.edu:pub			*POSTGRESS (Ext. Rel. DBMS)
mood.mech.tohoku.ac.jp				*MOOD  	(OODB, lim arch.)
email: nhg@research.att.com			*ODE	(C++ OODB)

TOOLS AND CASE
==============
ftp.th-darmstadt.de:/pub/programming/languages/C++ *(Cls bwsr, tmplates, GC et)
iamsun.unibe.ch					*Sniff (C++ devel environ)
ftp.centerline.com:/pub/tags-1.0.tar.Z		*C++ tags

LIBRARIES AND INTERFACES
========================
ftp.th-darmstadt.de:/pub/programming/languages/C++ *(NIHCL COOL OATH ET++ etc.)
csc.ti.com:pub/COOL.tar.Z			*COOL(C++, orig from TI)
cs.utexas.edu:pub/COOL/GE_COOL2.1.tar.Z		*COOL(C++, Cfront 2.1, from GE)
omg.org:pub/corba.ps.Z{/NEC_DII/93-1-2...}	*CORBA (DII)

DOCUMENTATION
=============
ftp.th-darmstadt.de:/pub/programming/languages/C++ *(C++ docs, code, net sum's)

GENERAL
=======
ftp.th-darmstadt.de:/pub/programming/languages/C++ *(lots for C++)
st.cs.uiuc.edu					*Manchester Archive and some



What: Interpreter for FMPL of Accardi, Release 1
From: blojo@xcf.berkeley.edu (Jon Blow)
Date: 2 Jun 92 08:42:26 GMT

An interpreter for FMPL of Accardi, Release 1 is now available for ftp at 
xcf.berkeley.edu:src/local/fmpl/.

*FMPL is a prototype-based object-oriented programming language.
*FMPL possesses lambda-calculus based constructs.
*FMPL is an event-driven language; the events it responds to are mainly
based on the behavior of input/output streams, not only within the unix domain
but across the internet as well.
*FMPL supports "pretty"-printing of internally-represented code back into
readable form.
*FMPL is an experimental language developed at the Experimental Computing 
Facility of the University of California, Berkeley.  This release is something
of a beta test since the language has not been widely used outside Berkeley.
It is hoped that this release will draw useful comments and suggestions from
the world at large that will help in improving future versions of FMPL.

What: MOOD/P3 Ver.2.00 OODBS {Miniature,Materials}OODBS.
From: ono@mood.mech.tohoku.ac.jp (Noboru Ono)
Date: 18 May 92 10:28:42 GMT

The following program/sample database package is available through anonymous
FTP at mood.mech.tohoku.ac.jp (130.34.88.61). Sorry it is not the sources and
operates only in NEC-PC9801/MS-DOS environment.  Sorry again documents are all
in Japanese. We will tell you later when English documents has become ready.

      MOOD/P3 Ver.2.00
      Material's Object-Oriented Database, Prototype 3

This program, as you may guess,

      1) is an Object-Oriented database system program,
      2) operates on PC-9801 series personal computer, and
      3) is accompanied by sample material database schema.

Although this program has been developed and being used in the experiments
on material data processing in which we are now involved, it is a general
purpose OODBS. 

What: ftp site for C++ material
From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod)
Date: 27 May 92 22:32:35 GMT

There were a lot of questions about C++ material in the last time and some 
announcements which involved our ftp server.
        ftp.th-darmstadt.de [130.83.55.75]
        /pub/programming/languages/C++
At the moment we have:
 -- documentation and assorted stuff
        C++ products list as announced by Saumen K Dutta (in a subdirectory!)
        C++ YACC grammar, ET++ tutorial, summaries from the Net,
        sources from James Coplien's book (idioms...), etc.
 -- class libraries
        NIHCL (original, persistent for ObjectStore, with g++ 1.4x changes)
        COOL, OATH, RogueWave vector, ET++,
        RPC package, a package for sockets, awe (thread package)
 -- tools
        class browser (for GNU Emacs), indent++, yacc+, template
        processor of Brad Cox[sp?], DEC garbage collector

More stuff is always welcome.  (Btw, Interviews and Motif C++ wrapper
classes are to be found in the /pub/X11 subtree.)

What: Alcool-90 Release 0.40.3
From: rouaix@inria.fr (Francois Rouaix)
Date: 18 May 92 09:36:22 GMT

Alcool-90 is an experimental extension of ML with run-time overloading and
a type-based notion of modules, functors and inheritance.

New constructs have been added:
        * Overloaded symbols (overload).
        * Local definition of abstract values (overload in).
        * Implementations and parametric functors (pack to). 
        * Extension functors (overload with).
        * Class-based Dynamics (dynamic).

This version of Alcool is based on the CAML Light implementation (release
0.4) of the ML language, but this release is autonomous.

Alcool-90 is available by anonymous FTP from ftp.inria.fr:

    host:      ftp.inria.fr  (128.93.1.26)
    directory: lang/alcool
    files:
     README                 Copyright information.
     alcool270492.tar.Z     Sources for Un*x machines (Apr 27 1992 Release).
     alcooldoc.dvi.tar.Z    DVI for the Alcool-90 report draft.

For questions, comments, bug reports, please e-mail to Francois.Rouaix@inria.fr

What: Ode Release 1.1
From: nhg@research.att.com

Ode is an object-oriented database based on the C++ database model. The
primary interface to Ode is the database programming language O++ which is
based on C++.

Ode 1.1 is now available to Universities.  This is a beta release.  The
current version of Ode runs on Sun (Sparc) workstations and users must have
C++ release 2.0 or a later release.  If you are interested in using Ode and
giving us feedback on your experience with Ode, please send me mail with the
appropriate information.

Narain Gehani
AT&T Bell Labs 3D-414
600 Mountain Ave
Murray Hill, NJ 07974


What: SmallTalk
From: johnson@m.cs.uiuc.edu (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 st.cs.uiuc.edu, and you can get information about the
e-mail server by sending to archive-server@st.cs.uiuc.edu, 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.

What: OBST (Version: OBST3-2)
From: stone@fzi.de
Date: 19/3/92

[ Formerly, we used the acronym SOS, which led to a conflict
  with an object oriented operating system of the same name.
  Therefore we changed the name to OBST ("Obst" is the German 
  word for "fruit"). As many people already use SOS (OBST) we 
  did not change internal things like class names, environment 
  variables and so on. ]

The persistent object management system OBST was developed by
Forschungszentrum Informatik (FZI) as a contribution to the STONE
project. This project (supported by grant no. ITS8902A7 from the
BMFT, i.e. the German Ministry for Research) aims at the development
of a software engineering environment for education purposes and is
carried out as a joint project of nine german universities and
research institutions.

An essential feature of STONE is that the object oriented paradigm 
is pursued consequently as a key concept. OBST is the common persistent
object store for all tools within the STONE environment. 

The OBST data model can be characterized by the following properties:

 * Schema definition language syntactically similar to C++
 * Support of multiple inheritance
 * Generic classes
 * Distinction between public, protected, and private methods
 * Redefinition of methods
 * Overloading of methods

Schemas are compiled by the OBST schema compiler. The compilation
results are instances of classes of the meta schema. From these
instances in a next step interfaces to different programming languages
can be generated. At present the C++ language binding is implemented,
interfaces to Lisp and other languages are planned.

Objects are stored in so-called containers. The container an object
belongs to is determined at the time of object creation and fixed
throughout the object's lifetime. Containers are the units of 
clustering, synchronization, and recovery. Objects can be referenced
by other objects across container boundaries.

OBST provides a mechanism to incrementally load methods. This enables
programs to deal with objects whose type is defined after the program 
itself has been developed. This is useful in systems that provide for 
inheritance and it supports schema evolution.

Since end 1990 the first prototype of OBST is available and is shipped
to interested universities and research institutions. 

The system comes with the schema compiler, a library of predefined
classes, a graphical object browser, the structurer and flattener and the
OShell, and all 
manuals. 

Structurer and Flattener is a tool to build objects from bytestrings and
flatten objects down to bytestrings. It is intended to be used when coupling
UNIX tools to the object management system. The user defines a grammar
that describes her objects. Afterwards, the structurer parses an ascii 
text according to the given grammar and creates an OBST object structure that
represents the corresponding parse tree.  The flattener does the inverse
transformation, that means it generates an ascii text from a given OBST object
structure according to the given grammar.

OShell is a tool which provides interactive access to the OBST object base.
There is a language called OSL which is based on the lambda calculus and
defines the interface to the OShell tool.

For the prototype's installation a C++ compiler (GNU g++ 1.37 or later or AT&T
2.0/2.1) and the X-Windows system (currently X11R4) for the graphical tools
are required. Installation is well-tried on SUN 3/* and SUN 4/* systems and
should be no problem on other UNIX machines, too.

--------------------------------------------------------------------
For more information please mail to:
                Forschungszentrum Informatik (FZI)
                       STONE Projekt
                 Haid-und-Neu-Strasse 10-14
                     D-7500 Karlsruhe 1
                          Germany
or email to:  stone@fzi.de

Phone:        ++49-721-9654-601
Fax:          ++49-721-9654-609
Teletex:      721 190 fziKA

The OBST system is available via anonymous FTP from gate.fzi.de
[141.21.4.3]. The system can be found in the directory /pub/OBST.

Sites interested in getting information about new OBST developments
are welcome to register in our mailing list by sending an email with
subject "obst-mailing-list" to stone@fzi.de.

What: BOS
From: Sean.Levy@cs.cmu.edu
Date: 23 Apr 92 18:07:32 GMT

[For readers of comp.object and self-interest, BOS is a prototype-based
object system that I have, er, prototyped in Tcl. It is available via anon
FTP to monch.edrc.cmu.edu under /usr0/snl/archive/bos-1.2.tar.Z (you have to
cd to /usr0/snl/archive first and then get the file, due to CMU security hacks
in ftpd). I thought that this would be of interest to comp.object and
self-interest, so I'm cross-posting/mailing --S]

Note: I play very fast and loose with the terminology of OOP to get my
point across. I appoogize if I offend any sensibilities, and will clarify what
I say if it is obfuscated by my use of terms.


What: SATHER

Sather is under development at the International Computer Science Institute.
Sather has clean and simple syntax, parameterized classes, object-oriented
dispatch, multiple inheritance, strong typing, and garbage collection. The
compiler generates efficient and portable C code which is easily integrated
with existing code.

The initial beta test release of the language was in May, 1991. The compiler,
debugger, Emacs development environment, documentation, and library classes
are available by anonymous ftp from "icsi-ftp.berkeley.edu".
"sather@icsi.berkeley.edu" is a mailing list for discussing aspects of Sather
and "sather-admin@icsi.berkeley.edu" should be used for bug reports and
requests to be added or deleted from the mailing list.

Sather is based on Eiffel but is more concerned with efficiency and less with
some of the formal and theoretical issues addressed by Eiffel. The language is
much smaller than the current Eiffel, it eliminates over 40 keywords and
simplifies the syntax and inheritance rules. 

Like Eiffel, Sather code is compiled into portable C and efficiently links
with existing C code. The Sather compiler is written in Sather and has been
operational for almost a year, though it is still being improved. Preliminary
benchmarks show a performance improvement over Eiffel of between a factor of 4
and 50 on basic dispatching and function calls. On the benchmarks used at
Stanford to test Self (including 8 queens, towers of hanoi, bubblesort, etc),
Sather is even slightly faster than C++.

The Sather compiler and libraries are publicly available under a very
unrestrictive license aimed at encouraging contribution to the public library
without precluding the use of Sather for proprietary projects.  The goal is to
establish a repository for efficient, reusable, well written, publicly
available, classes for most of the important algorithms in computer science.
There are currently about 120 classes in the library. The libraries are
growing quickly and will collect together classes from many authors under the
same unrestrictive license. 

A GNU emacs development environment for Sather is available. A debugger based
on gdb from the Free Software Foundation is also available. A parallel version
of Sather for shared memory machines called "Psather" is also under
development.

What: C++ products list
From: Sean.Levy@cs.cmu.edu
Host:   ftp.th-darmstadt.de
Dir:      /pub/programming/languages/C++/c++-products

It's there in ASCII, texinfo, troff, DVI, and PostScript version.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod                  Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany



What: SNIFF (Sniff 1.1b (C++ Development Environment))
From: shite@sinkhole.unf.edu (Stephen Hite)
Date: 23 Aug 92 18:14:00 GMT

Sniff 1.1b is available from iamsun.unibe.ch 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.

What: COOL

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++
   compatibility
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 csc.ti.com, get pub/COOL.tar.Z
2. Cfront2.1 version modified by General Electric:
   at cs.utexas.edu, 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
nguyen@crd.ge.com


What: ctags/etags for C and C++
From: kendall@centerline.com (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:

        ftp.centerline.com:/pub/tags-1.0.tar.Z

ftp.centerline.com is 140.239.2.29.  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.


What: Version 4.0 of the POSTGRES DBMS
From: mer@gaia.CS.Berkeley.EDU (Jeff Meredith)
Date: 16 Jul 92 04:53:17 GMT

Version 4.0 of the POSTGRES DBMS is now available for distribution. Version 4.0 
provides significant advances in functionality over 3.1.  General improvements
in the code and some key multi-user bug fixes have resulted in a much more
reliable system than we have ever previously released.

Major new features include:
 o  Complete support for language (POSTQUEL) functions.
 o  Handling of nested dot expressions.
 o  Optimization of predicates with expensive functions.
 o  Binary portals
 o  Initial support of sets
 o  Indices on system catalogs.

Postgres runs on Sparc I, Sparc II, Sun 4 running SunOs, and DECstations
running ULTRIX >= 4.0, as well as Sequent Symmetry machines.  Postgres
consists of about 250,000 lines of C.

If you would like to get Postgres 4.0, you can get it in one of two ways:

(1)  Anonymous FTP from postgres.berkeley.edu

cd pub
get postgres-setup.me
binary
get postgres-v4r0.tar.Z
quit 

Or, if you do not have net.access, you can order a Postgres distribution
tape by sending a check payable to the Regents of the University of California
for $150.00 to:
         Postgres Project
         571 Evans Hall
         University of California
         Berkeley, CA 94720.

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.


What: SELF optimizing compiler and Thesis
From: chambers@cs.washington.edu (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 self.stanford.edu in
the directory pub/papers/chambers-thesis.  This version is free.  Note however
that the thesis is about 250 pages long.


What: Self 2.0 Release
From: hoelzle@Xenon.Stanford.EDU (Urs Hoelzle)
Date: 10 Aug 92 21:08:25 GMT

Announcing Self Release 2.0

The Self Group at Sun Microsystems Laboratories, Inc., and Stanford University
is pleased to announce Release 2.0 of the experimental object-oriented
exploratory programming language Self.

Release 2.0 introduces full source-level debugging of optimized code, adaptive 
optimization to shorten compile pauses, lightweight threads within Self,
support for dynamically linking foreign functions, changing programs within
Self, and the ability to run the experimental Self graphical browser under
OpenWindows.

Designed for expressive power and malleability, Self combines a pure,
prototype-based object model with uniform access to state and behavior. Unlike
other languages, Self allows objects to inherit state and to change their
patterns of inheritance dynamically. Self's customizing compiler can generate
very efficient code compared to other dynamically-typed object-oriented
languages.

Self Release 2.0 runs on Sun-3's and Sun-4's, but no longer has an optimizing
compiler for the Sun-3 (and therefore runs slower on the Sun-3 than previous
releases).

This release is available free of charge and can be obtained via anonymous ftp
from self.stanford.edu. Unlike previous releases, Release 2.0 includes all
source code and is legally unencumbered (see the LICENSE file for legal
information.)  Also available for ftp are a number of papers published about
Self.

Finally, there is a mail group for those interested in random ramblings about
Self, self-interest@self.stanford.edu. Send mail to
self-request@self.stanford.edu to be added to it (please do not send such
requests to the mailing list itself!).

The Self Group  at Sun Microsystems Laboratories, Inc. and Stanford University


What: The Smalltalk Report
From: cdibble@bonnie.ics.uci.edu (Clifford Thomas Dibble)
Date: 11 May 92 19:48:25 GMT

I've received several requests for information about "The Smalltalk Report", so
here it is. For the record, I have no affiliation whatsoever with the
publisher.

                             The Smalltalk Report
                The International Newsletter for Smalltalk Programmers

is published 9 times a year by
SIGS Publications Inc.
588 Broadway, New York, NY.
10012
(212) 274-0640

1 year domestic subscription: $65
1 year foreign/Canada       : $90
single copy price           : $8

Send subscription orders to

The Smalltalk Report
Subscriber Services
Dept. SML
P.O. Box 3000
Denville, NJ
07834


What: Exodus project software (Storage Manager & GNU E)
From: zwilling@caseus.cs.wisc.edu (Mike Zwilling)
Date: 16 Jul 92 04:53:19 GMT

In the past there have been discussions in comp.object and comp.databases
about persistent storage for object-oriented databases and programming
languages.  As you may know, the EXODUS Database Toolkit project at the
University of Wisconsin has researched these issues and others for a number of
years.  The purpose of this note is to inform you that the software from the
EXODUS project is freely available via anonymous ftp.  The EXODUS software
includes the EXODUS Storage Manager and the compiler for the E persistent
programming language.  Also included is documentation, and a suite of test
programs for both components.  This note briefly describes the software and
explains how to obtain it.  We currently support DECstation 3100s/5000s and
SPARC based workstations.  Others have ported the code to HP700s and IBM
RS6000s.

The EXODUS Storage Manager is a client-server object storage system which
provides "storage objects" for storing data, versions of objects, "files"
for grouping related storage objects, and indexes for supporting efficient
object access.  A storage object is an uninterpreted container of bytes which
can range in size from a few bytes to hundreds of megabytes.  The Storage
Manager provides routines to read, overwrite, and efficiently grow and shrink
objects.  In addition, the Storage Manager provides transactions, lock-based
concurrency control, and log-based recovery.

GNU E is a persistent, object-oriented programming language developed as part
of the Exodus project.  GNU E extends C++ with the notion of persistent data,
program level data objects that can be transparently used across multiple
executions of a program, or multiple programs, without explicit input and
output operations.

GNU E's form of persistence is based on extensions to the C++ type system to 
distinguish potentially persistent data objects from objects that are always
memory resident.  An object is made persistent either by its declaration (via
a new "persistent" storage class qualifier) or by its method of allocation
(via persistent dynamic allocation using a special overloading of the new
operator).  The underlying object storage system is the Exodus storage manager,
which provides concurrency control and recovery in addition to storage for
persistent data.

The current release of GNU E is based on gcc/g++ version 2.2.2, and is upward 
compatible with C++ as implemented by that compiler.

A bibliography of EXODUS related papers can be obtained from the ftp site
described below.

To obtain the software, simply ftp to ftp.cs.wisc.edu (128.105.8.18), login
as anonymous with your email address as a password, "cd" to the "exodus"
directory, and follow the directions (directions will be given as you "cd").
See the README for the latest information about the software and an indication
of our future plans.  If you decide to use the software, please contact us at
exodus@cs.wisc.edu so that we can notify you of changes.


What: Release 2.0 of OBJ3 (needed for FOOPS and OOZE, concurrent OOP)
Date: Thu, 4 Jun 92 15:07:26 BST
From: Paulo.Borba@prg.oxford.ac.uk

OBJ is available from SRI, see the message below; prototypes implementations of
FOOPS (without the concurrent extension) and OOZE are due to the end of the
year, but for both you also need OBJ. 

Unfortunately, I don't have any document about the FOOPS extension now, but
probably by the end of the year. I will send it to you as soon as possible.


What: Release 2.0 of OBJ3 is now available
From: winkler@csl.sri.com (Timothy Winkler)
Date: 6 Apr 92 08:35:40 GMT

Release 2.0 of OBJ3 is now available!

Improvements in this version include some language extensions and additional 
theorem proving features.  In addition, an effort has been made to speed up
the implementation; rewriting is often twice as fast as in the original
implementation.  We are including the AKCL patches from the University of
Texas at Austin in the distribution, which are necessary for maintaining the
portability of OBJ3 and also improve its efficiency.  In addition, we are
distributing a SPARC version of OBJ3.

OBJ3 has pattern matching modulo associativity, commutativity, and identity.
New: the system automatically computes conditions for rules involving matching
modulo identity that are used to prevent obvious non-termination problems.

Also new to this version of OBJ3 is a facility for controlled rewriting. This
provides substantially increased support for the use of the system for
equational theorem proving.

To receive the OBJ3 distribution tape or an OBJ3 license, send a request
to:

           Judith Burgess (OBJ3)
           Computer Science Laboratory
           SRI International
           333 Ravenswood Ave.
           Menlo Park, CA 94025-3493, USA

        Telephone: (415) 859-5924
        Fax: (415) 859-2844
            email: obj3dist@csl.sri.com

Be sure to give us your postal mailing address.  Then we will send you the
OBJ3 Information Form, and License Agreement, with instructions on how to
fill them out.  (A KCL license form will also be included.)  When you return
them to us, appropriately filled out and signed, we will send you the tape,
somedocumentation, and, in case you are requesting a tape, an invoice for
$150.00 plus any required taxes.

If you already have an OBJ3 license, then you don't need to get a new license,
but, if you are requesting a tape from SRI, you are asked to pay the above
distribution fee.

It is also possible to get a license for OBJ3 at no charge from SRI and then
get the OBJ3 distribution itself from some third party also having a license.

Jose Meseguer, Timothy Winkler, and Patrick Lincoln
Computer Science Laboratory
SRI International
333 Ravenswood Avenue
Menlo Park, California 94025, USA

Joseph Goguen
Programming Research Group
Computing Laboratory
Oxford University
11 Keble Road
Oxford OX1 3QD, United Kingdom


APPENDIX F  Magazines, Journals and Lewsletters
===============================================
  ACM OO Messenger
  ACM OOPSLA
  ACM SigPlan Notices
  Smalltalk Report, The (see above)
  Far more to be added...