======================================================================= 1 ===
Date:    2 May 1993 21:23:06 GMT
From:    estein@ic.sunysb.edu (Eric Stein)
Subject: Length of Text

For a procedure in a module, I need to find the length of a text string, as
below

  Procedure Center (Stuff : TEXT)=
  .
  .
  .
  END Center;

Is there any simple way to do this?  Any help would be appreciated.  Thanx.

ErIc StEiN
Some mornings you just don't feel like slaying dragons.


======================================================================= 2 ===
Date:    Mon, 3 May 93 18:00:53 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Re: Length of Text

In article <1s1e3q$r1@max.physics.sunysb.edu>, estein@ic.sunysb.edu (Eric Stein
) writes:
|> For a procedure in a module, I need to find the length of a text string, as
|> below

Text.Length is the procedure you want.

-- 
Eric.



======================================================================= 3 ===
Date:    Mon, 3 May 1993 17:11:46 GMT
From:    strzelin@sscdaq.phy.bnl.gov (Bob Strzelinski)
Subject: M3 design philosophy...

In the ongoing search for increased productivity and improved software quality,
I have at last arrived (somewhat late, but better than never), as so many befor
e
me, at the object-oriented paradigm.  Having been introduced to OOP via C++, I
was then introduced to an OO language called MODSIM II (from CACI Corp.), an
OO, Modula-2 based language with an extensive (for simulation, anyway) and well
-
designed class library.  Even though I had previously had much C programming
experience and NO Modula 2 programming experience, I found that after a very
short time (~ 2 intensive weeks), I could be several times more productive usin
g
MODSIM than using C++!  With the simple Modula 2-style syntax, I found that the
language syntax more often than not "suggested" the proper form of the solution
for most programming tasks, while with C++, there was usually a seemingly
infinite number of solutions to any given problem and I would usually spend an
excessive amount of time agonizing over the better (never mind the best) way
to implement things.  In short, with MODSIM, I was concentrating on the task
and the overall design, whereas in C++, I was dealing with implementation
details even while designing the object interfaces.  So, thought I, wouldn't it
be nice if I could find a general purpose language like MODSIM, and off I went
following Wirth programming tree from its Pascal root to its OO leaves.  And
that's how I arrived at Modula 3, which I am just beginning to evaluate for 
suitability for our needs (GUI design, data acquisition, data visualization,
and process control).  If you're still with me, this is prelude to my questions
is merely to indicate the state of my familiarity with Modula 3 (just starting)
and OOP systems in general (fairly experienced).

My question, and I hope some of the actual language designers/implementers are
reading this, regards the implementation of the concept of an object in Modula
3.  Specifically, it seems to me, that in Modula 3, the concept of data-hiding
and the concept of inheritance, both the province of an object in most OO 
languages, have been instantiated in two separate features of the language.
That is, data-hiding is achieved (quite satisfactorily) in the concept of the
MODULE, while inheritance is achieved through the concept of the OBJECT.  One
can define an entire hierarchy of objects, but these objects do not provide
any protection for their data fields (the sine qua non of ADT style
programming).  Meanwhile, one can achieve the desired data hiding by implement-
ing an ADT as a MODULE, but then one gives up the ability to use inheritance
as a programming tool.  In contrast, in C++ or MODSIM, one has very fine
control (maybe too fine, in the case of C++), over the external visibility
of object members thus allowing data-hiding and inheritance to be implemented
with the same language construct, the object.  At the same time, these language
s
also allow one to use something like the MODULE concept in Modula 3 to provide
additional data-hiding capabilities if needed/desired (trivially in MODSIM,
non-trivially, but possible, in C/C++).  I am -very- curious as to why the
language was designed in this way.  It seems to be a wonderfully elegant and
simple language and for that reason, I suspect that there is -some- subtle
advantage to this separation of churchandstate between OBJECT's and MODULE's,
or maybe I've missed something obvious (I've examined the Modula 3 Report 
extensively and lots of the sample code but haven't had a lot of time to 
program in it yet)...  I hope there is someone out there more experienced than
I with the time/inclination to expound on this topic.  If so, thanks in advance
.

If I've made any completely misguided assumptions herein, I apologize for the
wasted bandwidth...

///////////////////////////////////////////////////////////////////////////////
// Robert J Strzelinski                 // Brookhaven National Laboratory    //
// strzelin@sscdaq.phy.bnl.gov          // Upton, NY 11973-5000              //
///////////////////////////////////////////////////////////////////////////////


======================================================================= 4 ===
Date:    Mon, 3 May 1993 20:11:34 GMT
From:    ms@cs.brown.edu (Manojit Sarkar)
Subject: Re: M3 design philosophy...

In article <1993May3.171146.662@bnlux1.bnl.gov> strzelin@sscdaq.phy.bnl.gov (Bo
b Strzelinski) writes:
>
>programming).  Meanwhile, one can achieve the desired data hiding by implement
-
>ing an ADT as a MODULE, but then one gives up the ability to use inheritance
>as a programming tool.  In contrast, in C++ or MODSIM, one has very fine
>control (maybe too fine, in the case of C++), over the external visibility
>of object members thus allowing data-hiding and inheritance to be implemented
>with the same language construct, the object.

....
>also allow one to use something like the MODULE concept in Modula 3 to provide
>additional data-hiding capabilities if needed/desired (trivially in MODSIM,
>non-trivially, but possible, in C/C++).  I am -very- curious as to why the
>language was designed in this way.

Modules and Classes are somewhat related by different concetps.
Modules are used to nicely divide up a large systems into subsystems,
and subsubsystems. Module interface and implementation provide
some form of implementation-hiding.
Modules therefore are usually designed in a top-down fashion.
Classes on the other hand are created based on questions
like "what objects do we need in this system?" Classes are
usually smaller than modules. For example, a number of
related classes may be needed to implement a module.

In my experience .H or .h (header) file serves the role of a 
an .i3 file in Modula-3. One rarely has a single .H file for
each class in a big system.

Classes on the other hand provides encapsulation for the objects.
In C++ they are also used to specify "module interfaces" by
default.

I also felt that Modula3 way probably is not answer to the needs
of combining modularization and object-orientation...there has
to be a better way. C++ doesn't attempt to provide modularization
with any explicit construct (headers files can be used as I said
earlier), the flexibility of .h mechanism turns out be very useful.

Manojit


======================================================================= 5 ===
Date:    Tue, 4 May 93 01:01:52 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Modula-3 Frequently Asked Questions (FAQ)

Archive-name: Modula-3-faq
Last-modified: Apr 22 1993


		 Modula-3 Frequently Asked Questions
		 ===================================


1. The language
	1.1. What is Modula-3 ?
	1.2. Is Modula-3 a superset of Modula-2 ?
2. The documentation
	2.1. Where can I get a description of Modula-3 ? 
	2.2. Where can I get other information on Modula-3 ?
3. The implementations
	3.1. Where can I get an implementation ?
	3.2. What is SRC Modula-3 ?
	3.3. What is m3pc ?
	3.4. What is GNU Modula-3 ?
4. Some specific problems
	4.1. What is the story with Trestle and OpenWindows ?
5. FTP
	5.1. What if I don't have ftp access ?
6. Contributing
	6.1. Can I contribute Modula-3 software ?




1.1. What is Modula-3 ?

   The goal of Modula-3 is to be as simple and safe as it can be while
   meeting the needs of modern systems programmers.  Instead of
   exploring new features, we studied the features of the Modula
   family of languages that have proven themselves in practice and
   tried to simplify them into a harmonious language.  We found that
   most of the successful features were aimed at one of two main
   goals: greater robustness, and a simpler, more systematic type
   system.

   Modula-3 descends from Mesa, Modula-2, Cedar, and Modula-2+.  It
   also resembles its cousins Object Pascal, Oberon, and Euclid.

   Modula-3 retains one of Modula-2's most successful features, the
   provision for explicit interfaces between modules.  It adds objects
   and classes, exception handling, garbage collection, lightweight
   processes (or threads), and the isolation of unsafe features.


1.2. Is Modula-3 a superset of Modula-2 ?

   No; valid Modula-2 programs are not valid Modula-3 programs.  However,
   there is a tool to help convert Modula-2 programs to Modula-3.


2.1. Where can I get a description of Modula-3 ? 
   
   The definition of Modula-3 is contained in:

        System Programming with Modula-3
        Edited by Greg Nelson
        Prentice Hall Series in Innovative Technology
        ISBN 0-13-590464-1
        L.C. QA76.66.S87 1991

   also known as SPwM3.  Here is the table of contents:

        1. Introduction
        2. Language Definition
        3. Standard Interfaces
        4. An Introduction to Programming with Threads
        5. Thread Synchronization: A Formal Specification
        6. I/O Streams: Abstract Types, Real Programs
        7. Trestle Window System Tutorial
        8. How the Language Got its Spots

   Chapters 2 and 3 have been reprinted in Sigplan Notices, Volume 27,
   Number 8, August 1992, pp 15-42.

   Sam Harbison has written a more tutorial book about Modula3:

        Modula-3
        Samuel P. Harbison
        Prentice Hall, 1992
        ISBN 0-13-596396-6

   The errata sheet is available via anonymous ftp from gatekeeper.dec.com 
   in pub/DEC/Modula-3/errata.


2.2. Where can I get other information on Modula-3 ?

   There is a Usenet newsgroup, comp.lang.modula3.  The archives of
   that group are available via anonymous ftp from gatekeeper.dec.com
   in pub/DEC/Modula-3/comp.lang.modula3.  If you do not have
   access to Usenet, there is a relay mailing list; send a message to
   m3-request@src.dec.com to be added to it.

   There are a couple high-level overview articles available:

        "Modula-3", Sam Harbison, Byte, Vol. 15, No. 12, November 1990,
        pp 385+.

        "Safe Programming with Modula-3", Sam Harbison, Dr. Dobb's Journal,
        Vol. 17, No. 10, October 1992, pp 88+.

   A description of the Modula-3 type system is in

        "The Modula-3 Type System", Luca Cardelli, Jim Donahue, Mick Jordan,
        Bill Kalsow, Greg Nelson, Conference Record of the Sixteenth Annual
        ACM Symposium on Principles of Programming Languages (POPL), Austin
        Texas, January 11-13 1989, pp 202-212.

   The Trestle window system toolkit and higher-level FormsVBT toolkit,
   available with Modula-3, are documented in the following reports:

        "Trestle Reference Manual", Mark S. Manasse and Greg Nelson,
        SRC Research Report 68, December 1991.

        "Trestle Tutorial", Mark S. Manasse and Greg Nelson, SRC Research
        Report 69, May 1, 1992.

        "The FormsVBT Reference Manual", Marc H. Brown and James R. Meehan,
        (soon to be SRC Research Report ??).

   These reports can be ordered by e-mail; send your request to
   src-reports@src.dec.com.


3.1. Where can I get an implementation ?

   Two implementations are available, SRC Modula-3 and a
   PC version of it (m3pc).  Work is also progressing on GNU Modula-3.


3.2. What is SRC Modula-3 ?

   SRC Modula-3 was built by the DEC Systems Reseach Center
   and is available via anonymous ftp from gatekeeper.dec.com in
   pub/DEC/Modula-3/release.

   The current version, 2.11, implements the language defined in SPwM3.
   There are versions for the following machines:

        AIX386  IBM PC running AIX/PS2,
        AP3000  Apollo DN4500 running Domain/OS
        ARM     Acorn R260 running RISC iX 1.21
        DS3100  DECstation 3100 and 5000 running Ultrix 4.0 and 4.2
        HP300   HP 9000/300 running HP-UX 8.0
	HPPA    HP 700/800 running HP-UX 8.0
        IBMR2   IBM R6000 running AIX 3.1, 
        IBMRT   IBM RT running IBM/4.3, 
        NEXT    NeXT running ?
	OKI     Okidata 7300 (i860) running AT&T SVR4.0
        SPARC   SPARCstation running SunOS 4.1.x
        SUN3    SUN3 running SunOS
	SUN386  Sun 386i  running SunOS 4.0.1
        UMAX    Encore Multimax running UMAX 4.3 (R4.1.1)
        VAX     VAX running Ultrix 3.1

   SRC Modula-3 includes a user manual, compiler, runtime library,
   some libraries and a few other goodies (see below).

   The compiler generates C as an intermediate language and should be
   fairly easy to port.  Except for the very lowest levels of the
   thread implementation, the entire system is written in Modula-3.


3.3. What is m3pc ?

   m3pc is available via anonymous ftp from gatekeeper.dec.com in
   pub/DEC/Modula-3/contrib/m3pc.

   From: laszlo@post.ifi.uni-klu.ac.at (Prof.Dr.Laszlo BOESZOERMENYI)
   Subject: M3 pn PC
   Date: 8 Mar 1993 13:13:52 GMT

   The Modula-3 system ported by us on the PC and available on the
   gatekeeper, runs with MSDOS, gnu c compiler and djgpp memory
   manager (detailed description in the read me file).

   You may compile, link and run Modula-3 programs, without threads.
   From the library modules only those are tested which are used by
   the compiler.  In the course of a student project a
   "student-friendly" environment is in development.  It will be
   available at end of June (hopefully).


3.4. What is GNU Modula-3 ?

   From: moss@cs.cmu.edu (Eliot Moss)
   Subject: GNU Modula-3 alpha release status
   Date: 25 Mar 93 17:53:12 GMT

   We said we'd try to get the initial (alpha) release of GNU
   Modula-3 out some time this month (March), and we're in the
   process of figuring out what to release and how to package it
   up. We expect to have something in roughly two weeks (watch
   this space for a notice).

   What would this be? First, it is a compiler for the VAX (only)
   under Ultrix (only), definitely without threads, and probably
   still failing a small number of the tests in the SRC test
   suite (which implies that not all of libm3 is likely to work
   either). The actual release information will detail more about
   what's working and what's not at that time. We DO currently
   pass all the compiler tests that the SRC compiler did when it
   was first released (i.e., the ones we fail are more obscure
   things that users uncovered over time).

   Second, the release itself will be a compressed tar file
   including sources and executables. The executables will
   probably work only if you put libraries, etc., in the expected
   places (otherwise, you'll need to rebuild from sources).The
   compiler is written in C and should be compiled with a recent
   version of gcc (so you'll need gcc installed). The system also
   uses gld (the GNU linker).

   This release should be most useful to people undertaking ports
   to other machines and operating systems, since it will give
   them a head start on understanding the compiler and getting
   the full system ready. It may be of some use for ordinary
   programming, but it really depends on whether you tend to use
   features that tickle the remaining bugs. We are indeed
   interested in alpha test reports, but only if they tell us
   something new (i.e., we'll provide a list of known
   deficiencies).

   When the release is made, we'll also start email discussions
   with the various parties who have indicated they might
   undertake ports, to help sort out who will do what.

   Regards, and thanks for your continued interest and
   encouragement -- EM


4.1. What is the story with Trestle and OpenWindows ?

   Mark Manasse says: 

   I think that the OpenWindows release should be enough (no need to 
   get the MIT X release], although there are a few things in Trestle
   that trigger devastating bugs in OpenWindows. But the only library
   we depend on is Xlib, R4 or later.

   The main thing I know that crashes OW 2.0 is the code where we call 
   GrabKey specifying AnyKey.  You can either loop over all of the 
   keys, or you can just comment out the call; programs won't run exactly 
   the same, but you probably won't notice the difference.


5.1. What if I don't have ftp access ?

   Unfortunately, we cannot deliver Modula-3 other than by 
   anonymous ftp.  

   Fortunately, Prime Time Freeware (PTF) includes Modula-3.  PTF is
   a set of two ISO-9660 CDroms filled with 3GB of freeware, issued
   semi-annually.  The latest issue, Volume 1, Number 2, July 1992,
   contains SRC Modula-3 2.07.  PTF is distributed via bookstores and
   mail.  You can reach PTF using:

	Email:  ptf@cfcl.com
        Fax:    [1] (408) 738 2050
        Voice:  [1] (408) 738 4832
        Mail:   Prime Time Freeware
 	        415-112 N. Mary Ave., Suite 50
		Sunnyvale, CA 94086
	        USA

6.1. Can I contribute Modula-3 software ?

   Certainly.  Send us what you are willing to share, be it programs,
   libraries or other things.  We'll put them in the distribution.

   Right now, the pub/DEC/Modula-3/contrib directory contains:

      m3rpc   an rpc system from Xerox Parc
      M2toM3  a translator from Modula-2 to Modula-3
      m3pc    an implementation of Modula-3 for PCs.
   


-- 
Eric.


======================================================================= 6 ===
Date:    Tue, 4 May 1993 03:52:55 GMT
From:    cope@cbnewsb.cb.att.com (james.o.coplien)
Subject: OOPSLA/93 Workshop on Objects, Iteration &c: DEADLINE REVISED

At the recommendation of the OOPSLA Workshop Committee, we are pulling back
the deadline for submission of position papers to the OOPSLA/93 workshop
on Objects, Iteration and Development Process Standards (formerly posted
to this newsgroup).  The new deadline for abstracts is 30 July, 1993.

Some people have complained of not seeing the posting;  it is reproduced
below (apologies to the bandwidth-watchers):
_____________________________________________________________________________


            OBJECTS, ITERATION AND DEVELOPMENT PROCESS STANDARDS
            ----------------------------------------------------


INTRODUCTION AND MOTIVATION
---------------------------

       At OOPSLA '92, this workshop examined the tension between iterative
       design methods and the stability and progress tracking valued by
       most development cultures.  This year's workshop will discuss these
       issues in the context of established and emerging industry standards
       for software development process.  Such standards include the SEI
       Capability Maturity Model (CMM), the ISO 9000 series, STD 2167A,
       and IPSE2.5.

GOALS OF THE WORKSHOP
---------------------

       Participants will discuss how existing methods support the object
       paradigm through iteration and other key characteristics.  Evolution
       paths will be discussed for the object paradigm and current-generation
       development process frameworks to improve their ability to meet each
       others' needs.

FOCUS AND ISSUES
----------------

       We will focus on two or three established process standards that reflect
       material submitted in position papers. Participants will draw on each
       others' experience to develop consensus on the suitability of those
       standards to object-oriented development.

REQUIREMENTS FOR ATTENDANCE
---------------------------

       Prospective participants must submit short (1-3 page) position papers
       to the workshop organizers by July 30, 1993.  Participants will be
       chosen on the basis of the suitability of these papers.  Participants
       will be selected and notified by Aug. 20, 1993.  Members of the
       software development process community are particularly encouraged to
       participate.

ORGANIZERS
----------

      Jim Coplien, AT&T Bell Laboratories
      Suzana Hutz, Motorola Inc.
      Russel Winder, University College London

CONTACT:
--------

      Jim Coplien
      AT&T Bell Laboratories
      ILL650 1G341
      1000 East Warrenville Road
      Naperville, IL  60566  USA
      E-mail: cope@research.att.com
      Phone: (708) 713-5384
      FAX:   (708) 713-4982


======================================================================= 7 ===
Date:    4 May 1993 03:24:57 GMT
From:    estein@ic.sunysb.edu (Eric Stein)
Subject: Open Arrays


For a queue implementation, I have the following code set up.  Is there any way
to make QueueData an open array ??  Any tips appreciated, email only please.
Thanx in advance.

TYPE
  QueuePointer = REF ARRAY OF CHAR;
  QueueData = 
  QueueNode = RECORD
                Data : QueueData;
                Link : QueuePointer;
              END; (* queuenode *)
  Queue = RECORD
            Front, Rear : QueuePointer;
          END; (* queue *)

PROCEDURE Create (VAR Q : Queue) ;
PROCEDURE Empty (Q : Queue) ;
PROCEDURE Enqueue (VAR Q : Queue;
                   Item : QueueData) ;
PROCEDURE Dequeue (VAR Q : Queue;
                   VAR Item : QueueData) ;

END Queue.

ErIc StEiN
Email : When it absolutely, positively has to get lost at the speed of light.


======================================================================= 8 ===
Date:    Tue, 4 May 93 13:11:47 GMT
From:    Geoff.Wyant@East.Sun.COM (Geoffrey Wyant - Sun Microsystems Labs BOS)
Subject: M3 design philosophy...

Date: Tue, 4 May 93 09:10:39 EDT
X-Received: from East.Sun.COM by snail.Sun.COM (4.1/SMI-4.1)
X-Received: by src-mail.pa.dec.com; id AA10243; Tue, 4 May 93 06:11:37 -0700
X-Content-Length: 2514
X-Received: from suneast.East.Sun.COM by East.Sun.COM (4.1/SMI-4.1)
X-Received: by inet-gw-1.pa.dec.com; id AA03374; Tue, 4 May 93 06:11:36 -0700
X-Received: from cloyd.East.Sun.COM by suneast.East.Sun.COM (4.1/SMI-4.1)
X-Received: from snail.Sun.COM (snail.Corp.Sun.COM) by Sun.COM (4.1/SMI-4.1)
X-Received: by src-news.pa.dec.com; id AA28428; Tue, 4 May 93 06:11:39 -0700
X-Received: by cloyd.East.Sun.COM (4.1/SMI-4.1)

I can't speak about MODSIM, but Modula-3 actually gives you quite
a bit more control over the visibility of members than C++.

The basic paradigm in Modula-3 is that an interface is free of
implementation details. An object declaration in an interface
is purely method signatures. Through the use of revelations the
abstract form of an interface is connected to the concrete representation.
As a simple example, an interface for manipulating integer lists
might look like:

INTERFACE IntList;

  TYPE T <: IntList_public;

  TYPE IntList_public = OBJECT
  METHODS
    add(i: INTEGER);
    head(): INTEGER;
    tail(): T;
  END;

  PROCEDURE New(): T;

END IntList;

This interface declares an abstract type T which is a subtype of 
IntList_public. Nothing more is known about T. IntList_public is
an object type with the methods 'add', 'head', 'tail'. So, we now
know that an 'IntList.T' carries these operations. We know nothing
about the actual implementation of 'IntList.T'.

The implementation module for 'IntList' might look something like:

MODULE IntList

  REVEAL T = BRANDED IntList_public OBJECT
    next: T;
    prev: T;
    val:  INTEGER;
  OVERRIDES
    add  := Add;
    head := Head;
    tail := Tail;
  END;

  PROCEDURE Add(t: T) =
  BEGIN
     ...
  END Add;
END IntList.

The implementation of 'T' has been revealed as an object inheriting from
'IntList_public' and adds the data members 'next', 'prev', and 'val'.
Nome of this is visible outside of the implementation module.

Partial revelations extend this even further by allowing parts of the
implementation of an abstraction to be selectinvely revealed to appropriate
clients. This can be thought of as a generalization of the C++ notion of
'friends', but with better control. In C++, a 'friend' declaration allows
another class or a function complete access to the implementation of an
abstraction. Partial revelations in Modula-3 allow selective access to
the implementation without having to grant complete access to the entire
implementation.

For a good tutorial on using objects and data abstraction in Modula-3 buy
Greg Nelson's book 'Systems Programming with Modula-3' and read the chapter
'IO Streams: Abstract Types and Real Programs'. He steps through the object-
oriented design of an extensible IO system using interfaces and objects to 
control access to the representation at different levels.

In short, I think Modula-3 has everything you want, it's just a matter of
seeing some real examples.

--geoff
access to the repr



======================================================================= 9 ===
Date:    Tue, 4 May 93 16:45:44 GMT
From:    muller@src.dec.com (Eric Muller)
Subject: Archive of comp.lang.modula3 for April 93 available

Date: Tue, 04 May 93 09:45:40 PDT
X-Face: #=.ukTl)Pt=emSj#!H@1P_4V'%x\.<%fO)ZK\gK)`fJ2{)G})2.DQ9oi1*PKd|(RuyZgp^T
X-Received: by procope.pa.dec.com; id AA27811; Tue, 4 May 93 09:45:40 -0700
X-Received: by src-news.pa.dec.com; id AA07591; Tue, 4 May 93 09:45:41 -0700


On gatekeeper.dec.com, in pub/DEC/Modula-3/comp.lang.modula3/93-04.Z.
In the same directory, I have updated the kwic.

Enjoy,
Eric.


======================================================================= 10 ===
Date:    Tue, 4 May 1993 15:07:39 GMT
From:    dagenais@alberich.vlsi.polymtl.ca (Michel Dagenais)
Subject: Re: M3 design philosophy...


You get inheritance through objects and data hiding through interfaces and
opaque types. Keeping the two somewhat orthogonal yields a powerful and
simple programming paradigm. To get a better feel as well as examples,
i suggest the excellent book "Modula-3", Sam Harbison, Prentice-Hall.

To get more insight into the design of the language (beyond the interface/objec
t
relation into the area of distributed applications in particular) get the more
advanced and official reference "Systems Programming with Modula-3", Greg Nelso
n,
Prentice-Hall.
--
---------------------------------------------------------------------

Prof. Michel Dagenais			    dagenais@vlsi.polymtl.ca
Dept of Electrical and Computer Eng.
Ecole Polytechnique de Montreal		    tel: (514) 340-4029

---------------------------------------------------------------------


======================================================================= 11 ===
Date:    Tue, 4 May 1993 14:28:21 GMT
From:    moss@cs.cmu.edu (Eliot Moss)
Subject: Re: M3 design philosophy...

Information hiding is not based solely on the module construct, but also on
opaque types and revelations. Further, you seem to have assumed that modules
and classes (object oriented abstract data types (roughly)) are one to one,
which need not be the case. One can offer an external "public" interface and
also a more revealing "internal" interface, and each can be used as necessary.

Is your objection that you cannot just designate any old procedure to be a
"friend" of a given class and immediately have "in the right scope"? If so,
this seems a minor quibble -- and besides, the Modula-3 approach makes it more
likely that you can find all the "friends" fairly easily. Further, if one uses
the two-layers-of-interface approach, then you can import the "internal"
interface into any module where you wish to implement a new "friend".

Beyond that I don't understand your complaint. Perhaps you could try another
way of explaining it, or give an example of what it is that is bothering you.
(I know I haven't been all that detailed here, but I think the approach is
illustrated with a number of examples in the book "Systems Programming in
Modula-3", one of the primary references on the language.)

Regards --
--

J. Eliot B. Moss, Associate Professor	Visiting Associate Professor
Department of Computer Science		School of Computer Science
Lederle Graduate Research Center	Carnegie Mellon University
University of Massachusetts		5000 Forbes Avenue
Amherst, MA  01003			Pittsburgh, PA  15213-3891
(413) 545-4206, 545-1249 (fax)		(412) 268-6767, 681-5739 (fax)
Moss@cs.umass.edu			Moss@cs.cmu.edu


======================================================================= 12 ===
Date:    Wed, 5 May 93 03:19:21 GMT
From:    heydon@src.dec.com
Subject: Re: M3 design philosophy...

Date: Tue, 04 May 93 20:19:16 -0700
X-Received: by pebbles.pa.dec.com; id AA02595; Tue, 4 May 93 20:19:17 -0700
X-Received: by src-news.pa.dec.com; id AA09315; Tue, 4 May 93 20:19:18 -0700
X-Mts: smtp


Modula-3 provides two separate mechanisms for data-hiding: one for 
hiding details about how interfaces are implemented, and the other 
for hiding details about how objects are implemented.

The first data-hiding mechanism is realized by the distinction between 
interfaces and modules. Clients can only import interfaces, so the 
names declared in the modules implementing those interfaces are hidden 
from clients. Note that this mechanism has only two levels; a name 
is either declared in an interface, or it isn't. If a name is only 
declared in a module, it can't be used by a client. 

The second data-hiding mechanism is realized by opaque types and 
revelations. A Modula-3 interface may declare an object type to be 
opaque, in which case only a subset of the fields and methods of 
that object are revealed to clients importing the interface. Furthermore, 
the Modula-3 revelation mechanism allows a designer to reveal successively 
more fields and methods of an object in a series of interfaces. The 
fields and methods visible to a client then depends on which interfaces 
the client imports. 

The latter mechanism is quite flexible. As opposed to the interface/module 
data-hiding mechanism, opaque types allow you to define an arbitrary 
number of levels at which more and more information about the implementation 
of your object is revealed. 

See Sections 2.2.10, 2.4.6, and 2.4.7 of "Systems Programming with 
Modula-3" for more information about opaque types and about partial 
and complete revelations. 

Allan Heydon					heydon@src.dec.com
DEC Systems Research Center			(415) 853-2142
130 Lytton Ave.					(415) 853-2104 (FAX)
Palo Alto, CA 94301


======================================================================= 13 ===
Date:    5 May 1993 14:40:08 GMT
From:    estein@ic.sunysb.edu (Eric Stein)
Subject: Help w REF open array

OK, I've got the following declarations :

TYPE x : REF ARRAY OF INTEGER;
VAR y : NEW(x, numwords);

Is there a quick way (w/o loop) to set each cell of the array to 1?

I know of the {1,..} for normal arrays, but my book doesn't cover this aspect
of open arrays.

Thanx in advance,

ErIc StEiN
Black holes are where god is dividing by zero


======================================================================= 14 ===
Date:    5 May 1993 14:47:25 GMT
From:    estein@ic.sunysb.edu (Eric Stein)
Subject: Re: M3 design philosophy...

In article <DAGENAIS.93May4100739@alberich.vlsi.polymtl.ca> dagenais@alberich.v
lsi.polymtl.ca (Michel Dagenais) writes:
>
>You get inheritance through objects and data hiding through interfaces and
>opaque types. Keeping the two somewhat orthogonal yields a powerful and
>simple programming paradigm. To get a better feel as well as examples,
                                                   ^^^^^^^^^^^^^^^^^^^
>i suggest the excellent book "Modula-3", Sam Harbison, Prentice-Hall.

I am a student who has been learning to use this language over the course of
this semester.  One thing that I have found seriously lacking in Harbison,
which is our text, is that the examples are too short, too few, and nowhere 
near detailed enough.  He frequently  Gives tiny segments of code as an
example, leaving me to wonder how to implement such-and-such, or what to do to
get this-and-that.


>Prof. Michel Dagenais			    dagenais@vlsi.polymtl.ca
>Dept of Electrical and Computer Eng.
>Ecole Polytechnique de Montreal		    tel: (514) 340-4029

ErIc StEiN
Some mornings you just don't feel like slaying dragons.


======================================================================= 15 ===
Date:    Wed, 5 May 93 14:00:44 GMT
From:    bates@awsil4.boeing.com
Subject: Comment on the interface IO

Date: Wed, 5 May 93 07:04:20 -0700
X-Received: by src-mail.pa.dec.com; id AA24971; Wed, 5 May 93 07:00:30 -0700
X-Received: by inet-gw-2.pa.dec.com; id AA05546; Wed, 5 May 93 07:00:29 -0700
X-Received: from AWSIL4.DECnet MAIL11D_V3 by atc.boeing.com (5.57) 
X-Received: by src-news.pa.dec.com; id AA18850; Wed, 5 May 93 07:00:32 -0700

A comment on the proposed interface IO.

I rarely write stuff where I know in advance what kind of token
I will need, e.g. an integer or real.  Usually, I must read a
character at a time and do my own conversion after I have seen
what is next.  For this approach, an EOF function which you call
before attempting to read anything works fine.

On the occasions where I know an integer, real, etc. is next
and want to use an interface like IO, I usually get frustrated
with the interface.  The problem is, you can't check for end
of file by calling EOF first, because there might be lots of
trailing white space.  Trying to read an integer will consume
it, but if there is nothing else left after the white space, 
the read must fail somehow.  

In the proposed interface, there is an exception Error,
which the comments say is raised either if there is either
lexically invalid input or unexpected end of file.  A
user needs to be able to distinguish these cases, since
there is no convenient way to know in advance whether to
expect end of file.  Two separate exceptions would do it.

Alternatively, a ConsumeLeadingWhiteSpace procedure might
help.  You could call it and then check EOF before attempting
to read an integer or real.  Then end of file while reading
would truly be in the same category as lexically incorrect
input.

I realize IO makes it so I could easily enough write my own
ConsumeLeadingWhiteSpace.  But this is a partial step back
toward writing my own scanner and reading one character at
at time.  It seems inconsistent with the idea of an interface
which does those things for me.  

Whether I write it myself of find it in the IO interface,
using ConsumeLeadingWhiteSpace also means that in order to
check for end of file in a reasonable way, I can never take 
advantage of the fact that GetReal and GetInt will consume 
white space too.  (The IO interface doesn't actually say they
will, but I think it's a reasonable assumption.)

I think I like the separate exception solution better.  It
could also be used for true screwups where the client should
have known we were already at end of file.

Rodney Bates
bates@awsil4.boeing.com



======================================================================= 16 ===
Date:    Wed, 5 May 1993 23:49:33 GMT
From:    moss@cs.cmu.edu (Eliot Moss)
Subject: GNU Modula-3 pre-release

At long last, the GNU Modula-3 project has a pre-release ready, for the
VAX/Ultrix platform ONLY. Various folks had notified us of their interest in
doing ports or alpha testing, and they have already been sent email with
particulars on how to obtain the tar file, etc. There are a number of known
bugs; I'll see about making a list available by ftp or something, for
interested parties.

It is our opinion that the prerelease is not mature enough for general use,
but we wished to give a head start to those folks attempting ports, and we
will make periodic patches available. If you want to use this compiler for
serious program development or need something solid with debugging support for
classroom use, you should wait until we've fixed more of the problems. (But to
give a sense of what we HAVE accomplished, as I recall, all but 3 of the SRC
compiler tests compile (there are 137 of them).) We hope to do a more general
release, and support more platforms, in the summer.

If you're interested in helping and have not previously contacted us, please
send email to me and/or Rick Hudson (hudson@cs.umass.edu).

Thanks to Digital and SRC for supporting us, and to Rick Hudson, Amer Diwan,
and Norm Walsh, the guys who do all the hard work!
--

J. Eliot B. Moss, Associate Professor	Visiting Associate Professor
Department of Computer Science		School of Computer Science
Lederle Graduate Research Center	Carnegie Mellon University
University of Massachusetts		5000 Forbes Avenue
Amherst, MA  01003			Pittsburgh, PA  15213-3891
(413) 545-4206, 545-1249 (fax)		(412) 268-6767, 681-5739 (fax)
Moss@cs.umass.edu			Moss@cs.cmu.edu


======================================================================= 17 ===
Date:    Thu, 6 May 1993 03:18:27 GMT
From:    prich@coltrane.apple.com (Paul Richardson)
Subject: SRC M3 on HP 735

I just picked off the M3 stuff from gatekeeper.
I am trying to target the build for an HP735 with
HPUX 9.01

Has anyone already done this build.I have some errors
complaining about "Initialization of integer with pointer"...

I can go and fix but am afraid this problem may exist elsewhere.
Does someone on an HP have the appropriate patches they would
be willing to send me ???


email prich@coltrane.apple.com

thanx in advance


======================================================================= 18 ===
Date:    6 May 93 06:05:34 GMT
From:    fn00@gte.com (Farshad Nayeri)
Subject: Re: M3 design philosophy...


In article <1993May3.171146.662@bnlux1.bnl.gov> strzelin@sscdaq.phy.bnl.gov (Bo
b Strzelinski) writes:

>   It seems to be a wonderfully elegant and simple language and for
>   that reason, I suspect that there is -some- subtle advantage to
>   this separation of churchandstate between OBJECT's and MODULE's, or
>   maybe I've missed something obvious (I've examined the Modula 3
>   Report extensively and lots of the sample code but haven't had a
>   lot of time to program in it yet)...  I hope there is someone out
>   there more experienced than I with the time/inclination to expound
>   on this topic.  If so, thanks in advance.

I think a major goal of the Modula-3 design was not to invent new
radical features, but rather to integrate nice, proven ways of doing
things.  Here is a quote from SPwM3 (Systems Programming with
Modula-3):

chapter 1, page 1:

  At the first meeting, the committee unanimously agreed to be true to
  the spirit of Modula-2 by selecting simple, safe, proven features
  rather than experimenting with our own untried ideas. 
  
  [...]
  
  Some of the more problematic features of Modula-2 have been removed,
  like variant records [...]

You are right that one could use the same mechanism to handle both
cases, but that may have compromised one of the most successful
features of Modula-2.

SPwM3, page 4:
  
  "One of Modula-2's most successful features is the provision for
  explicit interfaces between modules. Interfaces are retained with
  essentially no changes in Modula-3."

Actually, there are other languages with more radical approaches in
using objects for both encapsulation, and composition. Emerald is one
example of this approach.  Note that these languages have a quite
different set of design goals than Modula-3, however.

>    If I've made any completely misguided assumptions herein, I
>    apologize for the wasted bandwidth...

I thought it was a good question. When you get your copy of SPwM3,
don't forget to read the last chapter, "How the language got its
spots."

--farshad


Disclaimer: I am not a language designer, but I play one on TV.
--
Farshad Nayeri  |  Distributed Object Management Project
  fn00@gte.com  |  GTE Laboratories, Inc., Mail Stop 62
 (617)466-2473  |  40 Sylvan Road, Waltham, MA 02254, USA

 "If you don't think too good,  don't think too much."


======================================================================= 19 ===
Date:    Wed, 5 May 1993 17:07:59 GMT
From:    strzelin@sscdaq.phy.bnl.gov (Bob Strzelinski)
Subject: Re: M3 design philosophy...

Thank you all for the prompt and enlightening responses to my question about
data-hiding and inheritance in objects and modules in Modula 3.  Apparently,
I did not fully understand the implications of some sections of the Modula 3
Report regarding the implementation of these concepts.  And apparently, the
sample code I examined was not appropriate to correct my misunderstanding.  I
hope that this thread has been enlightening to some other readers of this news
group, also.

...and yes, my copy of Nelson's "Systems Programming with Modula-3" has been
ordered...

///////////////////////////////////////////////////////////////////////////////
// Robert J Strzelinski                 // Brookhaven National Laboratory    //
// strzelin@sscdaq.phy.bnl.gov          // Upton, NY 11973-5000              //
///////////////////////////////////////////////////////////////////////////////


======================================================================= 20 ===
Date:    Sun, 9 May 93 23:19:00 -0500
From:    jeff.zeitlin@execnet.com (Jeff Zeitlin)
Subject: newsgroups cross-fouled?

  In my packet from Saturday, it looks like comp.benchmarks got fed
  into comp.lang.modula3.  Could you look into this, please?

==========================================================================
Jeff Zeitlin                                      jeff.zeitlin@execnet.com

 * QMPro 1.01   * There must be a demand for useless software.


======================================================================= 21 ===
Date:    Mon, 10 May 1993 08:16:13 GMT
From:    cheewai@cs.ust.hk (Yeung Chee Wai)
Subject: Will Modula3 be supported on Solaris 2.X and SGI?

Hi,

	We are planning to upgrade to Solaris 2.X and we would like to know
whether future release of the current Modula-3 compiler will support 
Solaris 2.X and/or SGI platforms?

	We will need this release sometime in late August.

	Please reply by email to cheewai@cs.ust.hk

	Thanks in advance.

-- 
Chee Wai

-----------------------------------------------------------------------------
 _--_|\   Yeung Chee Wai			Technician
/      \  Department of Computer Science	Room:  4203
\_.--._*  Hong Kong University of Science and	Phone: +85 2 358 7021
      v   Technology				Fax:   +85 2 358 1477
          Clear Water Bay, Kowloon, Hong Kong	Email: cheewai@cs.ust.hk
^^^^^^^^
This is Australia, Not HK :-)

"COBOL is just a bug with syntax."



======================================================================= 22 ===
Date:    Mon, 10 May 93 10:16:27 GMT
From:    rpe@dasc.nl (Ruud Erwig)
Subject: Information

Date: Mon, 10 May 93 11:27:13 MET DST
X-Mailer: ELM [version 2.3 PL0]
X-Received: by dasc.nl (4.1/SMI-4.1/G/version 5.7)
X-Received: by src-mail.pa.dec.com; id AA26706; Mon, 10 May 93 03:16:18 -0700
X-Received: by rigel.tz.dasc.nl (4.1/SMI-4.1/GL/version 1.2)
X-Received: by inet-gw-1.pa.dec.com; id AA12045; Mon, 10 May 93 03:16:14 -0700
X-Organisation: Data Sciences B.V.
X-Tel: +31 20 6520652, Fax: +31 20 6918689
X-Received: from dascnl by sun4nl.nluug.nl via EUnet
X-Received: by src-news.pa.dec.com; id AA13335; Mon, 10 May 93 03:16:19 -0700

Hello
I used to get some informational news about Modula-3 via MODULA-3 NEWS from
PineCreek. However, the last issue was dated june 1991. Now I finally have
access to internet, one of the first things to do is ask this question:

is Modula-3 alive and well?

I'm very interested in getting some brief information or a direction where to
find more additional info. For instance: if it is already ported to PC's.

Thanx for any reply.

---------------------------------------------------------------------------
 rpe@dasc.nl  (Ruud Erwig)               Data Sciences BV   +31-20-6520652
---------------------------------------------------------------------------


======================================================================= 23 ===
Date:    11 May 1993 13:23:40 GMT
From:    kuschke@gefion.informatik.uni-dortmund.de (Michael Kuschke)
Subject: How to synchronize different Trestle windows ?


Hello,

im writing an application in Modula-3 using Trestle and the VBTkit librarys.
Maybe the question/problem is silly, but why should I try to reinvent the
wheel if I haven't to.

My application opens different windows using Trestle.Install(...), which I
would like to synchronize at points during the exectuion of my program. I
alter things in the different windows using the FormsVBT.PutText(...) or
.Insert(...) or via direct VBT painting. I would like a
way/procedure/methode to tell when the painting in the windows has actually
happened on the screen, so that all the windows show a consistent view of
what I want them to. What's the magic here ? In my application as far as
it's ready, the program is nearly finished until I've positioned all the
windows on the screen. (My windowmanager does user-positioning, so the
windows are positioned as fast as I do it, but even without this delay
things happen totaly uncoordinated on the screen.)

	Thanks in advance,
	  -Michael
--
  Michael Kuschke e-mail: kuschke@urd.informatik.
  Computer Science Department - LS4                     .uni-dortmund.de
  University of Dortmund  
  D-4600 Dortmund 50,PO-Box 500500, Germany     voice:  +49 231 755 4892


======================================================================= 24 ===
Date:    Tue, 11 May 93 17:16:06 GMT
From:    msm@src.dec.com
Subject: Re: How to synchronize different Trestle windows ?

Date: Tue, 11 May 93 10:15:58 -0700
X-Received: by godot.pa.dec.com; id AA04148; Tue, 11 May 93 10:15:58 -0700
X-Received: by src-news.pa.dec.com; id AA15516; Tue, 11 May 93 10:15:59 -0700
X-Mts: smtp


You can call VBT.Sync on a VBT to force painting to happen immediately, 
and to wait until it happened.

In general, painting in response to events should happen roughly 
synchronously with returning from the event dispatching procedure.  
Asynchronous painting happens after a short timeout expires (unless 
you have other threads hogging the CPU).  The default timeout is 
50 milliseconds, so I'm surprised that you can see wildly different 
things happening.

Now, when you use FormsVBT.PutText, the repainting probably doesn't 
occur until redisplay time.  Redisplays happen at the end of event 
delivery, and also a short time-out after you modify the tree (assuming 
that VBT.mu can be acquired).  If you're holding VBT.mu (which you 
should be, in order to call FormsVBT.PutText), you can call VBTRep.Redisplay() 
to force the windows to update themselves, and then call VBT.Sync 
on all of the windows that you're interested in to force them to paint.  
I suspect that calling VBTRep.Redisplay will fix most of your problems; 
if not, it wouldn't be hard for me to add a call that would force 
all windows to flush painting and synchronize (although it would 
be a relatively slow operation).

Mark


======================================================================= 25 ===
Date:    Tue, 11 May 1993 15:26:24 GMT
From:    moss@cs.cmu.edu (Eliot Moss)
Subject: Re: Will Modula3 be supported on Solaris 2.X and SGI?

I have had people express interest in porting GNU Modula-3 to these platforms.
I wouldn't hold my breath waiting for a release, though ....       EM
--

J. Eliot B. Moss, Associate Professor	Visiting Associate Professor
Department of Computer Science		School of Computer Science
Lederle Graduate Research Center	Carnegie Mellon University
University of Massachusetts		5000 Forbes Avenue
Amherst, MA  01003			Pittsburgh, PA  15213-3891
(413) 545-4206, 545-1249 (fax)		(412) 268-6767, 681-5739 (fax)
Moss@cs.umass.edu			Moss@cs.cmu.edu


======================================================================= 26 ===
Date:    Tue, 11 May 1993 19:22:32 GMT
From:    leavens@cs.iastate.edu (Gary Leavens)
Subject: installation problems on HP-PA under HP 8.07

I'm trying to install SRC Modula-3 on our local HP-PA machines.
When I do the step  m3make -f m3makefile.boot all install,
it goes along fine until it starts to work on the tools library,
and then I get...

Tue May 11 11:55:26 CDT 1993 ****************************************** tools
        zcat tools-2.11.tar.Z | /bin/tar xf -
        /usr/unsup/bin/m3make -f m3makefile.tools all install
-------------------------------------- tools/pp/HPPA
        /usr/unsup/bin/m3 -w1 -make -why -g -X1_-I../src_    -o m3pp -F.PGM_SOU
RCES -ll
new "/usr/unsup/lib/m3/libm3.a" -> linking m3pp
/bin/ld: Unsatisfied symbols:
   alloca (code)

Fatal Error: program "/bin/cc" failed (exit status 2)

*** Error code 255

Stop.
*** Error code 1

Stop.
*** Error code 1

Stop.
ren 46% uname -a
HP-UX ren A.08.07 A 9000/750 2014397522

Any clues?  I can't find mention of this problem anywhere...

	Gary Leavens
--
	229 Atanasoff Hall, Department of Computer Science
	Iowa State University, Ames, Iowa 50011-1040, USA
	phone: (515) 294-1580 fax: (515) 294-0258 ftp site: ftp.cs.iastate.edu


======================================================================= 27 ===
Date:    12 May 1993 07:45:14 GMT
From:    laverman@cs.rug.nl (Bert Laverman)
Subject: Re: installation problems on HP-PA under HP 8.07

The parser distributed with the tools archive probably has been
generated using bison. Any way, it uses alloca(3) in stead of
malloc(3). Try regenerating the parser with HP-UX yacc.

   $ cd tools/pp/src
   $ yacc -Ns3000 Parse.yacc
   conflicts: 2 shift/reduce
   $ _

  The '-Ns3000' parameter sets the max number of states, whose
default (1000) is not enough for pp. After this, all should go
without problems.

Greetings, Bert
-- 
#include <std/disclaimer>

  Bert Laverman,  Dept. of Computing Science, Groningen University
  Friendly mail to: laverman@cs.rug.nl      The rest to: /dev/null


======================================================================= 28 ===
Date:    Wed, 12 May 1993 15:11:27 GMT
From:    grlw1@cus.cam.ac.uk (Rich Walker)
Subject: Compiler output for stubs

Is there any reason why 
PROCEDURE xx():T
  BEGIN
    RETURN NIL
  END xx;
compiles to 
  _LOCAL _tc... _result;
  _result = _NIL;
  return (_tc...)0;
? Not really a gripe, just a curiosity?


-- 
--- Rich! Walker (grlw1@cus.cam.ac.uk)
If Nasrudin was alive today, he'd be a very lucky man.


======================================================================= 29 ===
Date:    Wed, 12 May 1993 17:35:21 +0000
From:    fred@sobel.u-strasbg.fr (Frederic PIERRE)
Subject: m3pc


	Hello,
	I'm looking for somebody who has installed m3 for PC. The files
in the gatekeeper distribution seem rather strange for building a m3
compiler. I think there are missing parts. Am I right?
	Fred.
 ===========================================================================
 Frederic PIERRE. ENSPS/LSIT 7 rue de l'universite F-67000 Strasbourg FRANCE 
 Tel: (33) 88 35 80 84 Fax: (33) 88 35 31 76 e-mail: fred@sobel.u-strasbg.fr
 ==========================HamRadio: FC1HFD=================================
 


======================================================================= 30 ===
Date:    Wed, 12 May 1993 17:36:52 GMT
From:    tito@di.unipi.it (Tito Flagella)
Subject: MOdula 3 

Is anyone aware of a Modula 3 implementation for Macintosh?

Any pointer will be appreciated.

Thanks,   Tito Flagella


======================================================================= 31 ===
Date:    13 May 1993 15:25:24 GMT
From:    kuschke@gefion.informatik.uni-dortmund.de (Michael Kuschke)
Subject: How to compare objects esp. methodes ?


Hello,

I've written a program wherein I've declared an object foo as follows:

  foo =
    OBJECT
      field : TEXT;
    METHODs
      ...
      userSuppliedFunction(...);
    END;

Somewhere in my other code I try to compare two instances of these object
with an expression like the following:

  Compare(a, b : foo) : BOOLEAN =
  
  ...
  IF Text.Equal(a.field, b.field) AND
     a.userSuppliedFunction = b.userSuppliedFunction
  THEN
     RETURN TRUE;
  ELSE
     RETURN FALSE;
  END;
  ...

Unfortunately that doesn't seem to be the way to compare functions. The
m3compiler dumps core with the following assertion error:
***
*** runtime error:
***    ASSERT failed
***    file "EqualExpr.m3", line 207
***

What's wrong with my code ? How can I compare two instances of the same
objecttype on equality ? Why does the compiler crashes ?

	Thanks in advance,
	  -Mic
--
  Michael Kuschke                           e-mail:  kuschke@gefion.informatik.
  Computer Science Department - LS4                  .uni-dortmund.de
  University of Dortmund  
  D-4600 Dortmund 50,PO-Box 500500, Germany  voice:  +49 231 755 4892


======================================================================= 32 ===
Date:    Thu, 13 May 93 17:19:54 GMT
From:    kalsow@src.dec.com (Bill Kalsow)
Subject: Re: How to compare objects esp. methodes ?

In article <1stp94INNn0h@fbi-news.Informatik.Uni-Dortmund.DE>, kuschke@gefion.i
nformatik.uni-dortmund.de (Michael Kuschke) writes:

> Unfortunately that doesn't seem to be the way to compare functions. The
> m3compiler dumps core with the following assertion error:
> ***
> *** runtime error:
> ***    ASSERT failed
> ***    file "EqualExpr.m3", line 207
> ***
> 
> What's wrong with my code ?

You're trying to compare methods which is not allowed by the language.
See section 2.2.9 of SPwM3, "An object's methods can be invoked, but
not read or written."


> How can I compare two instances of the same
> objecttype on equality ?

You can use "TYPECODE(a) = TYPECODE(b)" to see if they are exactly
the same type, which would imply that they have the same methods.


> Why does the compiler crashes ?

Because it's got a bug.  I'll fix it.

  - Bill Kalsow



======================================================================= 33 ===
Date:    Thu, 13 May 1993 14:08:21 GMT
From:    os102@cl.cam.ac.uk (Oliver Stephens)
Subject: Re: MOdula 3 

In article <1993May12.173652.2989@serra.unipi.it>, tito@di.unipi.it (Tito Flage
lla) writes:
|> Is anyone aware of a Modula 3 implementation for Macintosh?
|> 
|> Any pointer will be appreciated.
|> 
|> Thanks,   Tito Flagella

Yes.

I am in the process of porting version 2.11.  At the moment, I have the
compiler working without garbage collection or threads.  I haven't yet
tried to compile anything it produces because I am too busy at work and
so am content to use it purely as a syntax and semantic checker for editing
I do at home.

Garbage collection should be no problem, but I want to strip the current
version down a bit as there is no way that the Mac will EVER be capable of
doing VM-synchronised generational collection so I want to remove all the
spurious code.

Threads are the main problem.  The Mac uses a different memory model to UNIX
but I have that underhand.  Pre-emption is the tricky one.  According to
Apple, there is no way that pre-emptive threads which move memory around
can be done on the Mac (this comes from the blurb associated with their
Thread Manager).  I don't believe it, though.  I have a schema which
I think will work for M3 programs.  Trouble is, it is a slow development
process because anything I do even slightly wrong crashes my machine.

When complete (I'd give it 5-6 months), it will consist of two versions.

  1. an MPW tool

  2. a stand-alone UI based driver.  Until gcc 2.2 standalone is ready,
     this will only be capable of compiling to C.  You will have to then
     import the files into Think C or something to produce the executables.
     When gcc comes (nothing to do with me, it is being done by a consortium
     known as TopSoft), I will be able to produce a complete stand-alone
     solution.

I am compiling a list of willing beta-testers if anyone is interested.
I may have something to give these people before July.

-------------------------------------------------------------------------
Olly Stephens                                oliver.stephens@cl.cam.ac.uk
Computer Laboratory
University of Cambridge    Loved you there and then, and now like a sheep
United Kingdom                                             - Van Morrison


======================================================================= 34 ===
Date:    Thu, 13 May 1993 18:45:35 GMT
From:    fm91hn@hik.se (HENRIK NORSELL)
Subject: OPINION POLL!

Net citizens!
This is a desperate try to save our last course in university.
We are writing a study about the Net, how it all started, about the people
living in it, however trying to explain the basics of how it all works.
That includes you, reader of this message.
We would be more than grateful if we could get your answers to the following 
questions;

1. For how many years have you known that Internet existed?
2. How often do you use the Net? (occasions per month)
3. Whatfor? (hobby, in your profession, socialy...)
4. How do you access the Net? (university, profession, friends, private...)
5. Has the Net taken over roles that other media played before? (telephone, 
   newspapers, TV, girlfriend...)
6. What newsgroups/type of information do you take part of?
7. Male or Female?
8. Age?

   If you have the time; 
9. What's your future visions about the Net? Limits and/or possibilities. 
10.How do you think/hope law and censorship will change over time ahead?

We also want to apologize for taking up so much bandwidth with this.
This request has been spread to 60 newsgroups, chosen at random, but, 
you know how it is, term end is closing up, panic spreads.
Email address:  fm91hn@hik.se  or  fm91pb@hik.se

Sincere Respect And May The Force Be With You All!

Peter & Henrik



======================================================================= 35 ===
Date:    Fri, 14 May 1993 20:51:28 GMT
From:    leavens@cs.iastate.edu (Gary Leavens)
Subject: Re: installation problems on HP-PA under HP 8.07

In <1sq9ua$irc@rug4.cs.rug.nl> laverman@cs.rug.nl (Bert Laverman) writes:

>The parser distributed with the tools archive probably has been
>generated using bison. Any way, it uses alloca(3) in stead of
>malloc(3). Try regenerating the parser with HP-UX yacc.

...

I tried that without success.  What did work, at the suggestion of
Torsten R. Kirschner, was to use the gnu alloca.c source code.  I had
to add an xmalloc and a error function to it.  I haven't tested it extensively.

If someone responsible for the distribution wants the exact hacks, I would be
happy to send them.  Please contact me by e-mail.

	Gary
--
	229 Atanasoff Hall, Department of Computer Science
	Iowa State University, Ames, Iowa 50011-1040, USA
	phone: (515) 294-1580 fax: (515) 294-0258 ftp site: ftp.cs.iastate.edu


======================================================================= 36 ===
Date:    Mon, 17 May 1993 15:06:40 GMT
From:    bwbecker@watdragon.uwaterloo.ca (Byron Weber Becker)
Subject: LEX and YACC (or equivilents) in M3

I need to do some scanning and parsing in a modula-3 program.
I've seen no mention of this in the FAQ or the contributions
directory on Gatekeeper.dec.com.

1. Are there versions of Lex and Yacc (or equivilents) that
   accept modula-3 action statements?

2. Do you have an interface to lex and yacc that you would be 
   willing to share with me?

3. Do you have any tips?

The specific application is a course I'm designing to introduce
students to many of the topics of compiling:  finite automata,
context-free grammars and parsing, code generation, etc.  Any 
other tools and ideas are most welcome.

Byron Weber Becker


-- 
-----------------------------------------------------------------------------
Byron Weber Becker
bwbecker@watdragon.uwaterloo.ca
-----------------------------------------------------------------------------


======================================================================= 37 ===
Date:    18 May 93 13:47:01 GMT
From:    fn00@gte.com (Farshad Nayeri)
Subject: Re: LEX and YACC (or equivilents) in M3


In article <C76FB5.Au8@watdragon.uwaterloo.ca> bwbecker@watdragon.uwaterloo.ca 
(Byron Weber Becker) writes:

>  I need to do some scanning and parsing in a modula-3 program.
>  I've seen no mention of this in the FAQ or the contributions
>  directory on Gatekeeper.dec.com.
>
>  1. Are there versions of Lex and Yacc (or equivilents) that
>     accept modula-3 action statements?

>  2. Do you have an interface to lex and yacc that you would be 
>     willing to share with me?

You can use (real) Yacc and Lex with Modula-3. Checkout m3pp in the
"tools" distribution. It has a Yacc grammer that calls Modula-3
procedures. You call Modula-3 exported routines using a
Module__Procedure naming convention.

I don't know if this is suitable for an introductory compilers class
though. What we really need is something like a Fisher & LeBlank in
Modula-3.

>  Any other tools and ideas are most welcome.

Other Modula-3 programs that may be worth looking into are m3tk,and
the Sx package (part of libm3). They are both very nice toolkits,
however, I am not sure if either one of them is exactly what you need
though. I have enclosed parts of the readme sections of the
documentation for these packages at the end of my message.

--farshad

>From documentation of Modula-3 toolkit:

The [Modula-3] toolkit is designed to support the creation of Modula-3
program development tools and is structured around a compiler
front-end which uses a public Abstract Syntax Tree (AST) to represent
program source. A description of the (original) system can be found
in:

  "An Extensible Programming Environment for Modula-3", Mick Jordan,
  Proceedings of the Fourth ACM SIGSOFT Symposium on Software Development
  Environments, Software Engineering Notes, 15, 6, Dec 1990.


>From documentation for Sx.i3

  This interface provides facilities for reading and printing symbolic
  expressions composed of integers, characters, booleans, reals, long
  reals, texts, symbols (Lisp-like atoms), lists, vectors (REF ARRAY
  OF REFANY).
  
  Symbolic expressions provide a simple, flexible, and extensible
  mechanism for communicating complex structured data between humans
  and computers.  They are particularly useful for encoding data with
  complex or ill-defined structure, or that must viewed or edited by
  people.  They are also a convenient starting point for small
  special-purpose languages.  Symbolic expresions save programming
  time, because tools such as parsers and prettyprinters need to be
  written only once; and user time, because their syntax is
  straightforward and needs to be learned only once.''



--
Farshad Nayeri  |  Distributed Object Computing
  fn00@gte.com  |  GTE Laboratories, Inc., Mail Stop 62
 (617)466-2473  |  40 Sylvan Road, Waltham, MA 02254, USA


======================================================================= 38 ===
Date:    Tue, 18 May 1993 14:35:16 GMT
From:    strzelin@sscdaq.phy.bnl.gov (Bob Strzelinski)
Subject: Re: installation problems on HP-PA (ditto SGI)

In article <leavens.737412688@bambam.cs.iastate.edu>, leavens@cs.iastate.edu (G
ary Leavens) writes:
|> In <1sq9ua$irc@rug4.cs.rug.nl> laverman@cs.rug.nl (Bert Laverman) writes:
|> 
|> >The parser distributed with the tools archive probably has been
|> >generated using bison. Any way, it uses alloca(3) in stead of
|> >malloc(3). Try regenerating the parser with HP-UX yacc.
|> 
|> ...
|> 
|> I tried that without success.  What did work, at the suggestion of
|> Torsten R. Kirschner, was to use the gnu alloca.c source code.  I had
|> to add an xmalloc and a error function to it.  I haven't tested it extensive
ly.
|> 
|> If someone responsible for the distribution wants the exact hacks, I would b
e
|> happy to send them.  Please contact me by e-mail.
|> 
|> 	Gary
|> --
|> 	229 Atanasoff Hall, Department of Computer Science
|> 	Iowa State University, Ames, Iowa 50011-1040, USA
|> 	phone: (515) 294-1580 fax: (515) 294-0258 ftp site: ftp.cs.iastate.edu

The same procedure worked for me installing m3 2.11 on a Silicon Graphics
Indigo R4000 running Irix 4.0.5f.  Simply incorporate the alloca.c from a
gnu distribution (such as gcc) and a home-grown xmalloc.c into the pp src
directory in the tools-2.11 package.  Xmalloc is simply a guarded call to 
malloc which exits with a "no memory" message to stderr if malloc fails.
Check inside the alloca.c code for the proper signature for xmalloc.  Don't
forget to modify the proper m3makefile to compile the added C code.

///////////////////////////////////////////////////////////////////////////////
// Robert J Strzelinski                 // Brookhaven National Laboratory    //
// strzelin@sscdaq.phy.bnl.gov          // Upton, NY 11973-5000              //
///////////////////////////////////////////////////////////////////////////////


======================================================================= 39 ===
Date:    Wed, 19 May 1993 10:00:36 GMT
From:    whkc100@cl.cam.ac.uk (Kenneth Chan)
Subject: Help me with Objects

I am trying to write a code whih implements mixed integer and real operations b
y
using objects. However, I got some errors when I compiled the program. Can you
explain the errors to me ?

Thanx in advance.


The errors when compiling are :
"intreal.m3", line 13: no method to override in supertype (add)
"intreal.m3", line 16: default is incompatible with method type (add)
"intreal.m3", line 22: no method to override in supertype (add)
"intreal.m3", line 25: default is incompatible with method type (add)
"intreal.m3", line 42: types are not assignable
"intreal.m3", line 46: types are not assignable
"intreal.m3", line 54: NARROW: types must be assignable
"intreal.m3", line 56: NARROW: types must be assignable
"intreal.m3", line 63: NARROW: types must be assignable
"intreal.m3", line 64: types are not assignable
"intreal.m3", line 67: NARROW: types must be assignable
"intreal.m3", line 68: types are not assignable
"intreal.m3", line 76: NARROW: types must be assignable
"intreal.m3", line 78: NARROW: types must be assignable
14 errors encountered

here is the program listing :

*******************************************************************************
**
MODULE Object EXPORTS Main;
IMPORT Scan, Fmt, Wr, Stdio;
TYPE 
  Number = OBJECT
           METHODS
             add (j : Number) : Number;
 (*          subtract (j : Number) : Number;
             multiply (j : Number) : Number;
             divide (j : Number) : Number;        *)
             text () : TEXT := Convert
           END;

  Integer = OBJECT 
              j : INTEGER;
            OVERRIDES
              add := Intadd;
(*            subtract := Intsub;
              multiply := Intmul;
              divide := Intdiv           *)
            END;                                       (* Line 20 *)

  Real = OBJECT
           t : REAL; 
         OVERRIDES
           add := Realadd;
(*         subtract := Realsub;
           multiply := Realmul;
           divide := Realdiv          *)
         END;
                                                      (* Line 30 *)

VAR            
 r := Create("3.14159");
 i := Create("42");
 s := r.add(i);
 j := i.add(Create("37"));

PROCEDURE Create (T : TEXT) : Number =               
BEGIN
  TRY
    WITH m = Scan.Int(T) DO
     RETURN NEW(Integer, j := m)
    END;
  EXCEPT
    Scan.BadFormat =>  WITH h = Scan.Real(T) DO
                         RETURN NEW(Real, t:= h);
                       END;
  END;
END Create;
                                                      (* Line 50 *)
PROCEDURE Convert (self : Number) : TEXT =
BEGIN
  IF ISTYPE(self, Integer) THEN
    RETURN Fmt.Int(NARROW(self, Integer).j);
  ELSE 
    RETURN Fmt.Real(NARROW(self, Real).t)
  END
END Convert;

PROCEDURE Intadd (self : Integer ; b : Number) : Number =
BEGIN
  IF ISTYPE(b, Integer) THEN 
    WITH k = self.j + NARROW(b, Integer).j DO
    RETURN NEW (Integer, j := k)
    END;
  ELSE 
    WITH m = FLOAT(self.j) + NARROW(b, Real).t DO
    RETURN NEW (Real, t := m );
    END;
  END                                                 (* Line 70 *)
END Intadd;

PROCEDURE Realadd(self : Real; b : Number) : Real =
BEGIN
  IF ISTYPE(b, Integer) THEN 
    RETURN NEW (Real, t := (self.t + FLOAT(NARROW(b, Integer).j)));
  ELSE 
    RETURN NEW (Real, t := (self.t  + FLOAT(NARROW(b, Real).t)))
  END
END Realadd;

BEGIN
  Wr.PutText( Stdio.stdout, r.text());
  Wr.PutText( Stdio.stdout, j.text());
END Object.
******************************************************************************

Cheers

Kenneth Chan


======================================================================= 40 ===
Date:    19 May 93 11:30:18
From:    walsh@cs.umass.edu (Norman Walsh)
Subject: GNU Modula-3 Mailing Lists

Hello,

In order to better support GNU Modula-3 development efforts, the following
mailing lists have been established:

  gm3-bug
  gm3-vax-testers
  gm3-intel-porters
  gm3-sparc-porters
  gm3-mips-porters
  gm3-other-porters

Individuals who expressed an interest in testing or porting our alpha release
of GM3 have already been added to the appropriate list(s).  You should have
received an administrivia message a few days ago.  If you didn't, or if you
have not previously expressed an interest in our compiler, please drop us a
note.

To join or leave any of the lists, send mail to "`list'-request@cs.umass.edu".
For example, to join the gm3-bug list, send mail to
"gm3-bug-request@cs.umass.edu".  Please do not send list maintenance requests
directly to the lists!

At the moment, list requests are handled manually so you can put _all_ your
requests in one message.

Mail sent to these lists is archived automatically on the anonymous ftp site
at ibis.cs.umass.edu in /pub/gm3/mail-archives.  These archives are also
available through the mail server "archive-server@ibis.cs.umass.edu"

If you have any questions about these lists, please send mail to
"gm3-maintainers@cs.umass.edu".
                                                  Regards,
                                                    norm
---
Norman Walsh         | University of Massachusetts, Amherst, MA 01003
<walsh@cs.umass.edu> | CMPSCI Dept., LGRC A210 | Standard disclaimer applies



======================================================================= 41 ===
Date:    Wed, 19 May 1993 13:51:52 GMT
From:    cmf13@cl.cam.ac.uk (Conor Foley)
Subject: Re: Help me with Objects

In article <1993May19.100036.26149@infodev.cam.ac.uk>, whkc100@cl.cam.ac.uk (Ke
nneth Chan) writes:
|> I am trying to write a code whih implements mixed integer and real operation
s by
|> using objects. However, I got some errors when I compiled the program. Can y
ou
|> explain the errors to me ?

Two separate mistakes:

|>   Integer = OBJECT 

|>   Real = OBJECT 

As Integer and Real are subtypes of Number, these lines should read

     Integer = Number OBJECT 

     Real = Number OBJECT 

Also, the definition of Realadd returns the wrong type:

|> TYPE 
|>   Number = OBJECT
|>            METHODS
|>              add (j : Number) : Number;

|> PROCEDURE Realadd(self : Real; b : Number) : Real =

should be

   PROCEDURE Realadd(self : Real; b : Number) : Number =
                                                ^^^^^^
Make those changes and it should work fine.

Conor Foley
University of Cambridge Computer Laboratory


======================================================================= 42 ===
Date:    Wed, 19 May 1993 14:19:06 GMT
From:    kirschnt@informatik.uni-muenchen.de (Torsten R. Kirschner)
Subject: Problems with HPPA-M3's Stdio.stdin from a terminal

Dear Netfellows,

I found the following problem in the HPPA-Implementation of M3.
I can call Rd.GetLine(Stdio.stdin) without an error if stdin is
a file or a pipe.
However, if stdin is from a terminal, Rd.EndOfFile is raised
immediately.
Has anybody experienced the same? Is there a known fix to this?
Any help is very much appreciated.

Torsten
ps. Oh, I use HP-UX 9.01 and M3 2.11. Although I used HP-UX 8.07 and HP C
to compile it, even recompiling it again under 9.01 with GNU C doesn't
work.
Here is a script to illustrate the above:

Script started on Tue May 18 11:50:03 1993

zeus:/home/wiss/kirschnt/src/m3/t3 > cat t3.m3
MODULE t3 EXPORTS Main;
IMPORT Rd, Stdio;
VAR erg: TEXT;
BEGIN
erg := Rd.GetLine(Stdio.stdin);
END t3.

zeus:/home/wiss/kirschnt/src/m3/t3 > m3make
	/usr/local/lmu/bin/m3 -w1 -make -why -k -X1@+Z@    -o t3 ./t3.m3 
new source -> compiling ./t3.m3
"./t3.m3", line 7: warning: potentially unhandled exception (Rd.Failure)
"./t3.m3", line 7: warning: potentially unhandled exception (Rd.EndOfFile)
"./t3.m3", line 7: warning: potentially unhandled exception (Thread.Alerted)
3 warnings encountered
new objects -> linking t3

zeus:/home/wiss/kirschnt/src/m3/t3 > t3
****************** EXCEPTION HANDLER STACK *********************
0x7b03383c TRY-FINALLY  proc = 0x7af561c2   frame = 0x7b03384c
****************************************************************
***
*** runtime error:
***    Unhandled exception "Rd.EndOfFile"
***
Quit(coredump)
zeus:/home/wiss/kirschnt/src/m3/t3 > uname -r
A.09.01
zeus:/home/wiss/kirschnt/src/m3/t3 > exit
script done on Tue May 18 11:50:41 1993
-- 
Torsten R. Kirschner	kirschnt@informatik.{tu,uni}-muenchen.de


======================================================================= 43 ===
Date:    Wed, 19 May 1993 19:40:06 GMT
From:    whkc100@cl.cam.ac.uk (Kenneth Chan)
Subject: Re: Help me with Objects


Thank you to all you have replied to me. I really shouldn't put careless
codes in the INTERNET. Next time I will check it carefully instead of
wasting the bandwidth.

Yours,

Kenneth


======================================================================= 44 ===
Date:    20 May 93 15:59:17 +0100
From:    e28bgid2@cine88.cineca.it
Subject: How to evaluate SW

Hi everyone,
I am working on an applied research project on software quality, and I
ask the cooperation of the Net.  I will post the result of
my queries asap. Please mail directly to me, not to waste bandwidth.

My field of interest is measuring the quality of applications.  That
means answering to some questions, such as "are there any goto's?",
rating the answers, hashing results with some queer software and saying
"good usability, bad maintainability" and so forth.

What I need are the questions. There are some lists in literature, but
they are not specific for a technologic area.

I ask you: from your experience and judgement, what things would you
check (which questions would you ask) to determine whether a program
or a piece of documentation in the area of Pascal/Modula2/Modula3
programming is:

        - meeting its original requirements (accurate, interoperable,
          conforming to standards, keeping privacy)
        - reliable (mature, error tolerant, recoverable)
        - usable by actual people (understandable, teachable, easy to use)
        - efficient
        - maintainable (readable, modifiable, stable, testable)
        - portable (customisable,installable,platform-independent)

This is a kind of worldwide brainstorm, so diversity is welcome!
I think that self-consciousness of the Net on quality attributes
and measurements is of general utility, and I dare ask you a few
minutes of your time. I will quote the names of all people who do not
ask to remain anonymous. Of course, indirect pointers to publications,
ftp-accessible archives, FAQ lists and the like are equally welcome.

Thanks for reading this message.

Andrea

---------------------------------------------------------------------------
Andrea Spinelli                         tel     +39-35-307322
ISMES SpA                               fax     +39-35-211191
Viale Giulio Cesare 29                  e-mail  e28bgid2@cine88.cineca.it
24123 Bergamo BG                        "Truth hurts, but pimples more so!"
---------------------------------------------------------------------------


======================================================================= 45 ===
Date:    22 May 1993 13:39:50 GMT
From:    estein@ic.sunysb.edu (Eric Stein)
Subject: undefined version stamp error message


I keep getting an undefined version stamp error message when I try to
compile a program.  What am I doing wrong?

Thanx.


======================================================================= 46 ===
Date:    Sun, 23 May 1993 20:16:30 GMT
From:    mandayrv@ucunix.san.uc.edu (The Universal Hacker)
Subject: survey of set based languages

Hi folks,

I am doing a survey of high level languages based on sets. The only
information I have currently is on the language SETL. I would appreciate any
pointers to articles, magazines, books, etc. that will have more information
on this issue. 

Thanks in advance
-- 
ramanand@pumpkin.ece.uc.edu          home:   513 281 9870
rmandaya@uceng.uc.edu                office: 513 556 3025
mandayrv@ucunix.san.uc.edu           ham:    KB8GKL


======================================================================= 47 ===
Date:    Mon, 24 May 93 01:57:39 GMT
From:    frode@ODEGARD.COM (Frode Odegard)
Subject: undefined version stamp error message

Date: Sun, 23 May 93 18:42:29 PDT
X-Received: from rand.ODEGARD.COM by ODEGARD.COM (4.1/SMI-4.1)
X-Received: by src-mail.pa.dec.com; id AA20730; Sun, 23 May 93 18:57:34 -0700
X-References: <1tlaf6$srs@max.physics.sunysb.edu>
X-Received: by rand.ODEGARD.COM (4.1/SMI-4.1)
X-Received: by inet-gw-2.pa.dec.com; id AA24250; Sun, 23 May 93 18:57:34 -0700
X-Received: from surak.UUCP by cs.sfsu.edu (5.65/A/UX-3.00-930326)
X-Received: by src-news.pa.dec.com; id AA23831; Sun, 23 May 93 18:57:36 -0700

Eric Stein <estein@ic.sunysb.edu> writes:

> I keep getting an undefined version stamp error message when I try to
> compile a program.  What am I doing wrong?
>
> Thanx.

Hm.  Maybe there's procedure somewhere that is defined in an interface
and hasn't been implemented.  Are you sure this doesn't happen when
you're linking?  (Maybe it'd be nicer if the SRC implementaion would
simply say, "Gosh, the interface I defines a procedure P that isn't
implemented.")

				- Frode
--------------------------------------------------------------------
Odegard Labs, Inc.			+1-415-434-4242   (voice)
100 Bush St., Suite 2101		+1-415-434-4243   (fax)
San Francisco, CA 94104-3909, USA	frode@odegard.com (internet)



======================================================================= 48 ===
Date:    Thu, 27 May 1993 00:21:02 GMT
From:    ege@cmsun.cmf.nrl.navy.mil (Raimund Ege)
Subject: TOOLS USA Final program

This is the final program for TOOLS USA 93 (Technology of Object-Oriented
Languages and Systems), to be held in Santa Barbara (California),
August 2-6, 1993.

It is structured as follows:

1.  General information and schedule
2.  List of keynote talks
3.  List of tutorials
4.  Workshops
5.  Panel sessions
6.  Conference sessions (refereed papers)
7.  Exhibition
8.  Keynote presentation abstracts 
9.  Tutorial abstracts
10. Program committee
11. Practical information

Note: Following the conference a symposium on TEACHING OBJECT
TECHNOLOGY will take place on Friday, August 6. The program will
be posted in a separate message.

1. GENERAL INFORMATION AND SCHEDULE
----------------------------------

Location: Santa Barbara, California (the conference is held on the
    campus of UC Santa Barbara)

Scientific organizers:
    Program chair: Raimund Ege
    Panel & Workshop Chair: Madhu Singh
    Conference Chair: Bertrand Meyer

Sponsors:
    Interactive Software Engineering
    Object Technologies
    Software Magazine
    Prentice Hall

Schedule:
    August 2-3: Tutorials
    August 4-5: Keynotes, conference sessions, panel sessions, workshops
    August 6: Symposium on Teaching Object Technology 

2. LIST OF KEYNOTE PRESENTATIONS
--------------------------------

(Abstracts of these presentations and biographies appear in part 8 below)

    Roger Osmond, Bytex Corporation
          Reality-Based Object Oriented Development
 
    Meilir  Page-Jones,  Wayland  Systems,  Inc.    
          Object-Orientation: Management implications

    Arvind Deogirikar, Sun Microsystems
          Distributed Object Architectures 

    Gene Wang, Symantec Corp.
          The Future of Object-Oriented Programming

3. LIST OF TUTORIALS
--------------------

(The abstracts and speakers' biographies appear in part 9 below.)
 
STATE-OF-THE-ART SURVEY TRACK:
    S1 Richard S. Wiener, Journal of Object-Oriented Programming (USA)
         Comparing OOP Languages - A Critical Look At C++, Smalltalk
         and Eiffel
 
    S2 Martin  Fowler,  Independent  Consultant  (UK)
         A Comparison of object-oriented analysis and design methods
 
    S3 Paul Harmon, Curtis Hall, O-O Strategies/Intelligent Software
       Strategies (USA)
         Object-Oriented Tools and Environments

    S4 Frank Manola, GTE
         Object-Oriented Databases
          
EXPERIENCE REPORTS TRACK:
    E1 Mohamed Fayad, Object Technologies, Inc. (USA); Louis
       J. Hawn, McDonnell Douglas Aerospace Company (USA)
         Object-Oriented Experiences (Part 1)
 
    E2 Mohamed Fayad, Object Technologies, Inc. (USA);
       Louis J. Hawn, McDonnell Douglas Aerospace Company (USA)
         Object-Oriented Experiences (Part 2)
 
    E3 Claude Baudoin, National Semiconductor Corp. (USA);
       Glenn Hollowell, SEMATECH (USA)
         Realizing  the  Object  Life-Cycle: An Industry View
 
    E4 Craig Brandis, Arete Research (USA)
         An OO Case History: Large System Design Using C++

MANAGEMENT TRACK:
    M1 Jean-Marc  Nerson,   SOL  (France)
         Object-Oriented Project Management
 
    M2 Will Tracz, IBM Federal Systems Company (USA)
         The Realities  of Institutionalizing  Software Reuse
 
    M3 Brian  Henderson-Sellers, U. of New South Wales (Australia)
         Object-Oriented Metrics

    M4 Salil Deshpande, Semaphore Training & Customware (USA)
         CORBA: Its Goals and Impact on the O-O world

TECHNICAL TRACK:
    T1 Sergiu Simmel, Penobscot Development Corporation (USA)
         Implementing Object  Persistence  and
         Visibility with Kala
 
    T2 Bertrand  Meyer, Interactive   Software   Engineering   (USA)
         Systematic Concurrent Object-Oriented Programming
 
    T3 Frederic  Deramat, Interactive Software Engineering   (USA)
         Building Object-Oriented Graphical Applications
 
    T4 Raimund K. Ege, Florida International University (USA)
         Beyond Frameworks: Object-Oriented Application Developmen
 
ANALYSIS, DESIGN & METHODOLOGY TRACK:
    A1 Donald G. Firesmith, Advanced Software Tech. Specialists (USA)
         ADM4: an OO Development Method for Large,
         Complex Real Time Systems
 
    A2 Brian  Henderson-Sellers, U. of New South Wales (Australia)
          MOSES: Methodology for OO Software Engineering
          of Systems
 
    A3 Reinhard Patels,  Siemens  AG  (Austria)
         OOSEM - A  Complete Development Process for O-O software
 
    A4 Meilir  Page-Jones,  Wayland  Systems,   Inc.   (USA)
         Object-Orientation  and  Structured  Techniques:
         Where they overlap; where they conflict


4. WORKSHOPS
------------

W1  Extending Object-Oriented Concepts to Support large Scale  Business
    Systems -  Madhu Singh,  N. Guttapalle (Bellcore)

W2  Integration and Interoperability of Multimedia Distributed Database
    Systems 
        Anthony Matrana (Data Integration Solutions Corp)
        Alfonso Cardenas (University of California)

W3  Object-Oriented Analysis & Design
        Terry Roberts (Berard Software Engineering, Inc)


5. PANEL SESSIONS
-----------------

P1  Role of Conceptual Schema in Object-Oriented Paradigm
    Panel Moderator:  Anthony Sarris, Onteck Technology

P2  Standardization Activities in Object-Oriented Technology
    Panel Moderator: Jim Maurer, Publisher, Communications of the ACM

P3  Utilization of Object-Oriented Technology in Mainstream Information
    Systems: if not now, when?
    Panel Moderator: Kendal L. White, The Mitre Corporation 

P4  Object-Oriented Methodology
    Panel Moderator: James  Cerrato, Associate Design Technology

P5  Leveraging Productivity with a standard environment and coordinated
    tools for O-O development.
    Panel Moderator: Gary Berg Cross, Advanced System Design, a division
    of Booz, Allen & Hamilton


6. CONFERENCE SESSIONS (REFEREED PAPERS)
----------------------------------------

C1  SHIFTING TO OBJECTS

"Managing a Software Reusability Effort in a Business Environment"
Daniel Halbach, Jeffrey Scott, Risa Hyan, ARINC Research
Corporation (USA)

"Object-Oriented Restructuring of the General Purpose Operating
System BS2000"
H. H. Deubler, M. Koestler, Siemens Nixdorf Informationssysteme AG
(Germany)

"System Intergration with Minimal Object Wrappers"
Melony Katz, Thomas Mowbray, Ron Zahavi, Donna Cornwell,
The MITRE Corporation (USA)


C2  ANALYSIS, DESIGN AND MODELING

"A New Approach to Object-Oriented Analysis and Design"
Joseph Morabito and Madhu Singh, Bellcore (USA)

"Object-Oriented Design: the OSM scheme"
Frank Barbier, Jean Bezivin, Universite de Nantes (France)

"Introducing States in the Object Model"
Hugues Lecoeuche, Jean Louis Sourrouille, Institut National des
Sciences Appliquees de Lyon (France)

"Towards an Object-Oriented Technology for Specification and
Implementation of Distributed Systems"
Joachim Fischer, Eckhardt Holz, Humboldt-University Berlin (Germany)


C3  TOOLS AND DEVELOPMENT ENVIRONMENTS

"Visual CASE: An Object-Oriented Software Development System for
Home Appliances"
Shuusuke Haruna, Kazutoshi Sumiya, Kouichi Yasutake, Yoskihiko Imai,
Matsushita Electric Industrial Co., Ltd. (Japan)

"Cerial: A Tool for XDR or ASN.1 BER Serialization of C++ Objects"
Juha Koivisto, James Reilly, Technical Research Centre of Finland
(Finland)

"The Objectworks Browsing Model - Understanding Complex Software"
Michel Adar, Robert Field, Wlodek Kubalski, Terry Chou,
ParcPlace Systems (USA)

"Data Abstraction in SoftClass, an Object-Oriented CASE Tool for
Software Reuse"
Hafedh Mili and Haitao Li, Bellcore (USA)


C4  CLASS MANAGEMENT AND EVOLUTION

"The Many Faces of a Class"
Richard Bielak, Bank of New York (USA), James McKim, Hartford
Graduate Center (USA)
 
"A Distributed Environment for Managing the Evolution of
Object-Oriented Systems"
Chris Bosch, David Rine, George Mason University (USA)
 
"Media Language: an Object-Oriented Approach to Generic
Application Development"
C. Parrott, P. Ward, FN Arshad, University of Leeds (United
Kingdom)
 
 
C5  CONCURRENCY AND DISTRIBUTION
 
"The Object Space Approach: Decoupled Communication in C++"
Andreas Polze, Freie Universitat Berlin (Germany)
 
"Object-Based Concurrency: Ten Language Features to Achieve Reuse"
Denis Caromel, Manuel Rebuffel, Universite de Nice-Sophia-Antipolis
(France)
 
"The Object-Oriented Components of the Enterprise Parallel
Programming Environment"
Duane Szafron, University of Alberta (Canada)
 
"The Object Support via FIFO-Links on Message-Passing Systems"
Wen-Tsung Chang, National Chiao-Tung (Taiwan)
 
 
C6  APPLICATION AND EXPERIENCE
 
"An Empirical Assessment of Interface Changes for an
Object-Oriented, `Not-So-Rapid' Prototype"
Mary Ann Malloy, The MITRE Corporation (USA)
 
"Using C++ in the Development of an Electronic Design Framework"
I. Videira, H. Sarmento, IST/INESC (Portugal)
 
"C++ vs Sather: Experiences in Experimental Programming"
Jeffrey Putnam, New Mexico Institute of Mining & Technology (USA)
 
"Putting Object-Oriented Technology to Work in Autonomous Vehicles"
Michael Nelson, Ronald Byrnes and Sehung Kwak, Naval Postgraduate
School (USA)
 
 
C7  USER INTERFACES
 
"Combining 2D User Interface Components and Interactive 3D Graphics"
Philipp Ackermann, Dominik Eichelberg, Universitaet Zurich (Switzerland)
 
"Active-Object User Interface Management System"
Toshimi Minoura, Sungwoon Choi, Oregon State University (USA)
 
"ObjChart-Builder: An Environment for Executing Visual Object
Models"
Dipayan Gangopadhyay, IBM Thomas J. Watson Research Center,
Subrata Mitra, University of Illinois, Satbir Singh Dhaliwal,
New Jersey Institute of Technology (USA)
 
 
C8  LIBRARIES AND FRAMEWORKS

"On the Evolution of a Framework for the ObjecTime Design
Environment"
Jean-Pierre Corriveau, Carleton University (Canada), Larry
Williams, ObjecTime (Canada)
 
"Extending Object-Oriented Programming to Address Hard
Optimization Problems"
Yves Caseau, Glenn Silverstein, Peter Koppstein, Bellcore (USA)
 
"Demonstrating Coherent Design: A Data Structure Catalogue"
Andreas Rueping, Franz Weber and Walter Zimmer, Forschungszentrum
Informatik (Germany)
 
"A Case Study in Object-Oriented Programming: Algebraic Structures 
in Eiffel"
Peter Sanders (Germany)
 
 
C9  VERIFICATION AND TESTING
 
"Verifiable Object Oriented Designs"
M. Glykas, P. Wilhelmij, T. Holden, University of Cambridge
(United Kingdom)
 
"Testing Object-Oriented Software"
Donald G. Firesmith, Advanced Software Technology Specialists (USA)
 
"Collecting Software Metric Data for the Eiffel Class Hierarchy"
Christine Mingins, Bohdan Durnota and Glen Smith, Monash University
(Australia)

 
C10  OODB AND PERSISTENCE
 
"Detectors: Encapsulating Constraint Maintenance in
Object-Oriented Databases"
Michael Rowley, Wesley Chu, UCLA (USA)
 
"The Use of Object-Oriented Databases in Large and Complex
Engineering Systems"
Nguyen N.Q. Thuy, Matra Datavision (France)
 
"Unique copy-on-write Objects"
Dean R.E. Long, University of Santa Cruz (USA)



7. EXHIBITION
-------------
TOOLS USA 93 features  an  exhibit of state-of-the-art object orien-
ted technology. TOOLS encourages developers of object-oriented tools 
and applications written using  object technology  to exhibit  their 
latest projects in Santa Barbara.

The current list of exhibitors includes:

    * Mark V Sytems Ltd.
    * Object Technologies, Inc.
    * Smartstar Corporation
    * CGI
    * Easel Corporation
    * Unir Technology, Inc.
    * Sequiter Software Inc.
    * Interactive Software Engineering
    * Tower Technology
    * Dyad Software Corporation
    * NICE
    * Prentice Hall
    * Software Magazine

Note: a few booths are still available for the exhibition. There is
no charge for exhibiting, but all exhibition requests are subject
to selection based on technical relevance and novelty. Please
contact the TOOLS organization (e-mail address at the end of
this message) for a paper or e-mail copy of the call for
exhibitors.

8. KEYNOTE PRESENTATION ABSTRACTS
---------------------------------

ROGER OSMOND, Manager, Software Development, Bytex Corporation
"Software Development Realities"
 
"We are facing a Software Crisis".  This cry of doom is repeated by
engineers  and  managers,  the  press, government officials and boy
scout troop leaders alike,  and  it  has  been  for  decades.   The
realities  of  commercial  software  development exact a price from
developers and  organizations  that  are  often  neglected  in  the
current software engin- eering literature and are seldom covered in
the object liturgy.  This presentation shares our  experience  with
OOT  in a mainstream commercial setting and, it is hoped, serves as
an opening salvo in a war against delusion.

As Manager, Software Development,  Roger  Osmond  manages  software
development  projects  and serves as the software architect for LAN
products at Bytex Corporation. He introduced object  technology  to
mainstream  development  in  1989,  long  before  other  commercial
developers made a commitment to the approach.


MEILIR  PAGE-JONES,  Wayland  Systems,  Inc.
"Object-Orientation: Management Implications"

Articles in everything from The C++ Report to  Business  Week  have
extolled  the glorious virtues and opportunities of Object-Oriented
systems.  But what  exactly  does  object  orientation  do  for  an
organization?  And when penalties, if any, does it exact?
Meilir Page-Jones will address some factors in the  OO  world  that
managers  must  take into account in deciding whether, when and how
to adopt OO:
   o The fad of the year 
   o The technology trap 
   o Immaturity  of  OO  
   o The  seven  ages of software-engineering expertise 
   o Reusability: a free lunch?  
   o Conan the Librarian 
   o Likely time, scale and pattern of productivity increases 
   o Is there a life cycle after OO?

ARVIND DEOGIRIKAR, Market Segment Manager CASE/AI, Sun Microsystems
"Computer Corporation Distributed Object Architectures"

Need for  a  distributed,  Object-based  application  framework  to
dramatically  reduce  the  cost  of developing, using  and managing
enterprise applications is greater than ever. This is  due  to  the
complexities  and  costs  associated with the software development,
which has not kept  pace  with  the  powerful  and  cost  effective
hardware  developments.  We will discuss the technologies that will
enable the creation of reusable software  components  that  can  be
distributed  and  integrated  across  the network. Specifically, we
will talk about a successful  project  launched  to  address  these
complex  issues  including those surrounding the distributed object
architectures.

Arvind Deogirikar is the driving  force behind  the Computer  Aided
Software   Engineering/Artificial  Intelligence   (CASE/AI)  market 
segment at Sun Microsystems Computer  Corporation  (SMCC).  In this 
role,  Deogirikar   is  responsible  for  developing  Sun's CASE/AI
strategy and marketing programs to implement them.  He set up sales
support  program  and  developed  and implemented  several end-user
programs including collateral.


GENE WANG, Executive Vice President,  Symantec Corporation
"The Future of Object-Oriented Programming"

The stakes are getting bigger every day as more  companies  bet  on
OOP for commercial application development and delivery. Instead of
being an academic exercise, making  the  commitment  to  OOP  is  a
deadly serious business decision. A decision that can make or break
careers, projects, and entire companies. Despite all the challenges,
OOP  is  showing  up  in  every major software category. OOP is the
future  of  application  development.  The  question  is  how  many
mistakes we can avoid in getting there?

Gene Wang  is  Executive  Vice President  at  Symantec  Corporation
responsible for the  tools and productivity application businesses,
including project  management.  Previously, he  was Vice  President
and General Manager of languages at Borland International. Mr. Wang
was co-founder  of Gold  Hill Computer,  an artificial intelligence
company, in 1984.


9. TUTORIAL ABSTRACTS
---------------------


S1  RICHARD S. WIENER, Journal of Object-Oriented Programming (USA)
    Comparing  OOP  Languages  - A Critical Look At C++, Smalltalk, 
    and Eiffel
    Monday, August 2, 8:00-12:00

The major features of C++, Smalltalk, and Eiffel will  be  compared
from  the  perspective  of  object-oriented  software  development.
Carefully crafted code segments in C++, Smalltalk, and Eiffel  that
focus  on  key  issues  associated  with  object-oriented  software
construction will form the basis for comparing the  languages.   It
is  recommended  that  the  attendee have some working knowledge of
either C++, Smalltalk, or Eiffel.

Dr. Richard  Wiener  is  the  editor-in-chief  of  the  Journal  of
Object-Oriented  Programming and  associate  professor of  computer
science at the University of  Colorado at  Colorado  Springs. Since 
1988, he has given short  courses  and  seminars worldwide to  many  
companies dealing with many aspects of object- oriented  technology. 
He  has  written  16  books  on  the subjects  of  Software   Engi-
eering, Data   Structures,  C,  C++,  Pascal,  Modula-2,  Smalltalk,   
and Objective-C.


S2  MARTIN  FOWLER,  Independent  Consultant  (United  Kingdom)
    A Comparison of object-oriented analysis and design methods
    Monday, August 2, 1:30-5:30

This tutorial shows how to look inside  methods  to  see  how  they
differ,  and  more  importantly, how they are the same. It examines
several  of  the  most   well-known   methods,   including   Booch,
Coad/Yourdon,   Jacobson  (OOSE),  Odell/Martin  (Ptech),  Rumbaugh
(OMT), Shlaer/Mellor, and Wirfs-Brock (RDD, CRC). In general, each
method  is  made up of several techniques (e.g. ER modelling, state
transition diagrams) each of which emphasizes a  particular  aspect
of  the  system.  These  techniques can  be classified as being for
structural  (data),  behavioral  or  architectural  modelling.  The
tutorial  shows  the  techniques each method uses and how different
methods use different dialects of the same techniques, varying  the
notation and introducing new concepts. It uses examples to show how
the same system is expressed  in  different  ways  by  the  various
methods.  The  tutorial also compares the design approach advocated
by each method.

Martin Fowler is an independent consultant providing education  and
training  in  analysis  and design, object technology, and clinical
health care systems to a range of clients in  Europe  and  the  US.
Over  the  last few years his principal work has been in developing
and implementing an object-oriented model to integrate health  care
systems for the UK National Health Service.


S3  PAUL HARMON & CURTIS HALL, O-O Strategies & Intelligent
    Software Strategies (USA)
    Object-Oriented Tools and Environments
    Tuesday, August 3, 8:00-12:00

This tutorial is intended for managers and  developers  seeking  an
overview  of  the  yet  fast growing OO CASE market.  This tutorial
provides participants with  a  survey  of  the  basic  technologies
involved  in  conventional CASE and 4GL products, OO technology and
expert  system-based OO CASE tools.  It examines products  in  each
category,  explores  the  relationship  between  OO CASE  products,
OO operating systems, languages and databases, and reviews  current 
OO methodologies. The tutorial concludes by attempting  to  project 
the  technology  and  the  positioning  of likely  OO CASE products 
that will become available in the next few years.

Paul Harmon  is  editor  of  the  Object-Oriented  Strategies   and
Intelligent  Software  Strategies  Newsletters.  He  has  written a
number of books on expert systems,  and  is  currently  working  on
books  on  Software Development Technologies for the Nineties (with
Curt Hall) and on successful corporate object-oriented applications
(with David Taylor). He has given keynotes at several international
conferences, and numerous tutorials at IEEE and AI conferences. 

Curtis Hall is  associate  editor  of  Object-Oriented   Strategies
and Intelligent  Software Strategies  newsletters. He has done most
of  the  research  on  companies  and  new  technologies  for  both
newsletters  over  the  past  two  years.  He  also  manages Harmon
Associates research surveys for private clients.
 
 
S4  FRANK MANOLA, GTE 
    Object-Oriented Databases
    Tuesday, August 3, 1:30-5:30

The application of database technology to new application  domains,
such as CAD/CAM, spatial data, software engineering, and multimedia
information, is an extremely active area of  database  development.
The  Object-Oriented Database System ((OODB) reflects an attempt to
combine the  capabilities  of  conventional  DBMSs  with  those  of
object-oriented  programming  languages,  in  order  to provide the
extended  DBMS   facilities   required   to   address   these   new
applications.   This  talk  describes  the application requirements
that led to the development of OODB technology, describes the basic
principles  of  OODB technology, and surveys the current commercial
products  and  developments.   The  talk  also  describes   current
activities  relating to object database standards, including X3H2's
object extensions to SQL, the Object Data Management Group's common
object  database  specifications, and the Object Management Group's
specifications for a general-purpose distributed object  management
architecture including object database facilities.

Frank  Manola  is  principal  member  of  technical  staff  at  GTE
Laboratories, where he is Principal Investigator of the Distributed
Object Management project.  Previously he was a computer  scientist
at  the  Naval  Research Laboratory, and at Computer Corporation of
America, where he worked on projects involving distributed database
technology  and  engineering and spatial database applications, and
was a major contributor to CCA's  Probe  OODB  project.   He  is  a
member  of  the  X3H7  (Object  Information  Management)  standards
committee, and IFIP Working Group 11.3 (database security).  He  is
also  a  member  of several journal editorial boards, has served as
Category Editor for ACM Computing Reviews, and  is  the  author  of
numerous technical publications.

E1, E2 MOHAMED FAYAD, Object Technologies, Inc. (USA);
     Louis  J. Hawn, McDonnell Douglas Aerospace Company (USA)
     Object-Oriented Experiences
     Monday, August 2, 8:00-12:00 (Part 1)
     Monday, August 2, 1:30-5:30  (Part 2)
 
This full day tutorial is designed to provide  both  technical  and
managerial  personnel  with an understanding of the object-oriented
concepts, techniques, discussion of problems and key  issues,  CASE
tool   support,   and  description  of  lessons  learned  from  the
application of five object-oriented methods on various projects and
real  applications.  This  tutorial  will  teach how the methods of
Coad-Yourdon, Colbert, Firesmith, Rumbaugh and  Shlaer-Mellor  have
been applied to real-time system applications. It will teach how to
overcome the problems and how to deal with the key issues  in  each
of  these  object-oriented  methods. Participants will find out the
actual lessons learned from each of these O-O approaches  and  CASE
tools  used on different applications.  They will further learn how
to evaluate and select O-O approaches and CASE  tools  for  certain
projects.  This  tutorial  is  intended  for  a  broad community of
computer and software professionals involved in the management  and
development of software projects.
 
Mohamed Fayad is founder of  Object  Technologies,  Inc.  (OTI),  a
training, consulting, R & D and publishing firm based in St. Louis,
Missouri.  He  served  as  a  principal  specialist   on   software
engineering  at  McDonnell  Douglas  and was actively involved in a
number of major projects, such as Mission Generation Systems  using
Shlaer-Mellor's  OOA  &RD and Hardware-In-The-Loop Simulation using
Colbert's OOSD method for the  Advanced  Cruise  Missile,  software
modeling  for  the Low  Cost Core Guidance Systems using Rumbaugh's
OMT.
 
Louis J. Hawn is a senior software engineering manager at McDonnell
Douglas Aerospace Corp. His  responsibilities  include research and
development of object-oriented software engineering  processes  for
both   management   and   software   development.   His  experience
additionally  includes  management  and  development  of   numerous
O-O  software  projects, including the Tomahawk  Operational Flight
Software,  Advanced Cruise   Missile Simulations, and  the  Thirsty
Saber Ladar Automatic Operational Flight Software.
 
 
 
E3  CLAUDE BAUDOIN, National Semiconductor Corp. (USA)
    GLENN HOLLOWELL, SEMATECH (USA)
    Realizing  the  Object  Life-Cycle: An Industry View
    Tuesday, August 3, 8:00-12:00
 
Industrial developers, users and buyers of  computer  systems  have
always  faced a bewildering array of choices, but rampant claims of
"object- orientedness" make  it  even  harder  nowadays  to  select
methods   and  components  and  effectively  insert  them  into  an
enterprise's information systems.  As a result, introducing  object
technology  is  sometimes delayed,   or not as   successful   as it
should be.    We will  describe  a comprehensive  approach  to  the
use  of  currently  available  object  technology  in an industrial
environment, including both  the  execution  environment  ("message
bus"   products,   OMG  technologies   etc.)  and  the  development
environment  (process,  analysis   and   design   methods,   tools,
framework-based software engineering environments, reuse),   based
on the experience developed by the SEMATECH consortium since  1989.
Examples  of  early  application  of object technology to computer-
integrated manufacturing (CIM) will be provided.
 
Claude BAUDOIN is a senior staff member at  National  Semiconductor
in  Santa  Clara,  California, where he plays the role of a systems
technology consultant  for  the  Computer-Integrated  Manufacturing
(CIM)   group.    His  current  projects  include  defining  a  CIM
architecture and  a  set  of  supporting  standards,  developing  a
strategy   for   "object-oriented   enterprise   integration,"  and
contributing  to   the   work     of   SEMATECH.  He    holds    an
Engineer degree from Ecole Polytechnique in Paris, and  a  Master's
degree in Computer Science from Stanford University.
 
Glenn Hollowell is a senior member of the research staff  at  Texas
Instruments.   Since  mid-1992,  he is on assignment to SEMATECH in
Austin, Texas, which he represents in  industry  consortia  (Object
Management  Group and Open Software Foundation) and in ANSI and ISO
accredited standards committees.  The  focus  of  his  work  is  to
transition object technology to industrial practice, and has a book
on this topic in preparation for publication in mid-1993.
 
E4  CRAIG BRANDIS, Arete Research (USA)
    An OO  Case  History: Large System Design Using C++
    Tuesday, August 3, 1:30-5:30
 
This tutorial presents a case history of a five year, multi-million
line  C++ project at Mentor Graphics Corporation undertaken between
1987 and 1992. The topics  covered  will  include  a  case  history
overview  (a new generation of CAD tools based on reusable objects;
$75M  investment  in  reusable  C++   class   libraries;   50   new
applications  based on the reusable classes). It will further cover
O-O design issues, project management,  implementation  issues  and
lessons learned.
 
Craig Brandis is a software consultant with Arete  Research.  Prior
to  that  he worked for Mentor Graphics Corporation for five years.
He was a GUI software engineer working on a C++ based GUI  toolkit,
and  then  a  product  and  technical  marketing engineer for a CAD
software framework product.   Prior  to  that  he  was  a  graphics
software   engineer  for   Microfield Graphics.   He  has  an  MSCS
from  the Oregon Graduate Institute.


M1  JEAN-MARC  NERSON,   SOL  (France)
    Object-Oriented Project Management
    Monday, August 2, 8:00-12:00

The successful use  of  object-oriented  techniques  in  production
environments does not only imply changes in development techniques,
but  also  requires  new  approaches  to  project  management,  and
allocation  of  human  and  technical  resources.   Progress can no
longer be assessed solely   in  terms of lines of code; reusability
and  long-term  goals  take  on  a much important role; traditional
models  of  the  software  life-cycle  no  longer  apply;  accepted
distinctions   between   the   tasks  involved  (analysis,  design,
implementation, maintenance) give way  to  new  definitions.   This
seminar,  meant  for software decision makers, project managers and
senior software personnel, presents  an  up-to-date  and  practical
description of the project manager's task in developments that have
adopted  object-oriented  technology.  It  is  based  on  extensive
experience  in developing object-oriented projects, having resulted
in the production of thousands of successful classes, and  in-depth
input from numerous project leaders in various application fields.

Jean-Marc Nerson is Director of SOL (Paris). He  holds  a  Master's
degree  in  engineering  from  ENSEEIHT,  a Ph.D. from  ENST, and a
business-administration   degree   from    IAE    (Paris-Sorbonne).
Currently  Dr.  Nerson  is  the  main consultant on object-oriented
technology   in   the   European   Economic   Community's  BUSINESS
CLASS  Esprit  II Project, a 640 man x months effort and one of the
largest O-O projects in the world.


M2  WILL TRACZ, IBM Federal Systems Company (USA)
    The Realities  of Institutionalizing  Software Reuse
    Monday, August 2, 1:30-5:30

Software reuse is a means to an end (achieving substantial  quality
and productivity improvements) and an end in itself (before you can
reuse software there needs to be software to reuse).  This tutorial
analyzes  the  factors that need to be addressed when transitioning
software reuse into practice,  and  describes  recent  advances  in
software engineering technology (e.g., domain analysis, hypermedia,
and O-O techniques) that facilitate reuse.  Attendees  will  become
aware  of  the  non-technical  and technical inhibitors of software
reuse by examining  key  aspects  of  successful  and  unsuccessful
commercial  reuse  efforts.  The tutorial will emphasize the Three-
P's of software reuse: product, or what do you reuse,  process,  or
when  do you apply reuse, and finally personnel, or who makes reuse
happen.  A small domain analysis case study will  be  presented  to
illustrate design and implementation reuse guidelines.

Will Tracz is  senior programmer at the Oswego  Laboratory  of  the
IBM  Federal  Systems  Company  where  he  is  currently  Principal  
Investigator on the Domain-Specific Software  Architecture, Avionic
Domain  Application Generation Environment Project. He is  a member
of  IBM  Corporate    Reuse Council,  IBM    FSC  Reuse    Steering
Committee,  and  IEEE Subcommittee on Software Reuse advisory board
as  well  as   editor of the IBM Reuse Newsletter and column editor
for IEEE   Computer.    He is   the author  of the  book  "Software
Reuse:  Emerging  Technology",  published  (1988)  by IEEE Computer
Society Press.
 
 
M3  BRIAN  HENDERSON-SELLERS, Univ. of New South Wales (Australia)
    Object-Oriented Metrics
    Tuesday, August 3, 8:00-12:00

The use of metrics in project  management  of  a  software  systems
development  is  an essential component of developing a competitive
advantage based on quality products. In this tutorial the need  for
both  process and product metrics will be explored at all phases in
the life cycle. Traditional metrics will be evaluated as candidates
for  use  in  managing  software  developments  based on the object
paradigm and the need for new metrics  to  describe  the  iterative
development  process  and  the  new  structures  (e.g. inheritance,
services) unique to object technology will  be  highlighted.  Reuse
within  the  object-oriented  framework  will  be evaluated using a
cost-benefit approach.

Brian Henderson-Sellers is associate professor at  the  University
of  New South  Wales. His  current  research   interests   include
O-O  development, methodologies and notation;  implementations  of
the   O-O  paradigm  in   the  commercial  environment   (metrics,
project management  and  migration  paths); environmental decision
support and simulation modelling. He is  Convener   of  the O-O
Special  Interest  Group of  the  Australian  Computer  Society
(NSW Branch,  author  of  the  introductory  text  `` A  Book  of
Object-Oriented  Knowledge  (Prentice Hall, 1992)'', and Regional 
Editor of the new journal Object-Oriented Systems. 


 
M4  SALIL DESHPANDE, Semaphore Training & Customware (USA)
    CORBA: Its Goals and Impact on the O-O world
    Tuesday, August 3, 1:30-5:30

This tutorial introduces the OMG's Object  Management  Architecture
(OMA),  which includes the CORBA, the Interface Definition Language
and its mappings to various languages, and the  Dynamic  Invocation
Interface. It discusses features of various styles of communication
(client/server,   peer/peer,  etc.)  and  service   invocation.  It
devotes a case study to the design of two  distributed applications
using CORBA-compliant  interfaces.  The  tutorial compares products
from commercial  vendors,  evaluates  their  conformance  and their
applicability in the real world, and discusses the impact of CORBA
on the OO World.

Salil Deshpande is a senior  consultant  for  Semaphore  and  chief
technical   officer  of  CustomWare.  He  has  extensive  technical
expertise in distributed applications and  object  technology,  and
has  developed software for leading technology companies, including
Sun Microsystems, Hewlett Packard, General  Electric,  Booz  Allen,
and others.


T1  SERGIU SIMMEL, Penobscot  Development Corporation 
    Implementing Object  Persistence  and  Visibility with Kala
    Monday, August 2, 8:00-12:00

Kala   is    a  Persistent   Data   Server   managing   distributed,
shared,  arbitrarily    complex  and  evolving persistent data.  It
handles   the  transfer   of   object   data  between   memory  and
persistent   stores, as well as the visibility of persistent object
data    to  its  clients.  The  model   supports   any   model   of
transactions, versions, access control, security and configurations.
This tutorial  will introduce  programmers  and technical  managers
to the  Kala  model and paradigm,  as well as its  API,  through  a
series  of  practical  examples. It will demonstrate how  to build,
with  little  code,   visibility  models  that  match   application 
semantics,   and   will  discuss   how  the  approach  provides  an
alternative to such conventional approaches as files and (O)DBMS.

Sergiu S. Simmel is President  and  CEO  of  Penobscot  Development
Corporation  of  Cambridge, Massachusetts -- a supplier of software
products and services for persistent data  management.  Mr.  Simmel
has  been  with  the  Kala project for over six years, and has been
one of the two co-designers for the product. He has been a software
engineer  and manager  for over  12 years in  CASE systems,  visual
languages, and reverse engineering. He holds a M.S. in Computer and
Information Sciences from University of Minnesota.



T2  BERTRAND  MEYER,  Interactive   Software   Engineering   (USA)
    Systematic Concurrent Object-Oriented Programming
    Monday, August 2, 1:30-5:30

How can the object-oriented model cover concurrent  programming  as
effectively  as it addresses sequential computation?  This tutorial
will present  an  overview  of  the  major  current  approaches  to
concurrent  object-oriented computation and introduce a method that
addresses the problem through a minimal adaptation to the  standard
mechanisms  of  object-oriented  programming.   The  method uses an
explicit   notion   of   processor,   explicit   declarations   for
``separate''  entities,  a  special  semantics for preconditions on
routines handled by different processors,  and  ``lazy  wait''  for
implicit  resynchronization.   It  handles shared memory as well as
loosely coupled systems and even (in a degraded  form)  coroutines.
The   presentation   will  explain  how  the  goals  of  systematic
development determine the solution to  the  problem  of  systematic
concurrent  object-oriented  programming,  based  in  particular on
strict application of the  Design  by  Contract  view  of  software
construction.  It  will  illustrate the result through a number of
examples borrowed from diverse application  areas  of  concurrency:
resource  sharing,  distribution,  locking, real-time applications.

Bertrand Meyer is president of ISE (Santa Barbara)  and  editor  of
Prentice Hall's Object-Oriented Series. He is the author of several  
books on  object-oriented  technology  and  programming  languages.


 
T3  FREDERIC  DERAMAT,  Interactive  Software  Engineering   (USA)
    Building Object-Oriented Graphical Applications
    Tuesday, August 3, 8:00-12:00

The tutorial shows how the repetitious tasks of building  graphical
applications  can  be replaced by more intuitive methods based on a
rigorous  visual model.  It presents a concise  mathematical  model
and  shows how a practical graphical application building  tool can
be derived from that model. In particular the tutorial explores how
objects  can  be used to express proper abstractions of the logical
entities naturally involved in any graphical application.  It  also
shows  how notions inherent to the object-oriented paradigm such as
reusability  through  inheritance  may  be  used  in  a   graphical
development framework.

Frederic  Deramat  is   senior  engineer  at  Interactive  Software
Engineering  and  has  been  leading  the  development of graphical
object-oriented applications such as ArchiText and EiffelBuild.  He
holds  a  Master's  degree  from  ENST, France.  In addition to his
development work, he has given tutorials and  training  classes  on
various aspects of object-oriented programming.


T4  RAIMUND K. EGE, Florida International University (USA)
    Beyond Frameworks: Object-Oriented Application Development
    Tuesday, August 3, 1:30-5:30

This tutorial puts the elements of object-oriented development into
perspective.   It  discusses  the  nature of OO development at each
stage in the life cycle.  A common object model  forms  the  thread
from analysis, to design, and to an implementation. The recognition
(and re-use) of frameworks is very important,  as  is  the  use  of
libraries and object-oriented components of an implementation.  The
second  emphasis  of  the  tutorial  is  on  the  organization  and
architecture   of  the  resulting  implementation.  The  choice  of
programming  languages  impacts  on  the  selection  of   component
libraries,   user  interface  systems,  and  data  base  management
systems.  As example  serves an object-oriented,  database-centered
CAD/CAM  system  for concurrent engineering.
 
Raimund K.  Ege,  author  of  "Programming  in  an  Object-Oriented
Environment"  (Academic Press, 1992), has presented many successful
tutorials  on  object-oriented  concepts  at  major   international
conferences.  He received his Ph.D. degree in computer science from
the Oregon Graduate Institute of Science & Technology in 1987.   He
is  currently  associate  professor of  computer science at Florida
International  University,  Miami,  Florida.  He   is   an   active
researcher  in  the  area  of  object-oriented  concepts, and their
application to programming, user interfaces, databases,  simulation
and software engineering.
 
 
A1  DONALD G. FIRESMITH,  President  Advanced  Software  Technology
    Specialists  (USA)
    ADM4: an Object-Oriented Development Method  for Large, Complex
    Real Time Systems
    Monday, August 2, 8:00-12:00

This tutorial will first introduce some  fundamental  concepts  and
six   object-oriented   models   (i.e.,   assembly,   object/class,
inheritance, control, state, and  timing),  associated  diagramming
techniques,  and  version  2  of the OOSDL specification and design
language. It will also present  the  development  process  of  ASTS
Development  Method  4  (ADM4) including the steps of each activity
(i.e., Requirements Analysis  and  Logical  Design,  Implementation
Design,  Coding  and  Unit  Testing,  Subassembly  Integration  and
Testing, Assembly Integration and Testing).  The  ASTS  Development
Method  4  (ADM4)  is a fourth-generation, object-oriented software
development  for  use  on  large,   complex,   real-time   projects
implemented   in  object-oriented  languages  (e.g.,  C++,  Eiffel,
Smalltalk) or object-based languages (e.g., Ada and Modula 2)  that
at  least  minimally  support  the  implementation  of  objects and
classes.   The  tutorial  emphasizes  the  application  of   modern
software  engineering  to  the  analysis  and  language-independent
design of large, complex, and even real-time systems such as  those
developed  in  the  aerospace, telecommunications, process control,
and defense domains. Early versions of the method have been  taught
to  over  2000  developers  in  the  United States, Canada, Western
Europe, New Zealand, and Australia since 1987.

Donald Firesmith is  president  of  Advanced   Software  Technology
Specialists  (ASTS),  an  object-oriented training, consulting, and
IV&V  company  and  Director  of  Object  Technology  at   Software
Consulting Specialists (SCS), a small software development company.
He is the  author  of "Object-Oriented  Requirements  Analysis  and
Logical  Design:  a  Software Engineering Approach" (Wiley and Sons,
1993)  and "Object-Oriented  Methods,  Standards, and   Procedures"
(Prentice  Hall,  1993).  He is the developer and maintainer of the
ADM development method  and  the  OOSDL  specification  and  design
language.
 
 
A2  BRIAN HENDERSON-SELLERS, University of New South Wales
    MOSES: Methodology for Object-Oriented Software Engineering  of
    Systems
    Monday, August 2, 1:30-5:30

The Methodology for Object-oriented Software Engineering of Systems
(MOSES) is a full life cycle methodology which has evolved from the
object-oriented methodological framework of the O-O-O  methodology.
It  has been extended and refined to the new and mature methodology
presented here.  MOSES provides  an  analysis/design/implementation
methodology  supported  by  good  graphical  and  textual notations
(using the Extended  Uniform  Object  Notation)  that  reflect  and
support  object-oriented  concepts at all stages of the life cycle.
The advantages  of the  methodology are that it:

o provides modern software engineering support  for  large  object-
  oriented systems development;
o provides a consistent underlying model  and  development  process
  that supports a  smooth  transition from analysis-phase modelling
  through to implementation;
o provides  a   development  environment  for  more   flexible  and
  extendible systems;
o provides guidelines for project and product management;
o supports development of more reusable object classes, systems and
  designs;
o underpins the software development with a quality objective.

MOSES is described in a forthcoming book to be published in 1993 by
Prentice Hall.

 
A3  REINHARD PATELS,  Siemens  AG  (Austria)
    OOSEM  -  A  Complete Development Process for O-O software
    Tuesday, August 3, 8:00-12:00

There are many different   methods   in   use   for   O-O  software
development,   but   almost   none  of  them  covers  the  complete
development process (analysis,  design,  realization,  application,
project-management,   quality-assurance, configuration-management).
There  are  also few strategies for testing.   The tutorial gives a
survey of OOSEM   (Object-Oriented    System   Engineering Method),
a  method  comprising  a  set  of  guidelines  covering  the  whole
life-cycle of O-O software development. This life-cycle is  divided
into  several  phases  (start,  analysis,  class-design, subsystem-
design,  class-specification,  class-implementation,   integration,
system   test,  product-acceptance  and  application),  each  phase
describing  by  its  requirements,  activities  and  results.   The
project-management  has to decide in what order which phases to use
and which technical activities to  perform.  The  quality-assurance
has  to  decide  which activities to plan and/or to perform to make
sure that all quality  requirements  are  supported.  You  will  be
informed how to perform project-control. A small case study is used
to explain the methodological steps.

Reinhard  Patels  studied   computer science   on   the   Technical
University  of  Vienna  (Austria). He got in contact with graphical
data-processing (including graphical user-interfaces) and  software
development  by  Ada. His scientific work during the study had this
for subject. Employed with Siemens Austria (Division PSE -  Program
and  System Engineering) since 1987 he has been working on software
development methods and tools. Since 1992 he is  a  member  of  the
Quality   Assurance   Department   (PSE  QS)  responsible  for  O-O
methodology.
 
 
A4  MEILIR  PAGE-JONES,  Wayland  Systems,   Inc.   (USA)
    Object-Orientation  and  Structured  Techniques:
    Where they overlap; where they conflict
    Tuesday, August 3, 1:30-5:30

OO has been termed a revolution. But how much does it overturn  the
principles  of  Software  Engineering  that  were successful in the
1970s and 1980s?  Although some radicals  answer  "completely"  and
some  dinosaurs  answer  "not  at  all",  the  truth  probably lies
somewhere in between.  How does  the  structure  of  an  OO  system
differ  from  that of traditional systems?  Is there a notation for
depicting OO systems that's compatible  with  traditional  systems?
Does OO allow us to dispense with analysis and design?  Some of the
other issues that will be explored in the  tutorial:  Partitioning:
OO  versus events.  Coupling and cohesion: are they still relevant?
CASE tool requirements.  Top-down or bottom-up?  Demands imposed by
reusability.

Meilir Page-Jones is president and senior consulting  methodologist
at  Wayland  Systems  Inc.  in  Bellevue,  WA.   He is co-author of
Wayland Systems' course on the Synthesis method of  object-oriented
system  development.  He is also author of two books "The Practical
Guide  to  Structured  Systems   Design"  and  "Practical   Project
Management",   numerous   articles   on   software  technology  and
management, together with courses on  structured  methods,  object-
oriented methods and software-project management.


10. PROGRAM COMMITTEE
--------------------

Chair: Raimund Ege, Florida International University

 Richard Bielak
 Bank of New York

 John Bruno
 UC Santa Barbara

 Dave Butler
 Limit Point Systems


 Brian Henderson-Sellers
 University of Technology, Sydney

 Paul Jatkowski
 Reuters Client Site Systems

 James McKim
 Hardford Graduate Center

 John Mitchell
 Stanford University

 Hiroshi Nishimura
 Lawrence Berkeley National Laboratories

 John Potter
 University of Technology, Sydney

 Wolfgang Pree
 University of Linz

 David Quarrie
 Lawrence Berkeley National Laboratories

 David Rine
 George Mason University

 Sergiu Simmel
 Penobscot Development Corporation

 Christian Stary
 Technische Universitaet Wien

 Anthony Wasserman
 Interactive Development Environment


Panels and workshops chair: Madhu Singh, Bellcore

11. PRACTICAL INFORMATION
-------------------------

Location:
    TOOLS USA is taking place on the  campus of  the University  of
    California at Santa Barbara.

Social program: the following  events  are available  to conference 
attendees at no extra cost:

    Beach Barbecue: August 2, 6:00-800
    Dinner and Concert: August 4, 6:30-8:00

Extra tickets are $20 for the barbecue and $30 for the dinner.
 
 
Registration fees

                                     Before June 25   After June 25

Tutorials only*                           $690.00         790.00
Conference only                           $360.00         420.00
Tutorials and Conference                  $980.00       1,120.00
Full Time Faculty (Tutorials only)        $450.00         500.00
Full Time Faculty (Conference only)       $250.00         300.00
Full Time Faculty (Conf. & Tutorials)     $690.00         790.00
Full Time Students (Tutorials only)       $200.00         250.00
Full Time Students (Conference)           $120.00         150.00
Full Time Students (Conf. & Tutorials)    $300.00         350.00
Symposium on Teaching Object Technology   $100.00         150.00

*For pricing on individual tutorials, please contact the
TOOLS organization (address below).
 
Prices include a  copy  of the  tutorial  notes  for  each  tutorial
attended, a copy of  the conference  proceedings  for all conference
attendees, breaks,  beach  barbecue on  Monday,  August 2, open  air
classical concert and  conference reception on  Wednesday,  August 4 
as well  as  free  access  to  the exhibit. Fee  must  be paid in US
dollars. Payment must be made by check, credit card or international
money order to  TOOLS USA 93   and accompany  the registration form.
The  "Before  June  25"  fee  only  applies  if  both  payment   and 
registration form are received before  June 25.  Substitutions  will 
be  accepted at any time.  Written  cancellations received by July 1 
will be liable  to  a  50  percent  service  fee.  After  this  date 
there will be no refund. 



LODGING:

Housing  is  available both in hotels  (off-campus) and in on-campus
student residences.

The  following  hotels are  available  for  off-campus registration.
Please make  reservations  directly with  the hotels, and  identify
yourself as a TOOLS attendee when registering:
 
    Four Seasons Biltmore Hotel, (805) 969-2261
    Sheraton Santa Barbara, (805) 963-0744
    Upham Hotel, (805) 962-0058
    Quality Suites, (805) 683-6722
    South Coast Inn, (805) 967-3200
    Holiday Inn, (805) 964-6241

Persons staying off campus are advised to have access to a car. There 
is a $5 daily charge for parking on campus.
 
In addition, TOOLS offers on-campus  housing  packages  as described
below. UCSB's lodging facilities overlook the ocean, and are located
within a five minute walk from dining and meeting facilities and the
beach.  Rest rooms and private  showers  are  located on each floor;
daily maid service is provided.  Campus parking   is included in the
packages.   Please  check  the  appropriate  box  on  the enrollment
application  to  reserve  space.  Confirmation  and information will
be sent upon receipt of enrollment.
 
A) Five Night Package - Single Occupancy/Shared Bath - $320.00
   Sunday-Thursday nights; breakfasts, lunches, dinners for 4 days.
 
B) Five Night Package - Double Occupancy/Shared Bath - $260.00
   Sunday-Thursday nights; breakfasts, lunches, dinners for 4 days.

C) Three Night Package - Single Occupancy/Shared Bath - $200.00
   Tuesday-Thursday nights; breakfasts, lunches for 2 days, dinners 
   for 3 days.
 
D) Three Night Package - Double Occupancy/Shared Bath - $160.00
   Tuesday-Thursday nights; breakfasts, lunches for 2 days, dinners 
   for 3 days.
 
E) Two Night Package - Single Occupancy/Shared Bath - $140.00
   Sunday-Monday or Thursday-Friday nights; breakfasts, lunches
   for 2 days, 1 dinner.

F) Two Night Package - Double Occupancy/Shared Bath - $110.00
   Sunday-Monday or Thursday-Friday nights; breakfasts, lunches
   for 2 days, 1 dinner.
 
Two-bedroom apartments are available for the week (Sunday, August 1
through Saturday, August 7), with no meals included, for $450.00.
 
TRAVEL ARRANGEMENTS:
Santa  Barbara   is  served   by  United/United Express,  American/
American Eagle, America West,  US Air  Express, Sky West,  and  the
Delta  Connection.  The  airport  is  less  than  five minutes from
campus  and  is  fifteen  minutes from downtown Santa Barbara. Free
shuttle  service  from  the  airport  to the campus is available by
calling (805) 893-2469  upon  arrival.

American  Airlines,  (800) 433-1790, Star number S1373UF,  has been
selected as the conference's preferred airline carrier for domestic
flights. For more  information, please contact International Travel
of Santa Barbara, (800) 383-2116.


TUTORIAL SELECTION
 
Please circle the tutorial(s) you wish to attend:
 

Monday, August 2

8:00-12:00     S1     E1     M1     T1     A1

1:30- 5:30     S2     E2     M2     T2     A2


Tuesday, August 3

8:00-12:00     S3     E3     M3     T3     A3

1:30- 5:30     S4     E4     M4     T4     A4


 
I wish to attend (check box):
 
| |  Conference
| |  Conference & Tutorial
| |  Barbecue at the beach
| |  Symposium on Teaching Object Technology
___  extra tickets at $20 each
| |  Conference Dinner
___  extra tickets at $30 each
 
PAYMENT
 
Tutorials: ________________________________    $ __________________
Conference: _______________________________    $ __________________
Symposium on Teaching Object Technology        $ __________________
Lodging: Package A , B, C, D, E, F (check one) $ __________________
Apartment                                      $ __________________
                                         Total $ __________________
 
/ / Check or International money order
/ / VISA     / / Mastercard   / / American Express
 
Card Number _______________________________ Exp.  ____________________
 
Authorized
 Signature ___________________________________________________________
 
/ /  My company is interested in exhibiting. Send Call for Exhibitors
     by / / e-mail    / / post.
 
   Name and address
 
Name _______________________________________________________________
 
Company
 Name ______________________________________________________________

Company
 Address ___________________________________________________________
 
City _______________________________ STATE ____________ ZIP __________
 
Phone ____________________________   Fax ___________________________
 
 
Send payment & registration form to:

    TOOLS USA 93
    Attention: Krebs Convention Management Services
    Pioneer Square, Suite 220
    555 De Haro Street
    San Francisco, CA 94107 (USA)

(The registration form can be sent by e-mail to the address below.)
 
For further information, or to obtain a paper copy of this program,
please contact the TOOLS organization committee, phone (805) 685-1006,
fax (805) 685-6869, e-mail <tools@tools.com>.




======================================================================= 49 ===
Date:    Thu, 27 May 1993 15:27:38 GMT
From:    ap88431@cs.tut.fi (Porma Asmo Ari Juhani)
Subject: Problems with m3-2.11



I have installed modula3-2.11 and I have tryed to test it...
(I am starting to use modula3 ;)

Problem is following....

I wrote example program from the Doctor Db's article concerning
Modula-3 and then I tried to compile program and I get following
error messages....

> m3 -make -why -o laske FieldList.i3 FieldList.m3 Sum.m3

new source -> compiling FieldList.i3
version stamp mismatch: FieldList.Public
  <a98fc8ae3e78a9c9>
     FieldList.i3  FieldList.m3  
  <0ab401163f98fa09>
     FieldList.i3  
version stamp multiply defined: FieldList.Public:
  <a98fc8ae3e78a9c9> in FieldList.i3
  <0ab401163f98fa09> in FieldList.i3
version stamp mismatch: FieldList.T
  <112d3c3521ba363f>
     FieldList.i3  FieldList.m3  
  <ee23966e38a9f61c>
     FieldList.i3  
version stamp multiply defined: FieldList.T:
  <112d3c3521ba363f> in FieldList.i3
  <ee23966e38a9f61c> in FieldList.i3
version stamp multiply defined: FieldList.DefaultWS:
  <ee1a9a022fb6de78> in FieldList.i3
  <ee1a9a022fb6de78> in FieldList.i3
version stamp multiply defined: FieldList.Error:
  <6d150b812bd5fe56> in FieldList.i3
  <6d150b812bd5fe56> in FieldList.i3
 
Fatal Error: bad version stamps

--
/ap
--
Asmo Porma  (OH3MWG)         Tampere University of Technology
Keskisenkatu 6 A 7
SF-33710 Tampere, Finland    Internet: ap88431@cs.tut.fi



======================================================================= 50 ===
Date:    Thu, 27 May 1993 18:54:01 GMT
From:    adube@vlsi.polymtl.ca (Alain Dube)
Subject: Altered ZSplit with transparent children


     I want to create a variation of the ZSplit which paints the whole domain
of all of its children, instead of painting only the visible part of their
domain.  I use the same code as ZSplit.m3, but I have changed the Repaint
procedure in order to paint on the region corresponding to the whole domain.
The painting is also done from the lowest child to the top one. The lines
of codes within comments are the lines removed from the ZSplit's Repaint.

In ZSplit2.m3:

PROCEDURE Repaint(v: T; READONLY rg: Region.T) RAISES {} =
(*  VAR ch := v.succ(NIL); rgn := rg;*)
  VAR ch := v.pred(NIL); rgn := rg;
  BEGIN
    WHILE (ch # NIL) AND NOT Region.IsEmpty(rgn) DO
      WITH ur = NARROW(ch.upRef, Child) DO

(*        IF Region.OverlapRect(ch.domain, rgn) THEN
          VBTClass.Repaint(ch, Region.MeetRect(ch.domain, rgn));
          rgn := Region.Difference(rgn, Region.FromRect(ch.domain))
        END
*)

        VBTClass.Repaint(ch, Region.FromRect(ch.domain));
      END;
      (*ch := v.succ(ch)*)
      ch := v.pred(ch)
    END
  END Repaint;

When I've tested it, it didn't work as expected (was still painting only
visible part of the children's domain).  Is it because of the batching of
painting? I suspect that at the batch level, the region formed by the
intersection of the domains of all the batches is painted only by the latest
one.  Will I have to make changes to the PaintBatch procedure as well?



======================================================================= 51 ===
Date:    Thu, 27 May 93 23:36:20 GMT
From:    msm@src.dec.com
Subject: Re: Altered ZSplit with transparent children

Date: Thu, 27 May 93 16:36:15 -0700
X-Received: by godot.pa.dec.com; id AA14985; Thu, 27 May 93 16:36:15 -0700
X-Received: by src-news.pa.dec.com; id AA00922; Thu, 27 May 93 16:36:16 -0700
X-Mts: smtp


In modifying the Repaint code, you made things a bit aggressive, 
by forcing a repaint of the entire child domain; if all the VBTs 
you're using correctly clip painting to the desired region, you'll 
be OK.  (If you know that your VBTs never paint asynchronously, you 
could use a PaintBatch procedure that clipped all painting to a given 
region -- now THAT would be fun!)

Yes, the PaintBatch procedure implements clipping.  If you remove 
the override of the paintpatch procedure altogether, you should get 
more-or-less what you want; that will avoid clipping output based 
on the overlapping geometry.  You might want to clean up some of 
the other procedures to avoid computing the clipping regions, but 
this will be a start.

You'll also have to make sure that you don't try to use the old domains 
in reformatting; if you do try, you'll wind up with a mess, because 
the computations are careful to avoid doing much of anything.

In general, writing a non-clipping version of ZSplit should be relatively 
trivial: you need to send off repaints in back-to-front order, and 
reshapes, and other than that, it's going to be basically a default 
ProperSplit.T: you don't need to worry about event propogation, because 
MouseSplit will do that for you.  You don't need to worry about painting, 
because clipping to the window boundaries will happen for you, and 
you don't want clipping by obscuring windows to happen.  Your shape 
procedure is just about the only thing you would really need to implement, 
other than NewChild, and appropriate methods for inserting and deleting 
and restacking children.

Mark


======================================================================= 52 ===
Date:    Sat, 29 May 1993 10:06:34 GMT
From:    mail_tusler@uqvax.cc.uq.oz.au (DYLAN TUSLER, COMPUTER SCIENCE)
Subject: UNIX.I3 HELP NEEDED DESPARATELY

HELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELPHELP

I'm looking desparately urgently for something, anything at all on the
SRC modula-3 library Unix.i3.

I need to implement stickybits in order to copy a directory of files
(discriminating and deliberately ignoring executable files) to another
directory, execute a unix command (any command, even a script file if
necessary) under the ownership of the owner of the file.

Any help would be appreciated, including information on procedure
syntax and examples of use for the Unix.i3 interface.

I have reasonably limited knowledge of Modula-3, for reference I have
Harbison, Nelson, and a few DEC books on X-Programming.

Not all our man pages were installed, so don't count on anything being
there coz I've looked already. My supervisor is overseas, my tutor
is too busy/virtually unreachable and I have to do this soon. I've raided
all the bookshelves I can get my hands on, but to no avail. The most
detailed reference I've got is the Unix.i3 interface itself.

Please mail me at the address below or PREFARABLY at

s314262@cello.cs.uq.oz.au

or if that doesn't work try omitting the cello.

THANKYOUTHANKYOUTHANKYOUTHANKYOUTHANKYOUTHANKYOUTHANKYOUTHANKYOUTHANKYOU

___________________________________________________________________________
DYLAN TUSLER                                          D.TUSLER@cc.uq.edu.au
COMPUTER SCIENCE
The University of Queensland                       Telephone +61 7 870 2861
Brisbane Qld 4072  AUSTRALIA                       Facsimile +61 7 870 2861


======================================================================= 53 ===
Date:    30 May 93 05:35:12 GMT
From:    fn00@gte.com (Farshad Nayeri)
Subject: Re: Problems with m3-2.11


Nice to see another person trying Modula-3...

In article <AP88431.93May27172738@kaarne.cs.tut.fi> ap88431@cs.tut.fi (Porma As
mo Ari Juhani) writes:

   > m3 -make -why -o laske FieldList.i3 FieldList.m3 Sum.m3

   new source -> compiling FieldList.i3
   version stamp mismatch: FieldList.Public
     <a98fc8ae3e78a9c9>
        FieldList.i3  FieldList.m3  
     <0ab401163f98fa09>
        FieldList.i3  
   version stamp multiply defined: FieldList.Public:
     <a98fc8ae3e78a9c9> in FieldList.i3
     <0ab401163f98fa09> in FieldList.i3

    [...]

   Fatal Error: bad version stamps

The reason is that Sam Harbison's FieldList module is now a part of
standard Modula-3 library (libm3). Look in your /usr/local/include/m3
and you will find it. The compiler is complaining because it has found
two versions of the same module (hence multiply defined version
stamps...)

The fix is easy, just use a different name other than FieldList for
your test module and interface.

Yes, "bad version stamps" is not a great error message and yes, folks
at SRC are working on making the compilation process easier (I am sure
;-).

Hope this helps, --farshad

--
Farshad Nayeri  |  Distributed Object Computing
  fn00@gte.com  |  GTE Laboratories, Inc., Mail Stop 62
 (617)466-2473  |  40 Sylvan Road, Waltham, MA 02254, USA


