======================================================================= 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 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 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@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 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 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@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 | 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 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 . ======================================================================= 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 FieldList.i3 FieldList.m3 <0ab401163f98fa09> FieldList.i3 version stamp multiply defined: FieldList.Public: in FieldList.i3 <0ab401163f98fa09> in FieldList.i3 version stamp mismatch: FieldList.T <112d3c3521ba363f> FieldList.i3 FieldList.m3 FieldList.i3 version stamp multiply defined: FieldList.T: <112d3c3521ba363f> in FieldList.i3 in FieldList.i3 version stamp multiply defined: FieldList.DefaultWS: in FieldList.i3 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@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 FieldList.i3 FieldList.m3 <0ab401163f98fa09> FieldList.i3 version stamp multiply defined: FieldList.Public: 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