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 10/13

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

See reader questions & answers on this topic! - Help others by sharing your knowledge
The major new features are:

        - Faster object store.
        - Support for replicated objects.
        - Memory resident object store.
        - Support for ANSAware (not available via ftp)

        Arjuna supports nested atomic actions (atomic transactions) for 
controlling operations on objects (instances of C++ classes), which can 
potentially be persistent. Arjuna has been implemented in C++ to run on 
stock  platforms  (Unix  on  SUNs,  HPs  etc).  The  software available 
includes  a C++  stub generator  which hides  much  of the  details  of 
client-server  based  programming,  plus  a system  programmer's manual 
containing  details of  how  to  install  Arjuna and  use it  to  build 
fault-tolerant  distributed  applications.  The software and the manual 
can be obtained by anonymous ftp: (

        Several  enhancements   and   ports  on   various   distributed 
computing platforms are in progress.  We would be pleased  to hear from 
researchers and teachers  interested in using Arjuna.  The programmer's 
manual  contains the  e-mail  addresses for sending  your  comments and 
problem reports.

ANSAware version of Arjuna

The ANSAware version of Arjuna is available from:

Architecture Projects Management Limited
Poseidon House
Castle Park                                  Phone    +44 223 323010
Cambridge                                    Fax      +44 223 359779
CB3 0RD                                      Internet
United Kingdom                               UUCP     ...uknet!ansa!apm

Arjuna Mailing List

To enable us to  help people using Arjuna,  an electronic mail list has 
been setup. You can join  the Arjuna mailing list  by sending an e-mail 
message to "" containing:

join arjuna <Your Name>

For example : join arjuna John Smith

Mail  messages  can  then   be  sent  to  "",  for 

Arjuna Project Team
The Department of Computing Science,
The University,
Newcastle upon Tyne.
NE1 7RU, UK.

Fax:           +44 91 222 8232
anonymous ftp: (

POST  = Computing Laboratory, The University, Newcastle upon Tyne, UK NE1 7RU
VOICE = +44 91 222 8067         FAX = +44-91-222-8232

Subject: Arjuna papers announcement
Date: Tue, 8 Jun 1993 16:47:02 GMT

This is to announce the availability of most Arjuna related papers and
theses via anonymous ftp from These papers are
available in both US Letter and European A4 standards in postscript and
should now print on systems. Any problems in printing should be directed to

Since there are too many papers to describe in one posting there is an index
available in /pub/Arjuna/Index which contains the abstracts from all of
the papers/theses and their locations within the ftp hierarchy.

>3  BOS (prototyping)

What: BOS
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 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 apologize if I offend any sensibilities, and will clarify what
I say if it is obfuscated by my use of terms.

>4  G++ for DOS (Many sites)

:From: DJ Delorie <>
:Newsgroups: gnu.announce,gnu.misc.discuss

:               DJGPP 1.10 is now available!
:               --- DJGPP - G++ for MSDOS/386 ---

:djgpp is normally uploaded to:
:            pub/msdos/djgpp
:               pub/msdos/djgpp(*)
:                                                       msdos/gnuprogs/djgpp (*)
:                                                       pub/pc/gnu/gcc-pl* & gcc-newst
:   pub/msdos/djgpp
:                 ibmpc/djgpp
:                   pub/djgpp
:  UK.AC.MCC.FTPJ (JANET)                user<guest>     <PUB>djgpp

:(*) Please do not access during working hours (7am - 6pm their local time)

>5  cooC (Concurrent, OO C ext.)

From: (Ken-ichi Maeda)
Subject: cooC FTP release (2nd posting)
Date: 2 Jul 93 15:13:11
Organization: TOSHIBA R & D Center, Kawasaki, JAPAN.

        We are pleased to announce the release of new object oriented
language based on C.  The language has support for concurrent object
execution with synchronous or asynchronous message pssaing and wait when
necessary reply handling.  The language known as cooC (concurrent object
oriented C) is available by anonymous FTP for research purposes.

        FTP Site: (
        File: pub/toshiba/cooc-beta.1.1.tar.Z

        The released version of cooC employs SunOS(TM) LWP (light weight
process), to obtain concurrent execution.  The release consists of the
language translator (cooC->C), a runtime library (SunOS(TM)), a
concurrent object based debbuger, an example groupware application
(SharedDraw) and some technical papers.


        TOSHIBA Corporation while making cooC free for research, retains

        For further detail, please refer to COPYRIGHT notice in the

        Any questions and/or comments are welcome at the following
e-mail address.

Ken-ichi Maeda <>
Communication and Information Systems Research Lab. II
TOSHIBA Research & Development Center
1, Komukai Toshiba-cho, Saiwai-ku, Kawasaki 210, JAPAN
TEL. (+81- or 0)44-549-2237  FAX. (+81- or 0)44-520-1841

>6  FMPL (prototyping)

What: Interpreter for FMPL of Accardi, Release 1
From: (Jon Blow)
Date: 2 Jun 92 08:42:26 GMT

An interpreter for FMPL of Accardi, Release 1 is now available for ftp at

*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.

>7  MAX (visual OO)

From: (Michel Fingerhut)
Subject: IRCAM DSP software for DEC/ALPHA and DEC/MIPS
Organization: Inst. de Recherche et Coordination Acoustique/Musique, Paris
Date: Fri, 13 Aug 93 11:25:23 GMT contains some of the IRCAM-developed
software packages (in demo version; see further down for availability
of the fully functional versions), including runnable binaries for
both the DEC/ALPHA (osf1) and DEC/MIPS (ultrix) architectures, and soon
available on other platforms (SGI and Macintosh).


MAX is a visual, object-oriented, programming language, initially
designed for interactive musical performance, but which is suitable for
digital signal processing as well as real-time control.  It allows
interconnecting of oscillators and filters, building custom controller
modules and simulation units all from a core collection of signal
processing objects.

First developed by Miller Puckette at IRCAM in late 1986 to control
the IRCAM 4X, it was later implemented on the Apple Macintosh as a
graphical programming environment for MIDI applications.  This version
has been extended by the Opcode company in Palo Alto, CA (USA), and is
available through them.

The Alpha version (and its demo-only subset) is based on the NeXT
version, where it is used to control the IRCAM-designed ISPW board.
This card, based on two Intel i860 microprocessors, handles
numerically-intensive real-time operations.

To date, it has been extensively used in live performance of
full-length musical compositions (see some references in the MAX/doc
directory), as well as in scientific and experimental applications
requiring real-time control.


SVP (``Super Vocodeur de Phase'') is a signal processing tool which was
designed and developed at IRCAM by Gilles Poirot and Philippe
Depalle.  It is a full system for the analysis and synthesis of sound,
whose core is a phase vocoder, and which comprises several modules for
analysis (FFT, LPC..), filtering (band modes, surface modes...), time-
scaling, mixing, spectral combination, cross-synthesis and
amplification, which can be combined in multiple ways.


UDI is a library of C routines which provides a coherent software
approach for developing and maintaining digital signal processing
algorithms on stand-alone workstations or on host/array processor
configuration.  Initially designed for sound signal analysis and
synthesis, it can be used by any application which does vector math

It provides functions ranging from elementary vector and matrix
operations to more specific DSP operations, such as, but not limited
to, FFT, least-square, linear prediction coding, discrete cepstrum and
pitch detection.

UDI was actually used in implementing SVP.


The following example contains underlined text.  If it does not print
nicely, use your favorite editor in order to remove all occurrences of
"^H_" (control-H followed by underscore).

Connect via ftp to  Engage into the following dialog (the
underlined text is the reply you should provide

        220 ftp FTP server (Version 6.17 Thu Mar 11 08:30:51 MET 1993) ready.
        Name (ftp:host): f _t _p _            (or: a _n _o _n _y _m _o _u _s _)
        Passwd: l _o _g _i _n _@ _y _o _u _r _m _a _c _h _i _n _e _       (see NOTE further down)
        230-(informational messages, please read!)
        ftp> c _d _  _p _u _b _/ _I _R _C _A _M _/ _p _r _o _g _r _a _m _s _
        250 CWD command successful.
        ftp> g _e _t _  _R _E _A _D _M _E _
        200 PORT command successful.
        150 Opening ASCII mode data connection for README (nnn bytes).
        226 Transfer complete.
        local: README remote: README
        nnn bytes received in mmm seconds (xxx Kbytes/s)
        ftp> b _i _n _
        200 Type set to I.
        ftp> g _e _t _  _s _v _p _. _t _a _r _. _g _z _             (or u _d _i _. _t _a _r _. _g _z _ or m _a _x _. _t _a _r _. _g _z _)
        ftp> q _u _i _t _


The ftp server requires you to give as password something of the form
        l _o _g _i _n _@ _h _o _s _t _
where l _o _g _i _n _ is your login name (or account name, or user information)
and h _o _s _t _ is the fully-qualified name of the machine you are currently calling
from, which is not necessarily the one on which you get your mail.  If you
mistype it, the ftp server will advise you with an informative error message.


For information on availability of these and other IRCAM tools with
full functionality and documentation, and/or licensing of source code,
as well as IRCAM publications (technical/scientific reports) please contact
(in french or english, preferably):

        Mr. Vincent Puig
        Directeur de la Valorisation
        31, rue Saint-Merri
        F-75004 Paris, France

        FAX:    +33 1 42 77 29 47

Additional info can be found in the README file in the above directory.


... in retrieving the software and/or in running it: please send email to

>8  O'small (OO lang for teaching)

From: (Andreas Hense)
Subject: *** NEW O'small compiler available by ftp !!! ***
Date: 25 Jun 1993 13:54:35 GMT
Organization: Universitaet des Saarlandes,Rechenzentrum

             O'small - THE object-oriented language for teaching
                       (Announcement of a new compiler)

*** An object-oriented language for teaching?

Depending on which aspects of object-orientation you want to convey you
may choose your teaching language. If you want to teach the aspect of
software reuse and nice graphical user interfaces, you should choose
Smalltalk. If you want to show students how to program in a best
selling language you should choose C++.

*** In which case should I choose O'small?

You should consider O'small if you believe that computer languages
should have a GOOD FORMAL SEMANTICS. Everyone will agree that a
language needs a formal semantics. Otherwise, your program will yield
different results on different implementations. A good formal
semantics does not only serve the purpose of precisely defining what
the results of your programs are, it also gives insights about the
nature of the language. 

You should consider O'small if you do not want to waste time on
unnecessary details. O'small is CONCISE. Its syntax and semantics
takes no more than one page (if you choose the right font). Its syntax
is similar to more traditional languages. O'small has been used in a
lecture showing the differences between wrapper semantics
(denotational) and method lookup semantics (operational). 

O'small is FREE! Up to now, there has only been an O'small interpreter
written in Miranda [Hen91b]. This interpreter is directly based on the
denotational semantics of O'small [Hen91d]. The interpreter itself is
available by ftp. However, you need Miranda in order to run it. Now,
there is a NEW IMPLEMENTATION of O'small based entirely on EASILY
AVAILABLE SOFTWARE. This software is not free but it does not cost
anything. The new implementation is based on an abstract machine [Boe93].

You can MODIFY the language and have your students make experiments
with it. The source code of the abstract machine and the
specifications for the parser and scanner generators are available.
Using these generators you can make experiments for your own research
in statical analysis of object-oriented languages.

*** I would like to TRY O'small

You get the implementation by anonymous internet ftp.
The following table gives the ftp connection information.

Host:                   Net Address:      Directory:
-------------------------------------------------------------        /pub/osmall/machine

The directory /pub/osmall/machine contains the files
        ANNOUNCE                this file
        oma.1.00.tar.Z          compressed tar-file

NOTE: Ftp should be put into binary mode before transferring the compressed
tar file.

Here is a sample dialog:

   ftp> open
   Name: anonymous
   Password: <your name>
   ftp> binary
   ftp> cd /pub/osmall/machine
   ftp> get README
   ftp> get ANNOUNCE
(  ftp> get HowToGetML  )
   ftp> get oma.1.00.tar.Z
   ftp> close
   ftp> quit

If you have a Sun 4 or a SPARC you can use the existing executable files.
Otherwise, you need 'sml-yacc', 'sml-lex' and 'sml-noshare'. Read
'HowToGetML' to obtain them.

Instructions on using the machine are contained in the file README.


[Boe93]  Christoph Boeschen.  Christmas - An abstract machine for
         O'small.  Master's thesis, Universit"at des Saarlandes, 
         Fachbereich 14, June 1993.

[Hen91b] Andreas V. Hense.  An O'small interpreter based on denotational
         semantics.  Technical Report A 07/91, Universit"at des Saarlandes,
         Fachbereich 14, November 1991.

[Hen91c] Andreas V. Hense. Type inference for O'small. Technical Report A
         06/91, Universit"at des Saarlandes, Fachbereich 14, October 1991.

[Hen91d] Andreas V. Hense.  Wrapper semantics of an object-oriented pro-
         gramming language with state. In T. Ito and A. R. Meyer, editors,
         Theoretical Aspects of Computer Software, volume 526 of Lecture No-
         tes in Computer Science, pages 548-568. Springer-Verlag, September

[Hen93]  Andreas V. Hense.  Denotational semantics of an object-oriented
         programming language with explicit wrappers.  Formal Aspects of
         Computing, 5(3), 1993. to appear.

[HS92]   Andreas V. Hense and Gert Smolka.  A verification of extensible
         record types.  In Zhongzhi Shi, editor, Proceedings of the IFIP
         TC12/WG12.3 International Workshop on Automated Reasoning,
         pages 137-164, Beijing, P.R. China, 13-16 July 1992. Internatio-
         nal Federation for Information Processing, Elsevier, North-Holland,
         Excerpta Medica.

[HS93]   Andreas V. Hense and Gert Smolka.  Principal types for object-
         oriented languages. Technical Report A 02/93, Universit"at des Saar-
         landes, Fachbereich 14, June 1993.

>9  OBJ3 (OO lang)

What: Release 2.0 of OBJ3 (needed for FOOPS and OOZE, concurrent OOP)
Date: Thu, 4 Jun 92 15:07:26 BST

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: (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

           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

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

>10  OBST (lang, perst, OODB)

See entry under Appendix B.

>11  OOT (OO Turing demo)

What: OOT
From: (Ric Holt)
Date: 26 Apr 93 20:14:43 GMT


OOT (Object Oriented Turing) is a programming language that has been 
developed at the University of Toronto.  An OOT demo, which includes the 
fully implemented language, is available for Sun/4's running X windows.  
See below for instructions to copy the demo to your site.

OOT supports the standard OOPL features of information hiding, classes,
polymorphism and generics, as well as the usual features in C and Pascal 
style languages.  It also supports concurrency, exception handling 
and system programming (pointer arithmetic, bit manipulation, etc).  

The OOT environment is designed for teaching Computer Science.
It is being used in introductory programming courses, courses
on OO concepts, compiler courses, OS courses, etc.

The OOT environment is fully integrated, with multi-window editing, turbo 
speed compiler, integrated color graphics, GUI user interface, implicit MAKE, 
on-line manual, integrated demos, etc.  The system includes an experimental
CASE tool with an interface browser and a visual system browser.

>12  Sather (simple Eiffel)


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 "".
"" is a mailing list for discussing aspects of Sather
and "" 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

From the Sather FAQ, August 16, 1993 (See Section 1.24):

Q 1: What is Sather?
Sather is an object oriented language which aims to be simple,
efficient, interactive, safe, and non-proprietary. It aims to meet the
needs of modern research groups and to foster the development of a
large, freely available, high-quality library of efficient
well-written classes for a wide variety of computational tasks. It was
originally based on Eiffel but now incorporates ideas and approaches
from several languages. One way of placing it in the "space of
languages" is to say that it attempts to be as efficient as C, C++, or
Fortran, as elegant and safe as Eiffel or CLU, and to support
interactive programming and higher-order functions as well as Common
Lisp, Scheme, or Smalltalk.

Sather has garbage collection, statically-checked strong typing,
multiple inheritance, separate implementation and type inheritance,
parameterized classes, dynamic dispatch, iteration abstraction,
higher-order routines and iters, exception handling, assertions,
preconditions, postconditions, and class invariants. The development
environment integrates an interpreter, a debugger, and a
compiler. Sather code can be compiled into C code and can efficiently
link with C object files.

>13  Self

From: hoelzle@Xenon.Stanford.EDU (Urs Hoelzle)
Subject: Announcing Self 3.0
Date: 28 Dec 93 22:19:34 GMT

               ANNOUNCING Self 3.0 
The Self Group at Sun Microsystems Laboratories, Inc., and Stanford
University is pleased to announce Release 3.0 of the experimental
object-oriented programming language Self.
This release provides simple installation, and starts up with an
interactive, animated tutorial.
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.
The latest release is more mature than the earlier releases: more
Self code has been written, debugging is easier, multiprocessing is more
robust, and more has been added to the experimental graphical user interface
which can now be used to develop code. There is now a mechanism
(still under development) for saving objects in modules, and a
source-level profiler.
The Self system is the result of an ongoing research project and
therefore is an experimental system. We believe, however, that the
system is stable enough to be used by a larger community, giving
people outside of the project a chance to explore Self.
2 This Release
This release is available free of charge and can be obtained via
anonymous ftp from Also available for ftp are a
number of published papers about Self.
There is a mail group for those interested in random ramblings about Self, Send mail to
to be added to it (please do not send such requests to the mailing list
2.1 Implementation Status
Self currently runs on SPARC-based Sun workstations running SunOS 4.1.x
or Solaris 2.3. The Sun-3 implementation is no longer provided.
2.2 Major Changes
Below is a list of changes and enhancements that have been made since
the last release (2.0.1).  Only the major changes are included. 
o The graphical browser has been extended to include editing
  capabilities. All programming tasks may now be performed through the
  graphical user interface (the "ui"). Type-ins allow for expression
  evaluation, menus support slot editing, and methods can be entered and
  edited. If you are familiar with a previous version of the Self
  system, Section 14.1 of the manual entitled "How to Use Self 3.0"
  contains a quick introduction to the graphical user interface. The
  impatient might want to read that first.
o A mechanism - the transporter - has been added to allow arbitrary
  object graphs to be saved into files as Self source. The system has
  been completely modularized to use the transporter; every item of
  source now resides in a transporter-generated
  module. Transport-generated files have the suffix .sm to distinguish
  them from "handwritten" files (.Self), though this may change as we
  move away from handwritten source.  The transporter is usable but rough,
  we are still working on it.

o Every slot or object may now have an annotation describing the
  purpose of the slot. In the current system, annotations are strings
  used to categorize slots. We no longer categorize slots using
  explicit category parent objects. Extra syntax is provided to annotate
  objects and slots.
o A new profiler has been added, which can properly account for the
  time spent in different processes and the run-time system, and which
  presents a source-level profile including type information (i.e.,
  methods inherited by different objects are not amalgamated in the
  profile, nor are calls to the same method from different sites). It
  also presents a consistent source-level view, abstracting from the
  various compiler optimizations (such as inlining) which may confuse
  the programmer.
o Privacy is not enforced, although the privacy syntax is still
  accepted. The previous scheme was at once too restrictive (in that
  there was no notion of "friend" objects) and too lax (too many object
  had access to a private slot). We hope to include a better scheme in
  the next release.
o The "new" compiler has been supplanted by the SIC ("simple inlining
  compiler"), and the standard configuration of the system is to
  compile first with a fast non-optimizing compiler and to 
  recompile later with the SIC. Pauses due to compilation or
  recompilation are much smaller, and applications usually run faster.
o Characters are now single-byte strings. There is no separate
  character traits.
o Prioritized inheritance has been removed; the programmer must now
  manually resolve conflicts. We found the priority mechanism of
  limited use, and had the potential for obscure errors.
2.4 Bug Reports
Bug reports can be sent to Please include
an exact description of the problem and a short Self program
reproducing the bug.
2.5 Documentation
This release comes with two manuals:
   How to Use Self 3.0 (
   The Self Programmer's Reference Manual (

Happy Holidays!

-- The Self Group

>14  C++ gram, etc.

What: ftp site for C++ material
From: (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. []
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.)

>15  ConceptBase (OODB, reqkey)

What: ConceptBase


A four week test-version of ConceptBase V3.1 is available 
on the FTP server in the 
directory pub/CB.  For running the ftp version you must ask for a 
key by email.

>16  C++ OODB

From: (Daz)
Subject: Re: Class libraries for accessing RDBs ?
Organization: Monash University, Melb., Australia.
Date: Thu, 17 Jun 1993 23:53:22 GMT

shekar@gizmo.CS.MsState.Edu (Chandrashekar Ramanathan) writes:

>       Are there any shareware/ftp'able C++ class libraries that
>provide Relational Database access? I would also appreciate any
>pointers (ideas/articles/journals) to the various issues that one has
>to consider in designing such library. 
Ok, I'm not sure if it's exactly what you want, but it's a database, it's
fully written in c++ with classes etc, and it's out for beta testing.

Check out
and please mail if you decide to play with

Darren Platt, Department of Computer Science
Monash University, Clayton Melbourne, Victoria, Australia

>17  Exodus (Storage Man, perst)

What: Exodus project software (Storage Manager & GNU E)
From: (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

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 (, 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 so that we can notify you of changes.

>18  GRAS

GRAS - A Graph-Oriented Database System for SE Applications
Copyright (C) 1987-1992  Lehrstuhl Informatik III, RWTH Aachen
This library is free software under the terms of the GNU Library 
General Public License.

Lehrstuhl f"ur Informatik III --> GRAS
University of Technology Aachen (RWTH Aachen),
Ahornstr. 55,
D-5100 Aachen
Contact : Dr. Andy Sch"urr (or Richard Breuer), (for technical support)

The system GRAS with interfaces for the programming languages Modula-2
and C is available as public domain software for Sun3/Sun4 workstations
(the GRAS system itself is implemented in Modula-2 and consists of many
layers which might be reusable for the implementation of other systems): 

  Via anonymous ftp from
  ( in the directory /pub/unix/GRAS522_3

  There are several files contain documentation, sources, binaries,
  and libraries. All binaries are for Sun/4 machines. Sun/3 binaries
  are shipped only if explicitly requested.


>19  MOOD   (OODB, lim arch)

What: MOOD/P3 Ver.2.00 OODBS {Miniature,Materials}OODBS.
From: (Noboru Ono)
Date: 18 May 92 10:28:42 GMT

The following program/sample database package is available through anonymous
FTP at ( 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. 

Noboru Ono
Dept. of Machine Intelligence and Systems Engineering,
Faculty of Engineering, Tohoku University.

>20  Ode    (C++ OODB)

Note: Ode version 3.0 is now available.

What: Ode Release 1.1

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

From: (Aditya M. Jani)
Subject: *Announcement* UserGroup for ODE (OODBMS from AT&T)
Organization: Illinois Institute of Technology, Chicago
Date: Fri, 25 Jun 93 17:27:53 GMT

                    Ode Object database v2.0
Ode 2.0 is available via ftp from
Here is a sample session showing how to retrieve Ode 2.0
which is kept in the directory


as a compressed tar file named


First create the directory on the local machine
where ode is to be installed, e.g.,

mkdir ode
cd ode

Retrieve the compressed tar Ode file using ftp into
as illustrated below.
Then uncompress it

uncompress 2.0.oppbin.tar.Z

and unbundle it

tar xvf 2.0.oppbin.tar

Next see file README, fix install file, and run install


Sample ftp session
$ ftp
Connected to tcp!!1390.
220 inet FTP server (Version 4.271 Fri Apr 9 10:11:04 EDT 1993) ready.
Name ( anonymous
331 Guest login ok, send ident as password.
Password: smith@hostname
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd dist
250 CWD command successful.
ftp> cd ode2.0
250 CWD command successful.
ftp> get 2.0.oppbin.tar.Z
200 PORT command successful.
150 Opening BINARY mode data connection for 2.0.oppbin.tar.Z (2762525
226 Transfer complete.
2762525 bytes received in 1.6e+02 seconds (16 Kbytes/s)
ftp> quit 
221 Goodbye.


                              Available Now!

                                 Ode 2.0
                       An Object-Oriented Database

       C++ Compatible, Fast Queries, Complex Application Modeling,
       Multimedia Support, and more

       Ode 2.0 is now available to Universities.  Users who currently
       have Ode 1.1 will be automatically sent a tape with Ode 2.0.
       There is no charge for Ode.  However, AT&T requires the signing
       of a non-disclosure agreement.



       The Ode object database is based on the C++ object paradigm.
       Ode  uses  one  integrated data model (C++ classes) for both
       database and general purpose manipulation.  The Ode database
       is   defined,   queried  and  manipulated  in  the  database
       programming language O++, which provides simple and  elegant
       facilities for manipulating the database.

       O++  is  an  upward-compatible  extension  of  C++.   A  few
       facilities have been added to C++ to make it into a database
       programming language.  C++ programmers can learn  O++  in  a
       very short time.

       O++ programs can be compiled with C++ programs thus allowing
       the use of existing C++ code.


       Ode offers a simple and elegant notion of persistence  which
       is   modeled  on  the  ``heap''.   Specifically,  memory  is
       partitioned into volatile and persistent.  Volatile  objects
       are   allocated   in   volatile   memory  (stack  or  heap).
       Persistent objects are allocated  in  persistent  store  and
       they  continue  to exist after the program that created them
       has terminated.

       An Ode database is a collection of persistent objects.  Each
       object  is  identified  by  a  unique  object  id  (i.e.,  a
       persistent pointer,  or  to  be  precise,  a  pointer  to  a
       persistent object).

       The database programming language  O++  provides  facilities
       for   creating  and  manipulating  the  Ode  database.   For
       example,   O++   provides    facilities    for    specifying
       transactions,  creating and manipulating persistent objects,
       querying the database, creating and manipulating versions.


       Some  important  characteristics   of   an   object-oriented
       database are:

          + data is stored as objects,

          + data  can  be  interpreted  (using  methods)  only   as
            specified by the class designer,

          + relationship  between  similar  objects  is   preserved
            (inheritance), and

          + references between objects are preserved.


          + Speed: Queries can  be  faster  because  joins  (as  in
            relational  databases)  are  often not needed.  This is
            because an object can be retrieved directly  without  a
            search, by following object ids.

          + No impedance mismatch: The same data model is  used  by
            both   the   database   programming  language  and  the
            database;  it  is  not  necessary  to  do  any   format
            conversions  when  reading  the data from disk and when
            storing the data on disk.

          + Programmers  need  to  learn   only   one   programming
            language:  The  same  programming  language is used for
            both data definition and data manipulation.

          + Complex applications: The full power  of  the  database
            programming language's type system can be used to model
            the data structures of a complex  application  and  the
            relationship between the different data items.

          + Multimedia  applications:  The   semantic   information
            stored  in  the  database  (class  methods) facilitates
            correct  interpretation  of  the  data.   This  reduces
            application complexity since applications do no have to
            be responsible for the correct interpretation of data.

          + Versions: Object-oriented databases  typically  provide
            better support for versioning.  An object can viewed as
            the set of all its versions.  Also, object versions can
            be treated as full fledged objects.

          + Triggers  and  constraints:  Object-oriented  databases
            provide systematic support for triggers and constraints
            which are the basis of active databases.

       Finally, most, if not all, object-oriented applications that
       have  database  needs  will  benefit  from  using an object-
       oriented database.  Specifically, C++ applications that have
       database needs will benefit from using Ode.


         1.  Ode is C++ based and compatible with C++.

         2.  The  Ode  object   database   provides   four   object
             compatible  mechanisms  for  manipulating and querying
             the database: O++, OdeView, OdeFS, and CQL++:

                + O++ is a database programming language  based  on
                  C++.   O++  is  upward compatible with C++ and it
                  makes minimal  changes  to  C++.   O++  offers  a
                  simple and elegant notion of persistence which is
                  modeled on the ``heap''.  O++ provides facilities
                  for querying the database, and a variant of other

                + OdeView is a graphical X-based interface  to  the
                  Ode database.

                + OdeFS is a  file  system  interface  to  the  Ode
                  object  database.   OdeFS  allows  objects  to be
                  treated and  manipulated  like  files.   Standard
                  commands  such as rm, cp and mv and tools such as
                  vi and grep can be used to manipulate objects  in
                  the database.

                + CQL++ is a C++ variant  of  SQL  for  easing  the
                  transition  from  relational databases to object-
                  oriented databases such as Ode.

             Currently, only O++ is shipped with Ode 2.0.  A  beta-
             test version of OdeFS is available upon request.

         3.  Ode supports large objects  (these  are  critical  for
             multi-media    applications).    Ode   provides   both
             transparent access for large objects and a  file  like
             interface  for  large objects.  The latter can be used
             to efficiently access and  update  parts  of  a  large

         4.  Users can create versions of objects.  Ode will  track
             the   relationship   between   versions  and  provides
             facilities for accessing the different versions.

         5.  Transactions  can  be  specified  as  read-only;  such
             transactions  are  faster  because they are not logged
             and they are less likely to deadlock.

         6.  Users   can   run    ``hypothetical''    transactions.
             Hypothetical  transaction  allow users to pose ``what-
             if'' scenarios (as often  done  with  spread  sheets).
             User  can  change  data  and  see  the impact of these
             changes without changing the database.

         7.  EOS, the storage engine of Ode, is based on a  client-
             server architecture.  Some features of EOS:

               a.  Efficient  and  transparent  handling  of  large
                   objects.  A file-like interface is also provided
                   for very large objects.

               b.  Concurrency is based on  multi-granularity  two-
                   version   two-phase   locking;  it  allows  many
                   readers and one writer to access the  same  item

               c.  Log  records  contain  only  after   images   of
                   updates,  thus making logs small.  Recovery from
                   system failures requires one scan over  the  log
                   resulting in fast restarts.

       USE MODES

       Ode supports two modes of use:

         1.  Client-server (allows multiple  users  to  access  the
             database concurrently).

         2.  Single user (improved performance  compared  to  using
             the client-server mode).


       Ode 2.0 is currently being used as the multi-media  database
       engine  for  AT&T's  Interactive TV project.  Ode 1.1 (older
       version of Ode with  limited  capabilities)  has  also  been
       distributed to 30+ sites within AT&T and 135+ universities.

>21  POSTGRES (Ext. Rel. DBMS)

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

cd pub
get postgres-v4r0.tar.Z

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.

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