                                   
                               A'UM-90
                    A programming Environment for
             The Concurrent Object-oriented Language A'UM

1. Overview

 A'UM-90 is a programming environment for A'UM, a concurrent
object-oriented language. It is written in GNU C++, and runs on a SUN
SPARCstation or a Sequent Symmetry. See section 3 for characteristics
of A'UM, and section 4 for the detail of running environment.

The environment includes a compiler which produce abstract machine
code, an emulator which executes the code, and a debugger which
support debugging in abstract machine code level.

The environment is still a prototype, and it provides often limited
functions. The objective of this release is to present a programming
environment for A'UM to people interested in the language, and to
receive comments and bug reports from them, which may be used to
improve the environment. The reported bugs, however, are not
guaranteed to be fixed.

2. The contents

    * source program of aumc, the compiler
    * source program of PAS, the abstract machine emulater
    * a language specification of A'UM-90(in Japanese)
    * a user's manual for aumc(in Japanese)
    * a user's manual for PAS(in Japanese)
    * a user's manual for PAS Debugger(in Japanese)
    * sample programs
    * related papers

3. A'UM

A'UM is an concurrent object-oriented programming language.
The major difference between A'UM and the other languages of the kind
is its extensive use of message streams for communication between
objects, which is inherited from concurrent logic programming languages.

A message stream represents a sequence of messages.  A message
sequence can be created by sending messages to an empty stream, and it
can be extended by connecting another stream after it. Also,
nondeterministic merging of message sequences can be represented by
more than one streams connected after the same stream. These
operations can be performed on a stream asynchronously by different
objects.  References to streams can be assigned to variables, and can
be carried by messages.

The main part of the A'UM programming is to form message sequences and
their merging, and to designate their receiver, using the above
operations. In this programming style, objects can asynchronously send
messages to one another, and it is easy to specify an ordering of
arrivals for messages sent from many object.

Besides, A'UM has constructs for object-oriented programming, and
supports class definition by multiple inheritance.

See also related papers listed in section 7.

4. Running environment.

A'UM-90 has been compiled and run in the following environments:

SUN4/SPARCstation
        SunOS      SunOS 4.1.1
        G++        g++-2.2.2  + libg++-2.1
        Bison      GNU Bison version 1.12
        Flex       flex version 2.3

Parallel execution using a group of Sun workstations is still under
development.

Sequent Symmetry:

        DYNIX      Dinix 3.0.17.9 NFS
        G++        g++ version 1.37.1 (based on GCC 1.37) 
                   (with patches for using shared memory)
                   + libg++-37.0
        Bison      GNU Bison version 1.14
        Flex       flex version 2.2

5. How to get a copy

The release comes in a Sun formatted 3.5inch floppy disk.  Please send
a mail for a copy to aum@icot.or.jp, and include your
name, affiliation, address, and e-mail address in the mail.

Please tell us if you use the system on a Symmetry. Then we'll include
patches for g++ and others in the release, and send it to you in a
CGMT(QIC-24 format).

6. User registration

We ask users who get the release NOT direcly from ICOT to make user
registration. When you are registered, you'll be notified of update or
bug-fix information. Send us a mail including your name, affiliation,
address, and e-mail address to aum@icot.or.jp.

7. Related papers

* Kaoru Yoshida and Takashi Chikayama: "A'UM - A Stream-based Concurrent
Object-Oriented Language -," Proceedings of 1988 International Conference on
Fifth Generation Computer Systems, pp.638-649, ICOT(Ohm/Springer-Verlag),
November 1988, New Generation Computing 7-2, 3 (1990), pp. 127-157
(included in the release).

* Kaoru Yoshida and Takashi Chikayama: "A'UM = Stream + Object + Relation,"
ACM Sigplan Notices, vol.24, no.4, pp.55-58, April 1989.

8. E-mail address

When you write us mails including user registration, bug reports, and
questions, please send them to:

        aum@icot.or.jp
