======================================================================= 1 ===
Date:    2 Aug 1993 22:59:01 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Re: how do I port to OS2

If you want to start from the latest SRC Modula-3 release, you need to
read the last chapter of the documentation.  Unfortunately, there are
some omissions and errors in it.  Even more unfortunate, our own
environment has evolved quite a bit since then, to the point where I
don't remember how it worked.  I'll be happy to answer questions if I
can.

On the other hand, our next release should be easier to port,
especially to non-Unix systems.  Paul McJones has created a set of
interfaces that can be implemented on different systems (we have
implementations for unix and windows-nt) and isolate the application
from many system-dependencies.  Many of the dependencies on other
tools (cpp, awk, sed) have been eliminated.  We also intend to provide
a better description of the steps of cross-compilation.  This release
also introduces a separation between the front-end and the back-end.
Because of the scope of the changes, we have no target date for this
release, and it will certainly take a few iterations to reach a system
comparable to the current release.

-- 
Eric.



======================================================================= 2 ===
Date:    2 Aug 1993 15:32:17 -0700
From:    mhb@src.dec.com ("Marc H. Brown")
Subject: Answers to questions about Zeus and friends

Date: Mon, 02 Aug 93 15:32:15 -0700
X-Received: by ash.pa.dec.com; id AA10070; Mon, 2 Aug 93 15:32:15 -0700
X-Received: by src-news.pa.dec.com; id AA13753; Mon, 2 Aug 93 15:32:16 -0700
X-Mts: smtp


On 23 July 1993, Arnulf Mester posted 8 messages to comp.lang.modula3 
asking a variety of questions about Zeus and friends. Here are the 
questions and the answers. Actually, I don't know the answer to the 
last question and one of the questions was already answered.


    > Subject: ViewportVBT-question: ScrollTo coordinates?
    >
    >    What values I have to use in the ViewportVBT for ScrollTo?
    >    The documentation requests coordinates as Rect.T.
    >    I suspect that it does not want world coordinates (0-1,0-1),
    >    neither domain ranges (visible region of VBT).

A ViewportVBT is a multi-filter that displays (part of) its child VBT. 
The structure of a ViewportVBT is roughly

    (VBox (HBox VScroller child) HScroller)

That is, two scrollbar are placed around the child VBT, one to the 
left side and one below. The user can adjust what part of the child
is displayed by using these scrollbars.

The programmer can also force a particular part of the child to be 
displayed. To do so, use the procedure ScrollTo. The parameter "r" 
is what part of the child's domain should be visible. The ViewportVBT 
will do its best to position that region in the center of the ViewportVBT. 
The useful values of "r" are contained in Rect.T{0,h,0,v} where h 
and v are the preferred sizes of the child, in screen pixels. 

    
    > Subject: Zeus - Question: new window during animation?
    > 
    >    Does an possibility exist to interactively open a window
    >    (e.g. a view) during the running animation?
    >    Background: The user should be able to click on a specific portion of 
a
    >    system view to get detailed information about it.
    > 

I think you mean "can a new view be opened by clicking in the Zeus 
'views' browser while an algorithm is running?". The answer is YES. 
However, such views are not forwarded algorithm events until the 
next time the user says "GO". In other words, only those views that 
are on the screen when the algorithm begins to run get events from 
the algorithm. 


    > Subject: Zeus - Question: communication between views?
    >    According M.H. Brown, Zeus: A System for Algorithm Animation and 
    >    Multi-View Editing. Palo Alto, 1992 (pg.20) communication from
    >    program to views uses interesting events (IE) and from a view 
    >    to the program uses feedback events (FE).
    > 
    >    In a special setting here interesting events are sent from the
    >    Run-procedure to two different views. Both deliver feedback events to
    >    the appropriate procedures in the main program (FE ViewI, FE ViewII).
    >    According a special FE in ViewII a special action in ViewI should 
    >    happen. Therefore "FE ViewII" delivers an IE to ViewI.
    > 
    > ...
    >    Problem: apparently a "deadlocked" system.
    >    
    > ...
    >    Is there an elegant solution possible?
    > 

Yes. When an algorithm (*not* a view) responds to a Feedback event, 
it does so using an UPDATE event, not an OUTPUT event. The only difference 
is that UPDATE events assume LL=VBT.mu, whereas OUTPUT events have 
LL=0. This is probably ignored in SRC #75, but the documentation 
for Zeus goes over this. 

By the way, as part of the 1993 SRC Animation Festival, we prepared 
a set of graduated example programs. These will be the basis for 
a Zeus tutorial. Eric Muller is currently working on a new M3 release
that will get the outside world in synch with the SRC environment.


    > Subject: Question to VBTkit: reverse operation to ZSplit.Insert?
    > 
    >    Does a reverse operation to ZSplit.Insert exists, i.e.
    >    a function, which closes a window opened with ZSplit.Insert?
    > 

Allan Heydon answered this on comp.lang.modula3.     

    

    > Subject: Question to Zeus: interaction with panel?
    > 
    >    
    >    Q1: How can I control thread-processes, which are forked off from the 
RUN
    >        procedure, with the Zeus-Panel-Buttons STOP,STEP,ABORT ?
    >        Background: the forked processes are simulating a distributed algo
rithm.
    > 
    >    Q2: Is there a possibility to use the Zeus RUN,ABORT - Buttons 
    >        in the Run-procedure, analog to ZeusPanel.Pause(..)?
    > 

A1: Not without mucking around within Zeus.

A2: You can simulate the ABORT button by raising Thread.Alerted in 
the algorithm. To do a PAUSE followed by a "GO", you'd use 
ZeusPanel.BeginFeedback followed by ZeusPanel.EndFeedback. 

    
    > Subject: Question to Zeus: data types in evt-file?
    > 
    >    Is there a way to define data TYPE's in the *.evt file ?

No. You need to define TYPES in some external interface. You can
IMPORT it in your .evt file, however. I don't understand what problem
you had with defining an external interface Station.i3.
    
        
    > Subject: Zeus - Question: View-manipulation after animation end?
    > 
    >    Is there a possibility, that after ending an animation run,
    >    a specific view gets the input focus or the input focus could
    >    be moved to this view?
    >    Background: Certain views contain histories about the run
    >    and the user is able the toggle specific options of the view
    >    and to scroll within this history. After animation end 
    >    this scrolling unfortunately isn't possible any longer.
    > 
    >    Current solution: (non-elegant, but it works)
    >    Definition of a feedback event, which allows the Algorithm (Run)
    >    to terminate.
    > 

You should override the "endrun" method of the view to set itself
to be active (i.e., ReactivityVBT.Set(view, ReactivityVBT.State.Active);)
    
    > Subject: Thread - Question: reverse to yield?
    > 
    >    Is there a possibility that a thread gets (nearly) the whole
    >    processor time for a specific interval?
    >    (A sort of  reverse function to Thread.Yield();i)
    >    Stated in other words: That a thread is priorized over all others
    >    for a specific interval?
    > 

I don't know. 

   


======================================================================= 3 ===
Date:    Mon, 2 Aug 1993 18:53:31 GMT
From:    lancio@iro.umontreal.ca (Robert Lanciault)
Subject: Modula3 for 386BSD!

	I'am looking for the good evil who ported Modula-3 to 386BSD. Let me
know how to contact you!


						Robert Lanciault
						lancio@info.polymtl.ca

	Life is strange! has strange has the bug I'm looking for since
	I born in 1969! 


======================================================================= 4 ===
Date:    2 Aug 1993 22:40:48 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Re: Thread - Question: reverse to yield?

In article <1993Jul23.151047@tamfana.informatik.uni-dortmund.de>, mester@tamfan
a.informatik.uni-dortmund.de (Arnulf Mester) writes:

|>    Is there a possibility that a thread gets (nearly) the whole
|>    processor time for a specific interval?
|>    (A sort of  reverse function to Thread.Yield();i)
|>    Stated in other words: That a thread is priorized over all others
|>    for a specific interval?

The current implementation of threads on u*x systems does not support
priorities.

-- 
Eric.



======================================================================= 5 ===
Date:    3 Aug 1993 16:44:39 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Re: Interfacing Lex and Modula 3 Problem

In article <CB6sAu.E79@undergrad.math.uwaterloo.ca>, ctkierst@undergrad.math.uw
aterloo.ca (Caroline Kierstead) writes:

|> Breakpoint 3, AsmLine__Scan (line_info=0x12720) at AsmLine.m3:42
|> 42		   lexText := M3toC.CopyStoT(Lexer.yytext);
|> 2: nullCharStar = 0x0
|> 1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
|> (gdb) 
|> 
|> Program received signal 11, Segmentation fault
|> 0xf74f23c0 in strlen ()
|> 2: nullCharStar = 0x0
|> 1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>

It seems to me that the yytext you are displaying is not the same as
Lexer.yytext.  I guess that the Lexer interface should have:

<*EXTERNAL*> VAR yytext: Ctypes.char_star;

Is it what you have ?

-- 
Eric.



======================================================================= 6 ===
Date:    3 Aug 93 08:03:27 GMT
From:    skj@rb.icl.co.uk (Simon 'Linux' Johnston)
Subject: Re: Modula3 for 386BSD!

Robert Lanciault (lancio@iro.umontreal.ca) wrote:

: 	I'am looking for the good evil who ported Modula-3 to 386BSD. Let me
: know how to contact you!
: 						Robert Lanciault
: 						lancio@info.polymtl.ca

If you find them, let me know Im trying to do a Linux Port.


,------------------------------------------------------------------------------
.
| Simon K. Johnston - Development Engineer               | ICL Retail Systems, 
|
| ------------------------------------------------------ | 3/4 Willoughby Road,
|
| Unix Mail : S.K.Johnston.bra0801@oasis.icl.co.uk       | Bracknell, Berks,   
|
| Telephone : +44 (0)344 476320   Fax: +44 (0)344 476084 | United Kingdom      
|
| Internal  : 7621 6320    OP Mail: S.K.Johnston@BRA0801 | RG12 8TJ            
|
`------------------------------------------------------------------------------
'


======================================================================= 7 ===
Date:    Tue, 3 Aug 1993 14:01:41 GMT
From:    ctkierst@undergrad.math.uwaterloo.ca (Caroline Kierstead)
Subject: Interfacing Lex and Modula 3 Problem

I was asked to use lex to create a parser to be used by a Modula 3 program.
The problem I have is going from the C type of (char *) to the Modula 3 type
of TEXT.  The routine provided in the Modula 3 interface M3ToC blows up with
a segmentation fault which, as far as I can tell, shouldn't happen.
Does anyone have any ideas?

What follows is a script of the session:
----------------------------------Cut Here---------------------------

Script started on Fri Jul 30 14:38:15 1993
cs241_ctkierst@cayley[1]% cat test
; comment
	.global xref

name:	addi r1, r2, r3
	lwi 193
	lwi 0x54a ; comment
	.byte 2
cs241_ctkierst@cayley[2]% gdb T
(gdb) break AsmLine__Scan
Breakpoint 1 at 0x27dc: file AsmLine.m3, line 17.
(gdb) run < test
Starting program: /u1/cs241/software/dlxasm/test_lex/T < test

Breakpoint 1, AsmLine__Scan (line_info=0x12720) at AsmLine.m3:17
17	    CurrentState : States := States.Start;
(gdb) l
40		IF Lexer.EmptyYytext() # TRUE THEN		(* Convert the 
C string to a Modula 3 string *)
41		   (*lexText := M3toC.StoT(Lexer.yytext); *)
42		   lexText := M3toC.CopyStoT(Lexer.yytext);
(gdb) break 40
Breakpoint 2 at 0x291c: file AsmLine.m3, line 40.
(gdb) break 41
Breakpoint 3 at 0x293c: file AsmLine.m3, line 41.
(gdb) break Lexer__EmptyYytext
Breakpoint 4 at 0x256c: file Lexer.m3, line 6.
(gdb) c
Continuing.

Breakpoint 2, AsmLine__Scan (line_info=0x12720) at AsmLine.m3:40
40		IF Lexer.EmptyYytext() # TRUE THEN		(* Convert the 
C string to a Modula 3 string *)
(gdb) c
Continuing.

Breakpoint 4, Lexer__EmptyYytext () at Lexer.m3:6
6		   empty  : BOOLEAN := TRUE;
(gdb) disp yytext
1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
(gdb) s
4		PROCEDURE EmptyYytext () : BOOLEAN =
1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
(gdb) s
6		   empty  : BOOLEAN := TRUE;
1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
(gdb) 
8			IF yytext # nullCharStar THEN
1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
(gdb) disp nullCharStar
2: nullCharStar = 0x0
(gdb) disp empty
3: empty = 1 '\001'
(gdb) s
9				empty := FALSE;
3: empty = 1 '\001'
2: nullCharStar = 0x0
1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
(gdb) 
11			RETURN empty;
3: empty = 0 '\000'
2: nullCharStar = 0x0
1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
(gdb) 

Breakpoint 3, AsmLine__Scan (line_info=0x12720) at AsmLine.m3:42
42		   lexText := M3toC.CopyStoT(Lexer.yytext);
2: nullCharStar = 0x0
1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
(gdb) 

Program received signal 11, Segmentation fault
0xf74f23c0 in strlen ()
2: nullCharStar = 0x0
1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
(gdb) q
The program is running.  Quit anyway? (y or n) y
cs241_ctkierst@cayley[3]% cd /software/modula3/include/m3
cs241_ctkierst@cayley[4]% cat M3toC.i3
(* Copyright (C) 1989, Digital Equipment Corporation           *)
(* All rights reserved.                                        *)
(* See the file COPYRIGHT for a full description.              *)

(* File: M3toC.i3                                              *)
(* Last modified on Thu Mar 05 14:55:33 PST 1992 by muller         *)
(*      modified on Thu Jan 30 10:14:38 PST 1992 by kalsow         *)
(*      modified on Tue Apr 24 16:38:45 1990 by jerome         *)



UNSAFE INTERFACE M3toC;

IMPORT Ctypes;

(* The C null string "" *)
VAR
    nullString:  ADDRESS;

PROCEDURE TtoS (t: TEXT): Ctypes.CharStar;
(* Return a null-terminated C string with the same contents as t.  This
   may or may not copy.  The result should be passed to FreeS after
   it is irrelevant and before t is collected.  *)

PROCEDURE CopyTtoS (t: TEXT): Ctypes.CharStar;
(* Return a null-terminated C string with the same contents as t.  This
   copies t.  The result should be passed to FreeS after it is
   irrelevant.  *)

PROCEDURE FreeS (s: Ctypes.CharStar);
(* If s was copied from a text by TtoS or CopyTtoS, this frees the
   storage for s; if s was shared with a text by TtoS, this is a no-op.
   *)

PROCEDURE StoT (s: Ctypes.CharStar): TEXT;
(* Return a text with the same contents as the null-terminated 
   C string s. This may or may not copy.  The result may be
   invalid after s is freed. *)

PROCEDURE CopyStoT (s: Ctypes.CharStar): TEXT;
(* Return a text with the same contents as the null-terminated 
   C string s. This copies s. *)

PROCEDURE ItoP (t: INTEGER): ADDRESS;
(* Loophole a Modula3 INTEGER into a C Pointer *)

PROCEDURE RtoP (t: REAL): ADDRESS;
(* Loophole a Modula3 REAL into a C Pointer *)

PROCEDURE UtoP (t: Ctypes.UnsignedLong): ADDRESS;
(* Loophole a Ctypes.UnsignedLong into a C Pointer *)

PROCEDURE PtoI (t: ADDRESS): INTEGER;
(* Loophole a C Pointer into a Modula3 INTEGER *)

PROCEDURE PtoR (t: ADDRESS): REAL;
(* Loophole a C Pointer into a Modula3 REAL *)

cs241_ctkierst@cayley[6]% 
script done on Fri Jul 30 14:46:04 1993


--------------------------------------
Thanks!
-- 
Caroline Kierstead
CS 200 Level Lab Coordinator


======================================================================= 8 ===
Date:    Tue, 3 Aug 1993 15:59:29 -0400
From:    Caroline Kierstead <ctkierst@undergrad.math.uwaterloo.ca>
Subject: Re: Interfacing Lex and Modula 3 Problem

In article <23m4ln$i73@src-news.pa.dec.com> you write:
>
>In article <CB6sAu.E79@undergrad.math.uwaterloo.ca>, ctkierst@undergrad.math.u
waterloo.ca (Caroline Kierstead) writes:
>
>|> Breakpoint 3, AsmLine__Scan (line_info=0x12720) at AsmLine.m3:42
>|> 42		   lexText := M3toC.CopyStoT(Lexer.yytext);
>|> 2: nullCharStar = 0x0
>|> 1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>
>|> (gdb) 
>|> 
>|> Program received signal 11, Segmentation fault
>|> 0xf74f23c0 in strlen ()
>|> 2: nullCharStar = 0x0
>|> 1: yytext = 0x110b8 "; comment", '\000' <repeats 1014 times>INTERFACE Lexer
;
>It seems to me that the yytext you are displaying is not the same as
>Lexer.yytext.  I guess that the Lexer interface should have:
>
><*EXTERNAL*> VAR yytext: Ctypes.char_star;
>
>Is it what you have ?
>
Not quite.  The person who wanted me to do this project
provided a partial framework.  His Lexer.i3 looks like:

------------------------------------------------------------
INTERFACE Lexer;
IMPORT Ctypes;

(*
 * Call lex to find the next token.
 *)
<*EXTERNAL yylex:C*> PROCEDURE yylex() : Ctypes.Int;

(*
 * Define the null string so can tell if yylex returned a null string
 * or not.
 *)
<*EXTERNAL nullCharStar:C*> VAR nullCharStar : Ctypes.CharStar;

(*
 * Where lex puts the text that it has identified.
 *)
<*EXTERNAL yywrap:C*> VAR yytext: Ctypes.CharStar;

PROCEDURE EmptyYytext () : BOOLEAN;
END Lexer.
------------------------------------------------------------
Unfortunately, I'm not familiar enough with the EXTERNAL
pragma to be able to tell if this makes complete sense or
not.

Is this interface wrong then?

Thanks for your help!

Caroline


======================================================================= 9 ===
Date:    4 Aug 1993 05:56:11 GMT
From:    maverick@cairo.anu.edu.au ( )
Subject: I/O instrucn mystery

Can anyone tell me what's wrong witht the following segment of code:

...
VAR
   InputLine: TEXT;
   n: INTEGER;

...
Wr.PutText(Stdio.stdout, "Please input an integer: ");
TRY
   InputLine := Rd.GetLine(Stdio.stdin);
   n := Scan.Int(InputLine);
...
EXCEPT
   Scan.BadFormat => ...
...

When this prog is run, the result is it first sits there waiting for
input, do the conversion and then prompt the user! Why is the sequence
of instruction differ to what I had programmed?

looking forward for your help.

Vincent.


======================================================================= 10 ===
Date:    4 Aug 93 15:51:46 GMT
From:    temporary user <mm@oasis.icl.co.uk>
Subject: ICL modula-3 disctibution

I have now got a complete copy of the M3 2.11 source, this rounds out
at 85Mb compressed, and I am distributing 1/4" Tar-ed tapes within ICL
in the UK. If you are interested (and work for ICL then drop me a line
and Ill get back to you, for UK residents outside ICL who are interested
and can't FTP it from DEC, then you supply a 1/4" streamer tape and SAE
and I'll send you a copy to.
For ICL people interested I am creating a file containing details of all 
interested parties within ICL, please send me a mail, or phone and I'll
include you. I hope to distribute these details by Mail & News as soon
as I get it collated.


,------------------------------------------------------------------------------
.
| Simon K. Johnston - Development Engineer               | ICL Retail Systems, 
|
| ------------------------------------------------------ | 3/4 Willoughby Road,
|
| Unix Mail : S.K.Johnston.bra0801@oasis.icl.co.uk       | Bracknell, Berks,   
|
| Telephone : +44 (0)344 476320   Fax: +44 (0)344 476084 | United Kingdom      
|
| Internal  : 7621 6320    OP Mail: S.K.Johnston@BRA0801 | RG12 8TJ            
|
`------------------------------------------------------------------------------
'


======================================================================= 11 ===
Date:    4 Aug 1993 17:52:16 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Re: I/O instrucn mystery

In article <maverick-040893155347@dedmac8.anu.edu.au>, maverick@cairo.anu.edu.a
u ( ) writes:

|> When this prog is run, the result is it first sits there waiting for
|> input, do the conversion and then prompt the user! Why is the sequence
|> of instruction differ to what I had programmed?

Probably because Stdio.stdout is buffered.  Try inserting a "Wr.Flush
(Stdio.stdout);" after the Wr.PutText call.

-- 
Eric.



======================================================================= 12 ===
Date:    Wed, 4 Aug 1993 20:27:21 GMT
From:    anadig@otago.ac.nz
Subject: General background?

G'day.

I'm interested in Modula-3, but apart from the fact that its a descendant of
Modula-2 and object-oriented I can't find much information about it. As there
doesn't seem to be an FAQ for this group, can someone advise me where to find
out about the language in general. I'm a Mac programmer, so I'm particularly
interested in possible Mac implementations/ports.

Michael* Hamel
Analog Digital Instruments, Dunedin, New Zealand.


======================================================================= 13 ===
Date:    5 Aug 1993 20:55:02 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Re: Modula-3 Compiler

|> Can anyone tell me where I can ftp a Modula-3 compiler for a 286, 396  
|> or 486 Dos machine.

Look in gatekeeper.dec.com:pub/DEC/Modula-3/contrib/m3pc.

-----
Eric.



======================================================================= 14 ===
Date:    Thu, 5 Aug 1993 19:58:02 GMT
From:    kotmanm@birch.mcs.gvsu.edu (Matt Kotmanm)
Subject: Modula-3 Compiler

Can anyone tell me where I can ftp a Modula-3 compiler for a 286, 396  
or 486 Dos machine. I read through the FAQ and that didn't seem to  
have a location. I also looked through gatekeeper.dec.com and they  
did not have one either.

Can you please send your response to me via e-mail, as I do not read  
this news group frequently...or at least not near as frequently as I  
do my mail.

Matt Kotman
kotmanm@beech.mcs.gvsu.edu


======================================================================= 15 ===
Date:    5 Aug 93 21:53:50 GMT
From:    kasik@bcsaic.boeing.com (David Kasik)
Subject: Motif interfaces


Does anyone have Modula-3 versions of Motif headers?
E.g., Xm, PushB, RowColumn, etc.  I looked on archie for
Xm.i3 and didn't get a hit.  I've also been reading
here for some time and haven't noticed anything of the kind.

While we're at it, how about X11R5 or PEX?


Disclaimer:  Boeing has not decided exactly
how our disclaimers should read, but be assured
I do not speak for the company.

Harry G. George  george@garden.ca.boeing.com
BCAG Automated Software Analysis Group
(206) 237-6915       Mailstop: 6A-UA


======================================================================= 16 ===
Date:    Fri, 6 Aug 1993 11:15:14 GMT
From:    kirschnt@informatik.uni-muenchen.de (Torsten R. Kirschner)
Subject: Re: Modula-3 Compiler

kotmanm@birch.mcs.gvsu.edu (Matt Kotmanm) writes:

>Can anyone tell me where I can ftp a Modula-3 compiler for a 286, 396  
>or 486 Dos machine. I read through the FAQ and that didn't seem to  
>have a location. I also looked through gatekeeper.dec.com and they  
>did not have one either.

It's right there: gatekeeper.dec.com:/pub/DEC/Modula-3/contrib/m3pc
-r--r--r--  1 root     system    4127329 Feb  4  1993 djgpp.zip
-r--r--r--  1 root     system         62 Feb  4  1993 install.bat
-r--r--r--  1 root     system    2849855 Feb  4  1993 m3.tar.Z
-r--r--r--  1 root     system    6757325 Feb  4  1993 m3.zip
-r--r--r--  1 root     system       1062 Feb  4  1993 readme.1st
-r--r--r--  1 root     system      39353 Feb  4  1993 tar.exe
-r--r--r--  1 root     system      30226 Feb  4  1993 unzip.exe


Here'e the contents of the readme.1st file:
> To transfer PC-M3 with ftp to you system: 
> Transfer readme.1st (this file) and install.bat with ascii mode. 
> Transfer tar.exe, unzip.exe, djgpp.zip and m3.zip with mode binary.
> 
> To install PC-M3 on a PC:
> Copy tar.exe, unzip.exe, install.bat, djgpp.zip and m3.zip into your
> root directory. Type "install". That's it.
> 
> To run PC-M3 you need a i386 (or upward) processor and at least 2 MB         
                                             
> RAM (I recommend 4 to 8 MB RAM). For further information read the
> \m3\README after the installation. The system works with MS-DOS 5.0 -
> I have not tested MS-DOS 3.2 but it should work also (but I assume you
> will have problems with space on the disk partitions - see below).
> 
> Make sure that you have enough space on your hard-disk. You should have
> around 80 MB of free disk space to install PC-M3. You can delete the *.zip
> and *.tar files after installation. If you have problems with disk space
> you probably want another installation procedure (i.e. delete files) - 
> see install.bat what you have to do to install PC-M3.

Note that it does not work with i286-CPUs, though.

Torsten
-- 
Torsten R. Kirschner               Torsten.Kirschner@informatik.uni-muenchen.de
                                 Torsten.R.Kirschner@informatik.tu-muenchen.de


======================================================================= 17 ===
Date:    Sun, 8 Aug 1993 08:15:38 GMT
From:    jlz@sonata.cc.purdue.edu (Jian Zhen)
Subject: forth/fifth generation languages?


I have been talking with my friends about computer languages and he
mentioned terms such as "forth/fifth generation languages", since I am
a newbie on computers, I was wondering if someone could help me out on
explaning those terms to me.  What exactly are they?  What are the
difference between them?  and What are the first to third generation
languages?

If anyone knows any documentations on the net that explain these,
please let me know.  I really appreciate it.

Since I don't usually read these newsgroups very often, I would prefer
response by E-Mail to jlz@sonata.cc.purdue.edu and I will summarize if
it's necessary.

Thanks very much for all your help.

--
+---------------------------------------------------------------------------+
| Jian Liang Zhen          | Lifeforms are extinct on other planets because |
| jlz@sonata.cc.purdue.edu | their sciences are more advanced than ours.    |
|___________/---> Linux: There IS such thing as FREE lunch! <---\___________|


======================================================================= 18 ===
Date:    Sun, 8 Aug 1993 20:23:53 GMT
From:    fouts@cello.hp.com (Marty Fouts)
Subject: Re: forth/fifth generation languages?


first generation:	Raw machine code
  When computers were first "programmed" from an input device, rather
than by being rewired, they were fed input in the form of numbers,
which they then interpretted as commands.  This was really low level,
and a program fragment might look like
  010307
  010307
Almost no one programs in machine language anymore, because
translators are nearly trivial to write.
 
second generation:	Symbolic assembly language
  Somebody figured out that humans weren't really good at writing
programs this way, and tried to wrote one that translated symbols into
these numbers.  Second generation language for the same fragment might
be
   add r3, r7
   add r3, r7
most machine assembly languages fit this format

third generation:	"high level" languages
  Eventually it was figured out that even this was too close to the
machine, so they idea of expressing the program in a form easier for
a human to understand, including things like variables was developed.
The above fragment might be
    let c = c + 2 * d
in such a language.  Fortran, Algol and Cobal are early examples of
this sort of language.  Most "modern" languages (including C++) are
third generation.

fourth generation:	"application specific" languages
  The first three generations were developed fairly quickly, but it
was still frustrating, slow, and error prone to programm computers,
leading to the first "programming crisis", in which the amount of work
that might be assigned to programmers greatly exceeded the amount of
programmer time available to do it.  Meanwhile, a lot of experience
was gathered in certain areas, and it became clear that certain
applications could be generalized by adding limited programming
languages to them.  Thus was born report-generator languages, which
were fed a description of the data format and the report to generate
and turned that into a cobal (or other language) program which
actually contained the commands to read and process the data and place
the results on the page.  Fairly successful examples of fourth
generation languages include Metafont and RPG-II.  Some people include
database query languages (SQL) in this catagory, but I don't.

fifth generation:	A myth the Japanese spent a *lot* of money on
  About a decade ago, MITI decided it would spend 10 years and a lot
of money applying AI to programming, thus solving the software crisis.
The project spent its money and its ten years and just recently closed
down with a wimper.  It looks a lot like programming languages have
gotten about as good as they are going to, probably peaking at C, and
that we are currently in a period of regression, including such
languages as Ada and C++.

Basically, each 'generation' has been an attempt to find a way of
describing the problem to be solved using a more terse "language" than
the previous.  The first three generations were simple refinements on
an attempt to command the computer (imperative languages) while the
fourth was an attempt to shift the way in which programming was done
(descriptive languages.)  The fifth was, and continues to be,
mumbo-jumbo.  (I'm sure someone will volunteer to correct this last
assesment.)

Marty
--
Martin Fouts
fouts@hpl.hp.com


======================================================================= 19 ===
Date:    Mon, 9 Aug 93 08:47:33 GMT
From:    ruiter@ruls41.LeidenUniv.nl (Jan Peter de Ruiter)
Subject: Re: forth/fifth generation languages?

In article <FOUTS.93Aug8152353@cello.hp.com>, fouts@cello.hp.com (Marty
Fouts) writes:

|> fifth generation:	A myth the Japanese spent a *lot* of money on
|>   About a decade ago, MITI decided it would spend 10 years and a lot
|> of money applying AI to programming, thus solving the software crisis.
|> The project spent its money and its ten years and just recently closed
|> down with a wimper.  It looks a lot like programming languages have
|> gotten about as good as they are going to, probably peaking at C, and
|> that we are currently in a period of regression, including such
|> languages as Ada and C++.
|> 

Unfortunately, you're not telling us what the goal of the 5th generation
languages was. I only know that they failed, but what were they trying
to do?

Jan


======================================================================= 20 ===
Date:    Mon, 9 Aug 1993 09:56:57 GMT
From:    dave@yuriko.hal.t.u-tokyo.ac.jp (David Wuertele)
Subject: Re: forth/fifth generation languages?

In article <FOUTS.93Aug8152353@cello.hp.com> fouts@cello.hp.com (Marty Fouts) w
rites:
>   fourth generation:	"application specific" languages
>	[...]  Fairly successful examples of fourth
>   generation languages include Metafont and RPG-II.  Some people include
>   database query languages (SQL) in this catagory, but I don't.

Don't forget FORTH !

Dave


======================================================================= 21 ===
Date:    Sun, 8 Aug 1993 19:53:10 GMT
From:    kender@super.org (Daniel Garcia)
Subject: Looking for compiler for linux

Hi!  I'm considering learning modula (either 2 and/or 3) and would like to
know if there are any compilers out there for ftp.  I would either been
learning on a DECstation 2100 running Ultrix, or on Linux, so a compiler
for either (both?) of these machines would be helpful.  Thanks!

D

-- 
Daniel Garcia	|Supercomputing Research Center|All views here are COMPLETELY m
y
Kender@super.org|17100 Science Drive           |own (who else would want them?)
,
kender@esu.edu  |Bowie, Maryland 20715-4300    |not necessarily those of the SR
C
long live linux |GCS/MU d* -p+ c++ l++ m++ s+/ !g w++ t+ r+ !x | Hi alls!


======================================================================= 22 ===
Date:    9 Aug 1993 13:51:48 GMT
From:    shenkin@still3.chem.columbia.edu (Peter Shenkin)
Subject: Re: forth/fifth generation languages?

[[ Note:  I've directed followups to comp.lang.misc. ]]

In article <DAVE.93Aug9185657@yuriko.hal.t.u-tokyo.ac.jp> dave@yuriko.hal.t.u-t
okyo.ac.jp (David Wuertele) writes:
>In article <FOUTS.93Aug8152353@cello.hp.com> fouts@cello.hp.com (Marty Fouts) 
writes:
>>   fourth generation:	"application specific" languages
>>	[...]  Fairly successful examples of fourth
>>   generation languages include Metafont and RPG-II.  Some people include
>>   database query languages (SQL) in this catagory, but I don't.
>
>Don't forget FORTH !

Most people think of FORTH and APL as 3rd-generation;  in fact, FORTH might
be closer to 2nd generation.  Some might put APL into the 4th-generation 
category, especially since it is interpreted.  Most 4GL's are interpreted.
Some other successful and ongoing 4th-generation languages are:

	PostScript
	S
	IDL-PV/WAVE
	Gauss
	Mathematica
	data-stream languages such as AVS, APE, Iris Explorer

One might then ask, "What's the difference between a language and an 
application?" The answer is probably, "That's a good question."  Most
people would probably consider the above to be languages.

	-P.
-- 
************************f*u*cn*rd*ths*u*cn*gt*a*gd*jb************************
Peter S. Shenkin, Box 768 Havemeyer Hall, Dept. of Chemistry, Columbia Univ.,
New York, NY  10027;  shenkin@still3.chem.columbia.edu;  (212) 854-5143
********************** Wagner, Beame, Screvane in '93! ********************** 


======================================================================= 23 ===
Date:    9 Aug 1993 09:38:33 -0400
From:    dewar@cs.nyu.edu (Robert Dewar)
Subject: Re: forth/fifth generation languages?

In my opinion, while the 4GL concept is pretty well defined (read Jim Martin's
articles and books on this subject, and look at the tools that are out there
now), the idea of 5GL languages is murky, and better regarded as a concept
with a name but no substance. The Miti 5GL project was NOT a language project
per se, but rather a comprehensive approach to advanced AI systems with an
emphasis on natural language comprehension. There was some element of language
work, in the form of enhanced prolog, but really the respondents in this
group who have assumed that the 5GL project has something to do with what
people mean when they talk about fifth generation languages are making the
mistake of uninformed keyword
matching



======================================================================= 24 ===
Date:    9 Aug 1993 09:31:15 -0400
From:    dewar@cs.nyu.edu (Robert Dewar)
Subject: Re: forth/fifth generation languages?

I do not believe that RPG-II would qualify as a 4GL. The term was invented
by Jim Martin to refer to high level non-procedural languages built around
database systems. It is true that RPG-II has some of these characteristics,
but a better canonical example of a 4GL would be Focus.



======================================================================= 25 ===
Date:    Mon, 9 Aug 1993 17:39:05 GMT
From:    fouts@cello.hpl.hp.com (Marty Fouts)
Subject: Re: forth/fifth generation languages?

In article <DAVE.93Aug9185657@yuriko.hal.t.u-tokyo.ac.jp>, dave@yuriko.hal.t.u-
tokyo.ac.jp (David Wuertele) writes:
|> In article <FOUTS.93Aug8152353@cello.hp.com> fouts@cello.hp.com (Marty Fouts
) writes:
|> >   fourth generation:	"application specific" languages
|> >	[...]  Fairly successful examples of fourth
|> >   generation languages include Metafont and RPG-II.  Some people include
|> >   database query languages (SQL) in this catagory, but I don't.
|> 
|> Don't forget FORTH !
|> 

I didn't.  but since you asked:  Some people include FORTH in this
catagory, along with SQL, but I don't. (;-)

-- 
Martin Fouts
fouts@hpl.hp.com


======================================================================= 26 ===
Date:    9 Aug 1993 17:23:29 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Re: Looking for compiler for linux

In article <1993Aug8.195310.27634@super.org>, kender@super.org (Daniel Garcia) 
writes:
|> Hi!  I'm considering learning modula (either 2 and/or 3) and would like to
|> know if there are any compilers out there for ftp.  I would either been
|> learning on a DECstation 2100 running Ultrix, or on Linux, so a compiler
|> for either (both?) of these machines would be helpful.  Thanks!

Our next release of Modula-3 will run on both machines.  We do not
have a target data at this point, so watch this newsgroup for an
annoucement.

-- 
Eric.



======================================================================= 27 ===
Date:    Mon, 9 Aug 1993 17:38:08 GMT
From:    fouts@cello.hpl.hp.com (Marty Fouts)
Subject: Re: forth/fifth generation languages?

In article <1993Aug9.084733.16628@rulway.LeidenUniv.nl>, ruiter@ruls41.LeidenUn
iv.nl (Jan Peter de Ruiter) writes:
|> In article <FOUTS.93Aug8152353@cello.hp.com>, fouts@cello.hp.com (Marty
|> Fouts) writes:
|> 
|> |> fifth generation:	A myth the Japanese spent a *lot* of money on
|> |>   About a decade ago, MITI decided it would spend 10 years and a lot
|> |> of money applying AI to programming, thus solving the software crisis.
|> |> The project spent its money and its ten years and just recently closed
|> |> down with a wimper.  It looks a lot like programming languages have
|> |> gotten about as good as they are going to, probably peaking at C, and
|> |> that we are currently in a period of regression, including such
|> |> languages as Ada and C++.
|> |> 
|> 
|> Unfortunately, you're not telling us what the goal of the 5th generation
|> languages was. I only know that they failed, but what were they trying
|> to do?
|> 

Sorry about that.  The goal was "applying AI to programming, thus
solving the software crisis."  That is, MITI wanted to reduce the time
it took to complete a computer program, while at the same time
increasing the likelyhood that the resulting program would meet the
customer's real requirements and would be easy to extend as those
requirements changed.  This was to be done by increasing the part of
the programming job being done by the computer.  This was only one of
the ambitious goals of the 5th generation project.

Marty


-- 
Martin Fouts
fouts@hpl.hp.com


======================================================================= 28 ===
Date:    Tue, 10 Aug 1993 08:17:36 GMT
From:    mmh@dcs.qmw.ac.uk (Matthew Huntbach)
Subject: Re: forth/fifth generation languages?

In article  gustav@arp.anu.edu.au (Zdzislaw Meglicki) writes:
>The 5th generation MITI project wasn't really all that expensive. At
>the best of times only about a 100 people worked at ICOT in Tokyo. Also,
>the project didn't really die. It's been extended and the work now
>continues on producing UNIX ports of KL1 and various other software systems
>developed using the PSI and PIM machines. A relatively small number of
>experimental "Prolog Machines" (strictly speaking they should be called
>KL1 or ESP machines, but to me KL1 and ESP look so much like Prolog
>that...) was produced by Mitsubishi. These were quite freely given
>to the researchers in other countries who were interested in joining
>the project.
>
Although KL1 and the very similar Parlog and Concurrent Prolog,
developed in England and Israel respectively, *look* like
Prolog, and indeed originated from attempts to parallelise
Prolog, in my experience of programming with them the radical
changes they make to Prolog's underlying model mean that it
makes no more sense to refer to them as "dialects of Prolog"
than it does to refer to say C++ as a "dialect of Cobol" since
both are imperative languages.

I only really began to appreciate these languages when I
stopped thinking of them in terms of Prolog and started
thinking of them as general purpose concurrent object
languages. In my opinion these languages are now being held
back by the mistaken belief that they are "parallel dialects
of Prolog".

Matthew Huntbach


======================================================================= 29 ===
Date:    10 Aug 1993 05:31:06 GMT
From:    gustav@arp.anu.edu.au (Zdzislaw Meglicki)
Subject: Re: forth/fifth generation languages?

In article <1993Aug9.173808.18828@cello.hpl.hp.com>, fouts@cello.hpl.hp.com (Ma
rty Fouts) writes:
|> In article <1993Aug9.084733.16628@rulway.LeidenUniv.nl>, ruiter@ruls41.Leide
nUniv.nl (Jan Peter de Ruiter) writes:
|> [...]
|> |> 
|> |> Unfortunately, you're not telling us what the goal of the 5th generation
|> |> languages was. I only know that they failed, but what were they trying
|> |> to do?
|> |> 
|> [...]
|> Sorry about that.  The goal was "applying AI to programming, thus
|> solving the software crisis."  That is, MITI wanted to reduce the time
|> it took to complete a computer program, while at the same time
|> increasing the likelyhood that the resulting program would meet the
|> customer's real requirements and would be easy to extend as those
|> requirements changed.  This was to be done by increasing the part of
|> the programming job being done by the computer.[...]

The 5th generation MITI project wasn't really all that expensive. At 
the best of times only about a 100 people worked at ICOT in Tokyo. Also,
the project didn't really die. It's been extended and the work now 
continues on producing UNIX ports of KL1 and various other software systems
developed using the PSI and PIM machines. A relatively small number of
experimental "Prolog Machines" (strictly speaking they should be called
KL1 or ESP machines, but to me KL1 and ESP look so much like Prolog 
that...) was produced by Mitsubishi. These were quite freely given 
to the researchers in other countries who were interested in joining 
the project.

The PIM machine was used recently to solve a remarkable number of
open problems in the quasigroup theory and you'll have a chance to 
hear more about it at the IJCAI in Chambery, France, August/September 
this year. 

Some people think that the greatest shortcoming of that project was 
the idea that AI
should be developed around a specially designed hardware platform.
In this the project perhaps made a similar mistake to Symbolics 
(and their Lisp machines). ICOT's "Prolog Machines" (PSI and PIM) 
were slow, expensive, and clumsy in comparison with modern workstations
or modern parallel supercomputers. 

Since much of the project was concerned from the beginning with
hardware and with a specific non-RISC large instruction set
microprocessor design, which goes against 
the current thinking about computer architectures, this part of
it was indeed closed down and the researchers who were hired for
the time of the life of the project were returned to their native
companies (in Japan, people are very seldom laid off). 

In retrospect, perhaps the greatest achievement of the project
was to put together a relatively large number of highly 
qualified computer scientists and hardware engineers and
let them work jointly for a while on something quite challenging
and interesting. This contributed to the standing and
broadening of the horizons of Japanese computer science 
and for a while produced a little bit of panic on the other 
side of the Pacific which was fun to watch.
-- 
   Zdzislaw Meglicki, Zdzislaw.Meglicki@cisr.anu.edu.au,
   Automated Reasoning Program - CISR, and Plasma Theory Group - RSPhysSE,
   The Australian National University, G.P.O. Box 4, Canberra, A.C.T., 2601, 
   Australia, fax: (Australia)-6-249-0747, tel: (Australia)-6-249-0158


======================================================================= 30 ===
Date:    Tue, 10 Aug 1993 07:18:16 GMT
From:    takuo@jaist.ac.jp (Takuo Watanabe)
Subject: JSSST ISOTAS '93 Advance Program

        **********************************************************
	*		     ADVANCE PROGRAM                     *
	*			                                 *
	*      --- JSSST International Symposium Series ---      *
	*			                                 *
	*               INTERNATIONAL SYMPOSIUM on               *
	* OBJECT TECHNOLOGIES for ADVANCED SOFTWARE (ISOTAS '93) *
        *                                                        *
	*	   Kanazawa, Japan, November 4-6, 1993           *
        **********************************************************

Sponsored by:
  Japan Society for Software Science and Technology (JSSST)
  Japan Advanced Institute of Science and Technology (JAIST)

In cooperation with:
  ACM SIGSOFT, Japan ACM SIGMOD, IEEE Computer Society - Technical
  Committee on Software Engineering (TCSE), Information Processing
  Society of Japan (IPSJ)

Goals:

  Object technologies are attracting much attention in diverse areas
  of research and development for advanced software.  Object-oriented
  (OO) programming holds a great promise in reducing the complexity of
  large scale software development, and recent research in this field
  promises to open up a new paradigm for parallel and reflective
  computing.  Object-oriented databases are expected to serve as a
  model for next generation database systems, by overcoming the
  limitations of conventional data models.  Recently, research in
  software object bases is aimed at developing a uniform approach to
  the management of software artifacts produced in the software
  development process, such as specifications, manuals, programs, and
  test data, which traditionally were managed in a very ad-hoc and
  arbitrary manner.

  Active research and experimentation on object technologies in these
  diverse areas suggest that there are some underlying, fundamental
  principles common to a wide range of software development
  activities.  The first of the JSSST international series of symposia
  focuses on this topic.  The aim of this symposium is to bring
  together leading researchers in the areas of object-oriented
  programming, object-oriented databases, and software object bases.
  We hope to promote an understanding of object technologies in a
  wider context and to make progress towards the goal of finding a
  better framework for future advanced software development.

************************************************
Invited Speakers:

  Malcolm Atkinson		University of Glasgow
  Francois Bancilhon		O2 Technology
  Ralph E. Johnson		University of Illinois at Urbana-Champaign
  David Notkin			University of Washington
  John Sargeant			University of Manchester
  Jack C. Wileden		University of Massachusetts


Symposium Committee:

  Symposium Chair:		     Takuya Katayama (JAIST)
  Symposium Series Committee Chair:  Mario Tokoro (Keio U./Sony CSL)
  Program Committee Co-Chairs:	     Shojiro Nishio (Osaka U.)
				     Aki Yonezawa (U. of Tokyo)
  Executive Committee:		     Koichiro Ochimizu (JAIST)
  Finance Chair:		     Kokichi Futatsugi (JAIST)
  Publicity Chair:		     Takuo Watanabe (JAIST)
  Exhibition Chair:		     Tatsuo Nakajima (JAIST)
  Local Arrangement Chair:	     Yoichi Shinoda (JAIST)
				

Program Committee Members:

  Tsuneo Ajisaka (Kyoto U.)	     Mehmet Aksit (U. of Twente)
  Malcolm Atkinson (U. of Glasgow)   Francois Bancilhon (O2 Tech.)
  Klaus R. Dittrich (U. of Zurich)   Kokichi Futatsugi (JAIST/ETL)
  Yutaka Ishikawa (RWC)              Hyoung-Joo Kim (Seoul N. U.)
  Roger King (U. of Colorado)	     Tok-Wang Ling (N. U. of Singapore)
  Nazim Madhavji (McGill U.)	     Ole L. Madsen (Aarhus U.)
  Oscar Nierstrasz (U. of Geneva)    David Notkin (U. of Washington)
  Koichiro Ochimizu (JAIST)	     Atsushi Ohori (OKI)
  Junichi Rekimoto (NEC)	     Motoshi Saeki (Tokyo Inst. of Tech.)
  Edward Sciore (Boston College)     Etsuya Shibayama (Tokyo Inst. of Tech.)
  Shinji Shimojo (Osaka U.)	     Yoichi Shinoda (JAIST)
  Alan Snyder (Sun Microsystems)     Ikuo Takeuchi (NTT)
  Katsumi Tanaka (Kobe U.)	     Mario Tokoro (Keio U./Sony CSL)
  Hideyuki Tokuda (Keio U./CMU)      Katsuyasu Toyama (NTT)
  Takuo Watanabe (JAIST)	     Grant E. Weddell (U. of Waterloo)
  Peter Wegner (Brown U.)	     Jack Wileden (U. of Mass.)
  Kazumasa Yokota (ICOT)	     Masatoshi Yoshikawa (AIST, Nara)
  Roberto Zicari (J.W. Goethe U.)

*************************************************
Technical Program:

			   Thursday, November 4

Opening Session:					 9:00 -  9:20
  Opening Address
      General Chair: Takuya Katayama (JAIST)
  Message from the Program Committee
      PC Co-Chairs:  Shojiro Nishio (Osaka University)
		     Aki Yonezawa (University of Tokyo)


Session 1:						 9:20 - 11:00
  Object-Oriented Programming Languages
	Chair: Aki Yonezawa (University of Tokyo)

  Uniting Functional and Object-Oriented Programming (Invited Paper)
	John Sargeant (University of Manchester)

  Traces (Solving the "Make Isn't Generic" Problem)
	Gregor Kiczales (Xerox PARC)

  Gluons: a Support for Software Component Cooperation
	Xavier Pintado (University of Geneva)


Coffee Break:						11:00 - 11:20


Session 2:						11:20 - 12:50
  Object-Oriented Programming Language and Environment
	Chair: Yutaka Ishikawa (RWC Partnership)

  TAO: An Object-Orientation Kernel
	Kenichi Yamazaki, Yoshiji Amagai, and Ikuo Takeuchi (NTT Basic
	Research Laboratories), Masaharu Yoshida (NTT Human Interface
	Laboratories)

  Change Management and Consistency Maintenance in Software Development
  Environments Using Object Oriented Attribute Grammars
	Katsuhiko Gondow, Takashi Imaizumi (Tokyo Institute of
	Technology), Yoichi Shinoda (JAIST), Takuya Katayama (JAIST/Tokyo
	Institute of Technology)

  Design of an Integrated and Extensible C++ Programming Environment
	Kin'ichi Mitsui, Hiroaki Nakamura (IBM Research, Tokyo
	Research Laboratory), Theodore C. Law, and Shahram Javey (IBM
	Canada, Language Technology Centre)


Lunch							12:50 - 14:00


Session 3						14:00 - 15:40
  Meta and Reflection
	Chair: Gregor Kiczales (Xerox PARC)

  Metalevel Decomposition in AL-1/D
	Hideaki Okamura (Keio University), Yutaka Ishikawa (Real World
	Computing Partnership), and Mario Tokoro (Keio University/Sony
	CSL)

  Definition of a Reflective Kernel for a  Prototype-Based Language
	Philippe Mulet and Pierre Cointe (Ecole des Mines de Nantes)

  Kernel Structuring for Object-Oriented Operating Systems: The
  Apertos Approach
	Yasuhiko Yokote (Sony Computer Science Laboratory Inc.)


Coffee Break						15:40 - 16:00


Session 4						16:00 - 17:30
  Object-Oriented Database Features
	Chair: Masatoshi Yoshikawa (AIST, Nara)

  Object Oriented Database Systems: Functional Architecture
  (Invited Paper)
	Francois Bancilhon (O2 Technology)

  Maintaining Behavioral Consistency during Schema Evolution
	Paul L. Bergstein and Walter L. Hursch (Northeastern University)

  An Object-Centered Approach for Manipulating Hierarchically Complex
  Objects
	Ling Liu (Johann Wolfgang Goethe-University Frankfurt)
			

Reception						18:00 - 20:00


			    Friday, November 5

Session 5						 9:00 - 10:40
  Views for Object-Oriented Database
	Chair: Katsumi Tanaka (Kobe University) 

  Towards the Unification of Views and Versions for Object Databases
	Kwang June Byeon and Dennis McLeod (University of Southern
	California)

  Abstract View Objects for Multiple OODB Integration
	Qiming Chen and Ming-Chien Shan (HP Laboratories)

  An Object-Oriented Query Model Supporting Views
	Suk I. Yoo and Hai Jin Chang (Seoul National University)


Coffee Break						10:40 - 11:00


Session 6:						11:00 - 12:40
  Object-Oriented Programming and Modeling
	Chair: Tsutomu Kamimura (IBM Tokyo Research Laboratory)

  Refactoring and Aggregation (Invited Paper)
	Ralph E. Johnson (University of Illinois at Urbana-Champaign)

  Transverse Activities: Abstractions in Object-Oriented Programming
	Bent Bruun Kristensen (Aalborg University)

  Dynamic Extensibility in a Statically-compiled Object-Oriented
  Language
	Jawahar Malhotra (Aarhus University)


Lunch							12:40 - 14:00


Session 7						14:00 - 15:30
  Object-Oriented Database Language
	Chair: Atsushi Ohori (OKI)

  Managing Change in Persistent Object Systems (Invited Paper)
	Malcolm Atkinson (University of Glasgow)

  An Object-Oriented Pattern Matching Language
	Marc Gemis and Jan Paredaens (University of Antwerp)

  CLOG: A Class-Based Logic Language For Object-Oriented Databases
	Siu Cheung Hui, A. Goh, and K. R. Jose (Nanyang Technological
	University)


Coffee Break						15:30 - 15:50


Session 8						15:50 - 18:OO
  Object-Oriented Software Development
	Chair: Koichiro Ochimizu (JAIST)

  Name Management and Object Technology for Advanced Software
  (Invited Paper)
	Alan Kaplan and Jack C. Wileden (University of Massachusetts)

  Constraints in Object-Oriented Analysis,
	Stefan Van Baelen, Johan Lewi, Eric Steegmans, and Bart
	Swennen (Katholieke Universiteit Leuven)

  Integration of the tool (AWB) supporting the O* Method in the
  PCTE-based Software Engineering Environment
	Sai Peck Lee (University of Paris I)

  Minimizing Dependency on Class Structures with Adaptive Programs
	Karl J. Lieberherr and Cun Xiao (Northeastern University)


			   Saturday, November 6

Session 9						 9:00 - 10:40
  Concurrency
	Chair: Etsuya Shibayama (Tokyo Institute of Technology)

  First Class Messages as First Class Continuations
	Ken Wakita (Tokyo Institute of Technology)

  A typing system for an object-calculus
	Vasco T. Vasconcelos (Keio University) and Mario Tokoro (Keio
	University/Sony CSL)

  A Type Mechanism based on restricted CCS for Distributed Active
  Objects
	Yasunori Harada (NTT)


Coffee Break						10:40 - 11:00


Session 10						11:00 - 12:30
  Object Technologies for Software Development
	Chair: Katsuyasu Toyama (NTT)

  Adding Implicit Invocation to Languages: Three Approaches
  (Invited Paper)
	David Notkin (University of Washington),
	David Garlan (Carnegie Mellon University), and
	William G. Griswold (University of California, San Diego)

  Requirements and Early Experiences in the Implementation of the
  SPADE Repository using Object-Oriented Technology
	Sergio Bandinelli, Luciano Baresi, Alfonso Fuggetta, and Luigi
	Lavazza (Politecnico di Milano)

  Object-Oriented Formal Specification Development using VDM
	Amarit Laorakpong and Motoshi Saeki (Tokyo Institute of
	Technology)


Closing Session						12:30 - 12:40
  Closing Address
	JSSST Symposium Series Committee Chair: Mario Tokoro
	(Keio University/Sony CSL)


**********************************************
Registration Information:

To register for the symposium, please complete the Registration Form and
send/fax it to the symposium secretariat:

     Osamu Mitsui (ISOTAS '93 Secretariat)
     c/o System Research Center Co., Ltd. (SRC)
     510 Asahi Toranomon Bldg.,
     18-6, 3-chome, Toranomon, Minato-ku, Tokyo 105, Japan
     Phone: +81-3-5472-5545,  Facsimile: +81-3-3434-2789


Registration Fees:

             Early (by Sep. 30, 1993)    Late (after Sep. 30, 1993)
  Member (*):        37,000 Yen                  40,000 Yen
  Non-member:        45,000 Yen                  50,000 Yen
  Student:           20,000 Yen                  25,000 Yen

Registration fees cover: attendance at all sessions of the symposium,
a copy of the proceedings, reception, refreshments during break.  We
encourage you to register as soon as possible.

               EARLY REGISTRATION DEADLINE: SEP. 30, 1993.

(*) Reduced membership fees apply to the members of JSSST, ACM,
IEEE Computer Society, or IPSJ.  Please write your membership
identification on the Registration Form.


Methods of Payment:

			 *** IMPORTANT NOTICE ***
       CREDIT CARDS/PERSONAL CHECKS/MONEY ORDER ARE NOT ACCEPTABLE.
         ALL CHARGES/COMMISSIONS ARE TO BE PAID BY THE APPLICANT.
                   
All payments for registration must be made in Japanese Yen.  We accept the
following two payment methods:

(1) BANK TRANSFER (TELEGRAPH).  Remittance should be directed to:

       Bank name:   Sakura Bank Ltd., Kamiyacho Branch
       Address:     13-1, Toranomon 5-chome, Minato-ku, Tokyo 105, Japan
       Acct. #:     282-6336212
       Acct. name:  JSSST-ISOTAS '93

    Please provide the remittance information on Registration Form.

(2) ON-SITE (CASH).  On-site registration can also be made at the
    conference center.

    NOTE: Considering the high handling charges/commissions for
    bank (telegraph) transfer from abroad, participants from abroad
    who register before Sep. 30, 1993 can pay early registration fees
    on site.  Participants in Japan who want to take advantage of the
    early registration fees should send their registration fees by 
    bank (telegraph) transfer by Sep. 30, 1993.


Local Arrangements:

For additional information concerning local arrangements, please
contact:

	Prof. Yoichi Shinoda
	Department of Information Science,
	Japan Advanced Institute of Science and Technology
	15 Asahidai, Tatsunokuchi, Ishikawa 923-12, Japan
	TEL: +81-761-51-1251, FAX: +81-761-51-1116
	e-mail: jssst-symp93@jaist.ac.jp

********************************* cut here **************************

	 JSSST International Symposium on Object Technologies for
		      Advanced Software (ISOTAS '93)
			     REGISTRATION FORM

Please type or print in block letters.

Last/Family Name: _________________________________________________________

First Name:       _________________________________________________________

Name (on Name Tag):  ______________________________________________________

Affiliation:      _________________________________________________________

Address:          _________________________________________________________

City/State:       _________________________________________________________

Country:          _______________________________ Zip Code: _______________

Daytime Phone:    ________________________  FAX: __________________________

E-Mail:           _________________________________________________________

Speaker?:          [ ] YES               [ ] NO
Conference Use:    [ ] Slide Projector   [ ] Overhead Projector

Registration fees:     EARLY                  LATE
                  By Sep. 30, 1993      After Sep. 30, 1993
  Member (*):      [ ] 37,000 Yen        [ ] 40,000 Yen
  Non-member:      [ ] 45,000 Yen        [ ] 50,000 Yen
  Student:         [ ] 20,000 Yen        [ ] 25,000 Yen

  (*) Applied to the members of JSSST/ACM/IEEE-CS/IPSJ.

  Membership # : __________________________________________________________

Methods of payment:
  [ ] ON-SITE IN CASH (NOTE: Early registration fees will be applied
      if you are abroad AND register before Sep. 30, 1993.)

  [ ] BANK (TELEGRAPH) TRANSFER.  Remittance should be directed to:
      Bank name:   Sakura Bank Ltd., Kamiyacho Branch
      Address:     13-1, Toranomon 5-chome, Minato-ku, Tokyo 105, Japan
      Acct. #:     282-6336212
      Acct. name:  JSSST-ISOTAS '93

      Please provide the remittance information if you send your
      registration fee via bank (telegraph) transfer:

      From (bank name):  __________________________________________________

      Date of remittance:  ________________  Amount (yen) : _______________

			 *** IMPORTANT NOTICE ***
         ALL CHARGES/COMMISSIONS ARE TO BE PAID BY THE APPLICANT.
       CREDIT CARDS/PERSONAL CHECKS/MONEY ORDER ARE NOT ACCEPTABLE.

Please return/fax this form to:

     Osamu Mitsui (ISOTAS Secretariat)
     c/o System Research Center Co., Ltd. (SRC)
     510 Asahi Toranomon Bldg.,
     18-6, 3-chome, Toranomon, Minato-ku, Tokyo 105, Japan
     Phone: +81-3-5472-5545,  Facsimile: +81-3-3434-2789

****************************** end *********************************


======================================================================= 31 ===
Date:    10 Aug 93 13:11:43 GMT
From:    dewar@cs.nyu.edu (Robert Dewar)
Subject: Re: forth/fifth generation languages?

Well 5th generation retrospecting is pretty far from Ada, but since we have
a thread going, lete me add the following observations. I attended the
original 5th generation conference in Tokyo as an observer for the National
Research Council of the US. At that time, the program that was presented
focussed primarily on AI applications, with a strong emphasis on natural
language understanding. The business of building specialized hardware was
a relatively minor aspect, and the impression was clear that the center of
the program was the AI research, and the hardware guys had managed to climb
aboard for the MITI sponsored ride.

At the time, the judgment of many of us (if you like you can probably dig out
my report to NRC, it's public record, and was quoted widely), was that the
program was pretty much over-optimistic nonsense, and that the only thing
likely to come out was some interesting developments on the hardware front.

I have not seen anything to suggest that this original judgment (which many
of the other US observers shared) was incorrect, although actually I would
say that the achievments in the specialized hardware area are actually 
somewhat disappointing compared to what I expected at the time. 

All in all, you have to consider that the 5th generation effort was one of
MITI's failures (their track record is actually pretty spotty, other failed
efforts include the solar energy program and the commercial airline program).

(they have of course some significant success stories as well. I would 
actually rate PIP as a success, because although it didn't generate much
during the program, it sparked a thread of technology that has been very
useful -- perhaps in the long run 5G will be able to claim similar success,
though I doubt it)

Anyway, this sure is far away, not only from Ada, but also from the subject,
since, as I have pointed out before, the 5G project had very little to do
with programming languages. It did place an emphasis on Prolog (a decision
which seemed pretty peculiar to the AI folks at the conference, and was
widely assumed at the time to be a deliberate "we'll be different from the
US guys who use Lisp" type of decision). At the time they made all sorts
of glib statements about Prolog along the lines of "Prolog is pretty nice,
but lacks data abstraction and module capability, but never mind, we'll
create a marvellous new Prolog that solves these problems". Not much has
come of that either.)


======================================================================= 32 ===
Date:    10 Aug 1993 06:03:23 -0700
From:    frode@ODEGARD.COM (Frode Odegard)
Subject: FormsVBT macros

Date: Tue, 10 Aug 93 03:51:45 PDT
X-Received: from rand.ODEGARD.COM by ODEGARD.COM (4.1/SMI-4.1)
X-Received: by src-mail.pa.dec.com; id AA11590; Tue, 10 Aug 93 06:03:19 -0700
X-Received: by rand.ODEGARD.COM (4.1/SMI-4.1)
X-Received: by inet-gw-2.pa.dec.com; id AA27950; Tue, 10 Aug 93 06:03:17 -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 AA25822; Tue, 10 Aug 93 06:03:21 -0700

Here's a classical example.
  __________________________________________________________
 |                                                          |
 |(Macro Boxed BOA (x) `(Border (Pen 2) (Rim (Pen 16) ,x))) |
 |(Boxed (Text "Hello world!"))                             |
 |__________________________________________________________|

It turns out that this doesn't work if it stands alone, a macro has to
be a "property" of a component.  This seems a little strange, why
can't macros just stand alone?

				- 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)





======================================================================= 33 ===
Date:    Tue, 10 Aug 1993 10:10:45 GMT
From:    mikeg@psg.com (Mike Gallo)
Subject: structural equivalence and distributed systems

The last chapter of _Systems Programming in Modula-3_ where 
different characters debate the language design was quite 
interesting and even slightly amusing.  It was, perhaps, the 
best chapter of the book.
 
When they debated structural vs. name equivalence for types, 
structural equivalence was mentioned as being a virtual 
neccessity for programming distributed systems.  I am 
unfamiliar with distributed systems and was hoping that 
someone might kindly elaborate this point for me.
 
Thanks in advance,
Mikeg

-- 

She gave me a smile I could feel in my hip pocket.
				-- Raymond Chandler


======================================================================= 34 ===
Date:    Tue, 10 Aug 1993 14:25:34 GMT
From:    dagenais@erda.vlsi.polymtl.ca (Michel Dagenais)
Subject: Re: structural equivalence and distributed systems


   When they debated structural vs. name equivalence for types, 
   structural equivalence was mentioned as being a virtual 
   neccessity for programming distributed systems.  I am 
   unfamiliar with distributed systems and was hoping that 
   someone might kindly elaborate this point for me.

Here is a very, very simple argument, just to get the discussion
started. In a distributed system, programs far apart communicate
objects. These programs evolve and are not necessarily recompiled
in sync. Thus, the same type name may be used for objects that
eventually differ, or different names may in fact refer to the
same object type. In such a context, it is simpler and safer
to use structural equivalence as a criterion for type compatibility.
This is conveniently done in Modula-3 using pickles (objects written
to disk or to a communication stream using the Pkl library) to communicate
objects between processes, since the structure of each object type
is "fingerprinted". With fingerprints, the type equivalence is
verified by a simple 64 bits comparison with extremely small 
chances of different structures producing the same fingerprint.
--
---------------------------------------------------------------------

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

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


======================================================================= 35 ===
Date:    Tue, 10 Aug 1993 15:01:41 GMT
From:    mmh@dcs.qmw.ac.uk (Matthew Huntbach)
Subject: Re: forth/fifth generation languages?

In article  dewar@cs.nyu.edu (Robert Dewar) writes:
>Anyway, this sure is far away, not only from Ada, but also from the subject,
>since, as I have pointed out before, the 5G project had very little to do
>with programming languages. It did place an emphasis on Prolog (a decision
>which seemed pretty peculiar to the AI folks at the conference, and was
>widely assumed at the time to be a deliberate "we'll be different from the
>US guys who use Lisp" type of decision). At the time they made all sorts
>of glib statements about Prolog along the lines of "Prolog is pretty nice,
>but lacks data abstraction and module capability, but never mind, we'll
>create a marvellous new Prolog that solves these problems". Not much has
>come of that either.)

I disagree. As the March 1993 issue of Communications of the
ACM suggests, perhaps the most significant thing to come out of
the Japanese Fifth Generation project was the concurrent logic
language GHC. Arguably smaller teams far less generously funded,
in England and Israel, managed to achieve much the same working
in parallel on the same ideas, and certainly the initial aims
of the 5G project were vague and over-ambitious. However, having
programmed AI and parallel processing problems in a variety of
languages before coming across GHC and its fellow concurrent
logic languages, I would not now switch over to any other
language unless forced. My view is that the concurrent logic
languages like GHC do for parallel processing what the first
high-level languages did for sequential programming. If nothing
comes of them it will be a shame and a set-back to computer
science equivalent to that when horrible languages like FORTRAN
and Cobol achieved dominance over Algol, a mistake which it has
taken some twenty years to put right through the gradual shift
to the Algol-descended C.

Matthew Huntbach




======================================================================= 36 ===
Date:    10 Aug 1993 13:47:14 GMT
From:    laverman@cs.rug.nl (Bert Laverman)
Subject: Re: structural equivalence and distributed systems

Mike Gallo writes:
> When they debated structural vs. name equivalence for types, 
> structural equivalence was mentioned as being a virtual 
> neccessity for programming distributed systems.  I am 
> unfamiliar with distributed systems and was hoping that 
> someone might kindly elaborate this point for me.
Page 221, bottom:
  ...With name equivalence, you can only ask about the identity of types
that appear in the same program.

  The simplest case where this surfaces is that eg when constructing
a file with records in one program, and reading the same in another,
the second program should refuse the values found in the file because
they are not of the expected type. Their type is linked to the original
program. This would mean that a program has to include in each file
it makes information that will identify the values as being of that
program's types, so any other program can refuse them. (:-))
  The solution of structural equivalence is to include information
about a type's structure, and let the reading program compare that
with the receiving variables (named or unnamed). This is what is done
in M3's Pickles.

Bert
-- 
  ------------------------------------------------------------------
  Bert Laverman,   Dept. of Computing Science,  Groningen University
  Email: laverman@cs.rug.nl			Phone: +31-50-633948
  Home:  bert@rakis.iaf.nl			Fax:   +31-50-633800


======================================================================= 37 ===
Date:    Wed, 11 Aug 1993 04:44:47 GMT
From:    fjh@munta.cs.mu.OZ.AU (Fergus James HENDERSON)
Subject: Re: forth/fifth generation languages?

dewar@cs.nyu.edu (Robert Dewar) writes:

>At the time they made all sorts
>of glib statements about Prolog along the lines of "Prolog is pretty nice,
>but lacks data abstraction and module capability, but never mind, we'll
>create a marvellous new Prolog that solves these problems". Not much has
>come of that either.)

Actually there's an excellent new logic programming language called
"Goedel" which is strongly typed and has a module system, which does a
reasonably good job with data abstraction.  Furthermore many current
Prolog implementations have module systems and the upcoming ISO Prolog
standard will include a module system.  [I don't think any of these had
much to do with the Japanese 5G project, but even if _they_ didn't do
it, other people have.]

-- 
Fergus Henderson                     fjh@munta.cs.mu.OZ.AU


======================================================================= 38 ===
Date:    Wed, 11 Aug 1993 09:54:42 GMT
From:    mmh@dcs.qmw.ac.uk (Matthew Huntbach)
Subject: Re: forth/fifth generation languages?

>Actually there's an excellent new logic programming language called
>"Goedel" which is strongly typed and has a module system, which does a
>reasonably good job with data abstraction.  Furthermore many current
>Prolog implementations have module systems and the upcoming ISO Prolog
>standard will include a module system.  [I don't think any of these had
>much to do with the Japanese 5G project, but even if _they_ didn't do
>it, other people have.]
>
>--
>Fergus Henderson                     fjh@munta.cs.mu.OZ.AU

On the other hand, Goedel does have an Ada-ish "kitchen sink"
feel to it. It seems to have been designed by throwing in
any feature that ever appeared in any logic programming language.

Matthew Huntbach


======================================================================= 39 ===
Date:    11 Aug 1993 14:31:52 GMT
From:    laszlo@post.ifi.uni-klu.ac.at (Laszlo BOESZOERMENYI)
Subject: SimplIO

I have written a module for simple i/o,
with the aim to support beginners and simple applications.
It is not a great scientific achievement, but may be practical.
(There were similar suggetions for an interface on the news before,
but they were still uncomplete - e.g. no Close.
Actually I don't know of any implemented version.)
It resembles Wirth's Modula-2 "InOut" in a way,
but takes advantage of Modula-3 features, as parameter defaults etc.

I just copy the source behind.

I am greatful for comments.

Cheers
Laszlo

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

INTERFACE SimpleIO;	(*29.07.93. LB*)

(*SimpleIO provides simple procedures
  to open, close, read and write files.
  Files are considered as sequences of characters or texts.

  It has a flexible, automatic mechanism for file naming.
  If the "name" paramtere is omitted at opening, then
  the opening procedures ask the user for a file name.
  If the user enters an empty line, the file defaults to standard i/o,
  i.e. normally to keyboard (standardin) and screen (standardout).
  The procedure GetFileName can be used if you want
  to have more explicit control over file naming. 

  The operative procedures default to standard input/output (via NIL),
  i.e. standard i/o can be used without any opening and closing.*)

  IMPORT Rd, Wr;

  CONST
    PromptText = " file name, please = ";
  TYPE
    Reader = Rd.T;
    Writer = Wr.T;
    
  PROCEDURE OpenRead(name: TEXT := NIL): Reader;
  (*Opens the file, called "name" for reading.
    If "name" is NIL (parameter omitted), or the file does not exists,
    it asks the user for a file name until the file can be opened.
    It returns Stdio.stdin if the user enters "return".*)

  PROCEDURE OpenWrite(name: TEXT := NIL): Writer;
  (*Opens the file, called "name" for writing.
    If "name" is NIL (parameter omitted), or the file already exists,
    it asks the user for a file name until the file can be opened.
    It returns Stdio.stdout if the user enters "return".*)

  PROCEDURE FileExists(name: TEXT): BOOLEAN;
  (*Returns TRUE iff the file exists.*)

  PROCEDURE CloseRead(VAR rd: Reader);
  (*Closes the file. Assigns NIL to rd - except rd is stdin.*)

  PROCEDURE CloseWrite(VAR wr: Writer);
  (*Flushes and closes the file. Assigns NIL to wr - except wr is stdout.*)

  PROCEDURE GetFileName(userInfo: TEXT := ""): TEXT;
  (*Asks the user for a file name - actually a simple text.
    Returns the empty text if the user enters "return".
    It displays PromptText preceded by userInfo.*)

  PROCEDURE GetChar(rd: Reader := NIL): CHAR;
  (*Returns the next char, or the nul char, if end of file reached.*)

  PROCEDURE GetLine(rd: Reader := NIL): TEXT;
  (*Reads a line; the terminating newline is discarded.
    Returns the empty text, if end of file reached.*)

  PROCEDURE EOF(rd: Reader := NIL): BOOLEAN;
  (*Returns TRUE iff end of file reached.
    Returns always TRUE for stdin.*)

  PROCEDURE Availabe(rd: Reader := NIL): BOOLEAN;
  (*Returns TRUE iff some characters are available.*)

  PROCEDURE Reset(rd: Reader := NIL);
  (*Sets the Reader on the beginning.*)

  PROCEDURE PutChar(ch: CHAR; wr: Writer := NIL);
  (*Outputs a single character. 
    Makes a flush if ch is newline and wr is stdout (or NIL)*)

  PROCEDURE PutText(t: TEXT; wr: Writer := NIL);
  (*Outputs all characters in t. 
    Makes a flush if text ends with newline and wr is stdout (or NIL)*)

END SimpleIO.

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

MODULE SimpleIO;	(*29.07.93. LB*)
(* Implements the procedures for simple file I/O.
   Error handling is somewhat strange: the idea was to
   catch all exceptions and convert them into simple error messages,
   in order to protect beginners from being confronted with exceptions. *)

  IMPORT
    Rd, Wr, Stdio, FileStream, Text;

  PROCEDURE GetFileName(userInfo: TEXT := ""): TEXT =
  BEGIN
    WITH so = Stdio.stdout DO
      Wr.PutText(so, userInfo & PromptText);
      Wr.Flush(so);
    END; (*WITH so*)
    RETURN Rd.GetLine(Stdio.stdin);
  END GetFileName;

  PROCEDURE Error(text: TEXT) =
  BEGIN
    WITH so = Stdio.stdout DO
      Wr.PutText(so, "Error at SimpleIO." & text & "\n");
      Wr.Flush(so);
    END; (*WITH so*)
  END Error;

  PROCEDURE OpenRead(name: TEXT := NIL): Reader =
  VAR rd: Reader := NIL; finish: BOOLEAN;
  BEGIN
    IF name = NIL THEN name:= GetFileName("input ") END;
    REPEAT
      finish:= TRUE;
      TRY
        IF Text.Empty(name) THEN rd:= Stdio.stdin
        ELSE                     rd:= FileStream.OpenRead(name) 
        END;
      EXCEPT
        Rd.Failure => 
          Error("OpenRead, " & name & " doesn't exists, try again");
          name:= GetFileName("input "); finish:= FALSE;
      ELSE
        Error("OpenRead");
      END; (*TRY*)
    UNTIL finish;
    RETURN rd;
  END OpenRead;

  PROCEDURE OpenWrite(name: TEXT := NIL): Writer =
  VAR wr: Writer := NIL; finish: BOOLEAN;
  BEGIN
    IF name = NIL THEN name:= GetFileName("output") END;
    TRY
      REPEAT
        finish:= TRUE;
        IF Text.Empty(name) THEN wr:= Stdio.stdout 
        ELSIF FileExists(name) THEN
            Error("OpenWrite, " & name & " already exists, try again");        
           
            name:= GetFileName("output"); finish:= FALSE;
        ELSE
          wr:= FileStream.OpenWrite(name)
        END; (*IF*)
      UNTIL finish;
    EXCEPT ELSE
      Error("OpenWrite"); 
    END; (*TRY*)
    RETURN wr;
  END OpenWrite;

  PROCEDURE CloseRead(VAR rd: Reader) =
  BEGIN
    IF (rd # NIL) AND (rd # Stdio.stdin) THEN 
      TRY
        Rd.Close(rd)
      EXCEPT ELSE
        Error("CloseRead");
      END; (*TRY*)    
      rd:= NIL;
    END; (*IF rd # NIL*)
  END CloseRead;

  PROCEDURE CloseWrite(VAR wr: Writer) =
  BEGIN
    IF (wr = NIL) OR (wr = Stdio.stdout) THEN Wr.Flush(Stdio.stdout)
    ELSE
      TRY
        Wr.Close(wr)
      EXCEPT ELSE
        Error("CloseWrite");
      END; (*TRY*)
      wr:= NIL;
    END; (*IF wr = NIL*)
  END CloseWrite;

  PROCEDURE FileExists(name: TEXT): BOOLEAN =
  VAR e: BOOLEAN := TRUE;
  BEGIN
    TRY
      EVAL FileStream.OpenRead(name)
    EXCEPT
      Rd.Failure => e:= FALSE
    END; (*TRY*)
    RETURN e
  END FileExists;

  PROCEDURE GetChar(rd: Reader := NIL): CHAR =
  VAR ch: CHAR := '\000';
  BEGIN
    IF rd = NIL THEN rd:= Stdio.stdin END;
    TRY
      ch:= Rd.GetChar(rd)
    EXCEPT ELSE
      Error("GetChar");
    END; (*TRY*)
    RETURN ch;
  END GetChar;

  PROCEDURE GetLine(rd: Reader := NIL): TEXT =
  VAR t: TEXT := "";
  BEGIN
    IF rd = NIL THEN rd:= Stdio.stdin END;
    TRY
      t:= Rd.GetLine(rd)
    EXCEPT ELSE
      Error("GetLine"); 
    END; (*TRY*)
    RETURN t;
  END GetLine;

  PROCEDURE EOF(rd: Reader := NIL): BOOLEAN =
  VAR eof: BOOLEAN := TRUE;
  BEGIN
    IF (rd # NIL) AND (rd # Stdio.stdin) THEN (*on stdin return always true*)
      TRY
        eof:= Rd.EOF(rd)
      EXCEPT ELSE
        Error("EOF");
      END; (*TRY*)
    END; (*IF rd # NIL*)
    RETURN eof;
  END EOF; 

  PROCEDURE Availabe(rd: Reader := NIL): BOOLEAN =
  VAR av: BOOLEAN := FALSE;
  BEGIN
    IF rd = NIL THEN rd:= Stdio.stdin END;
    TRY
      av:= Rd.CharsReady(rd) > 0
    EXCEPT ELSE
      Error("Availabe");
    END; (*TRY*)
    RETURN av;
  END Availabe;

  PROCEDURE Reset(rd: Reader := NIL) =
  BEGIN
    IF rd # NIL THEN
      IF Rd.Seekable(rd) THEN 
        TRY
          Rd.Seek(rd, 0)
        EXCEPT ELSE
        Error("Reset");
        END; (*TRY*)
      ELSE
        Error("Reset, file cannot be reset")
      END; (*IF Rd.Seekable(rd)*)
    END; (*IF rd # NIL*)
  END Reset;

  PROCEDURE PutChar(ch: CHAR; wr: Writer := NIL) =
  BEGIN
    IF wr = NIL THEN wr:= Stdio.stdout END;
    TRY
      Wr.PutChar(wr, ch);
      IF (wr = Stdio.stdout) AND (ch = '\n') THEN
        Wr.Flush(wr)
      END; (*IF wr*)
    EXCEPT ELSE
      Error("PutChar");
    END; (*TRY*)
  END PutChar;  

  PROCEDURE PutText(t: TEXT; wr: Writer := NIL) =
  BEGIN
    IF wr = NIL THEN wr:= Stdio.stdout END;
    TRY
      Wr.PutText(wr, t);
      IF (wr = Stdio.stdout) AND 
         (Text.GetChar(t, Text.Length(t)-1) = '\n') THEN
        Wr.Flush(wr)
      END; (*IF wr*)
    EXCEPT ELSE
      Error("PutText");
    END; (*TRY*)
  END PutText;

BEGIN
END SimpleIO.


======================================================================= 40 ===
Date:    Wed, 11 Aug 1993 13:50:42 GMT
From:    anderson@CS.ColoState.EDU (Chuck Anderson)
Subject: Modula3 compiler for Linux?

Does a Modula3 compiler exist for Linux?

		Chuck Anderson
		anderson@cs.colostate.edu


-- 
Chuck Anderson                    assistant professor
Department of Computer Science    anderson@cs.colostate.edu
Colorado State University         303-491-7491
Fort Collins, CO 80523            FAX: 303-491-6639


======================================================================= 41 ===
Date:    Tue, 10 Aug 1993 23:07:20 GMT
From:    uli@zoodle.robin.de (Ulrich Grepel)
Subject: Re: forth/fifth generation languages?

In article <FOUTS.93Aug8152353@cello.hp.com> fouts@cello.hp.com (Marty Fouts)  
writes:
> 
> first generation:	Raw machine code
>   When computers were first "programmed" from an input device, rather
> than by being rewired, they were fed input in the form of numbers,
> which they then interpretted as commands.  This was really low level,
> and a program fragment might look like
>   010307
>   010307
> Almost no one programs in machine language anymore, because
> translators are nearly trivial to write.

That's not true. On mainframes most patches are done this way. painframe
indeed.

Uli


======================================================================= 42 ===
Date:    12 Aug 1993 05:50:00 GMT
From:    agulbra@nvg.unit.no (Arnt Gulbrandsen)
Subject: Re: Modula3 compiler for Linux?

In article <Aug11.135042.55012@yuma.ACNS.ColoState.EDU> anderson@CS.ColoState.E
DU (Chuck Anderson) writes:
>Does a Modula3 compiler exist for Linux?

No.  There are just two modula-3 compilers, SRC (stable) and GNU (early
alpha, and that means EARLY).  The SRC compiler compiles M3 to ANSI C which
you then need to compile using gcc, the GNU compiler is an adaption of gcc
itself, so it compiles to native code.  Once the GNU compiler evolves to
being based on gcc-2.3.3 or newer I intent to try and port it to Linux.  If
you think that's a worthwhile goal, send me some mail.

-- 
Arnt Gulbrandsen, agulbra@nvg.unit.no
Twice the .sig, twice the personality.
-- 
Arnt Gulbrandsen, agulbra@nvg.unit.no
Twice the .sig, twice the personality.


======================================================================= 43 ===
Date:    12 Aug 1993 18:03:23 GMT
From:    mako@FNALO.FNAL.GOV
Subject: Re: Modula3 compiler for Linux?

> The upcoming release of SRC Modula 3 will be a native compiler and will
> run on Linux

Would it be called V2.12 or V3.0? What are the new features? On what new
platforms will it run?
					mako
					(mako@fnald.fnal.gov)


======================================================================= 44 ===
Date:    12 Aug 93 16:21:58 GMT
From:    fn00@gte.com (Farshad Nayeri)
Subject: Re: structural equivalence and distributed systems


mikeg@psg.com (Mike Gallo) writes:

      When they debated structural vs. name equivalence for types, 
      structural equivalence was mentioned as being a virtual 
      neccessity for programming distributed systems.  I am 
      unfamiliar with distributed systems and was hoping that 
      someone might kindly elaborate this point for me.

I just wanted to make a point explicitly that was implicit in the
previous replies. Type equivalence (and subtyping) rules in a language
interact with its way of supporting both persistence and distribution.

The problems of persistence and distribution seem to be similar --
they both require taking an object and creating a "flat" version and
then reincarnating the "flat" version back to an object somewhere
else. The main difference between the two seems to be the medium of
transfer. Same issues seem to exist in both cases (for example,
relating to replication and identity). Indeed it is possible to
implement distribution capabilities using persistence and vice versa.

Some distributed languages such as Emerald use a looser type checking
criterion called "conformance" where only objects' operations are
considered in type checking (and not the objects' structure as is the
case with Modula-3). Since conformance is based on object oprerations,
conformance-based languages assume that all values are objects.
Because of this requirement, it is not possible to use a conformance-
based type system for a language like Modula-3 where some values are
not objects.

dagenais@erda.vlsi.polymtl.ca (Michel Dagenais) replies:
   Here is a very, very simple argument, just to get the discussion
   started. In a distributed system, programs far apart communicate
   objects. These programs evolve and are not necessarily recompiled
   in sync. Thus, the same type name may be used for objects that
   eventually differ, or different names may in fact refer to the
   same object type. In such a context, it is simpler and safer
   to use structural equivalence as a criterion for type compatibility.

If two types are evolved independently, what are the chances of all
field or method names of (the transitive closure of) these two types
to be indentical? What are the chances of the structure of the two
objects to be identical in the long run? Without coordination between
the two remote development activities, it is probably just as likely
for field or method names of the two types to change...

Don't get me wrong; I think structured equivalence or conformance are
useful. I am just saying that they don't necessarily solve the "type
management" problems that may arise in a distributed environments.

--farshad
--
Farshad Nayeri
nayeri@gte.com



======================================================================= 45 ===
Date:    12 Aug 93 12:38:23 GMT
From:    soxman@cairo.anu.edu.au (kevin so)
Subject: ******* HELP ON THE DISCUSSION OF M2 to M3 *********

hi everybody :

	Recently , i have a essay on the discussion on :

"In 1973 E. F. Schumacher completed a book entitled "Small is Beautiful"
on Economics and society , so influential that its title has become one of the 
cliches of today.  Discuss this epithet might apply to the design and content 
of programming languages."

Using the advantage and disadvantage of upgrading from M2 to M3(or C to C++)
consider the following issues:

* Security and safety 

* Portability 

* Expressiveness

* Extensibility 

* Reusability 

* Compiler complexity and reliability

* Execution speed


Can someone give me some relevant articles or references about those issues ??
Thanks !!!

								kevin




======================================================================= 46 ===
Date:    Thu, 12 Aug 1993 13:42:04 GMT
From:    dagenais@erda.vlsi.polymtl.ca (Michel Dagenais)
Subject: Re: Modula3 compiler for Linux?


   In article <Aug11.135042.55012@yuma.ACNS.ColoState.EDU> anderson@CS.ColoStat
e.EDU (Chuck Anderson) writes:
   >Does a Modula3 compiler exist for Linux?

   No.  There are just two modula-3 compilers, SRC (stable) and GNU (early
   alpha, and that means EARLY).  The SRC compiler compiles M3 to ANSI C which
   you then need to compile using gcc, the GNU compiler is an adaption of gcc
   itself, so it compiles to native code.  Once the GNU compiler evolves to
   being based on gcc-2.3.3 or newer I intent to try and port it to Linux.  If
   you think that's a worthwhile goal, send me some mail.

The upcoming release of SRC Modula 3 will be a native compiler and will
run on Linux; from what i hear it should not take too long.
--
---------------------------------------------------------------------

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

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


======================================================================= 47 ===
Date:    12 Aug 93 12:58:55 GMT
From:    hootons@cs.man.ac.uk (Stephen Hooton (JRG vac 92))
Subject: Software wanted.

Hi,

I'm currenly writing a simulator in modula-3 and was wondering
if anyone had written any software that would help.
The two packages that I require are:

1) A performance tool, like perfmeter in X-Windows. Either in the form
   of a stand alone program, or Modules that I can make use of. The tool
   has to take data points and graph them continously.

2) The facility to run multiple threads across several computers. 
   For instance, if a program had several long computations to 
   perform,  do each in a separate thread on a separate computer.
   In particular this is for use on a network of Sun Sparc stations. 

Any help much appreciated,

Stephen Hooton
Dept. Of Computer Science
University Of Manchester
England.



======================================================================= 48 ===
Date:    12 Aug 1993 20:41:50 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Next release [was: Modula3 compiler for Linux?]

|> Would it be called V2.12 or V3.0? What are the new features? On what new
|> platforms will it run?

The next release will be 3.0.  Here are some of the new things you will
find in it:

1. the compiler has a new internal interface between the front-end and
  the back-end, M3CG.  This interface is supposed to be easy to
  implement.

2. the front-end can compute in the target arithmetic system; in particular
  it is possible to cross-compile to machines with larger integers than
  the host.

3. one back-end has been implemented on top of gcc.  The implementation of
  M3CG interface generates the tree representation used internally in gcc.
  From the gcc point of view, this back-end looks like a new front-end.
  Using this back-end, we have cross-compiled solitaire for mips, alpha and
  386 processors; there is no reason to believe that there would be a
  problem for the other architectures supported by gcc.

4. Dave Hanson wrote another implementation of the M3CG that is
  self-contained. He is currently working on the 386 code generation (he
  has done the mips code generation already).

5. gdb has been modified to understand Modula-3 debugging information
  produced by the back-ends.  gdb can now parse Modula-3 expressions, print
  Modula-3 values and evaluate some of the Modula-3 built-in operations.
  There is also a little bit of support for multi-threaded programs (you
  can look at the stacks of other threads).

6. there is a replacement for m3make, m3build, that does rely on
  cpp/awk/sed/make and what not, and removes some of the limitations of
  m3make.  m3makefiles are very similar.

7. libm3 has been significantly changed by the Interface Police, mostly in
  the area of OS interfaces and data structures.

8. for the OS interfaces, we still have the U* interfaces, but applications
  are not supposed to use those.  Instead they should use a new set of
  interfaces that are os-independent; for example, there is a Pathname
  interface that manipulates file names; there is a Process interface that
  manipulate child processes.  These interfaces enabled a prototype port
  of the C based version to Windows NT machines.

9. for the data structures, generics have been introduced and the various
  data structures are more consistent.

10. because of 6 and 8, we can think about going to different os than Unix.
  In particular a Windows NT port will be available at some point (may not
  be in 3.0).

11. the runtime has been improved quite a bit.

12. new platforms: Alpha running OSF/1, 386 running Linux.  We will pay
  more attention to the porting instructions and support.

13. I am not sure about all the changes in the libraries other than
  libm3.  I suspect that there will be few changes in trestle, but that
  mentor changed quite a bit. 

The current status is:

. the front-end is very stable
. the gcc-based back-end has been stable for 3 months
. the gdb extensions are brand new and need some test
. the interface police work is very stable
. we are waiting for m3build (+ the cross-compilation machinery + the
  export machinery) to do a release.

We don't have a date for the 3.0 release.  Given the amount of changes
introduced by 3.0, I suspect that the first few releases will not work out
of the box for any machine but the ones for which we can test (decstations
[mips and alpha], linux).  Consequently, I expect a high rate of releases
for a while.  We will try to post accurate information about the status of
each machine, but we can only rely what you tell us.

At this point, I would not encourage anybody to start a new port.  If you
have a new port, or are close to complete one, you can send us your bits,
we will try to put them in 3.0.

-- 
Eric.



======================================================================= 49 ===
Date:    Thu, 12 Aug 93 23:11:50 EDT
From:    David Sims <dsims@thor.ece.uc.edu>
Subject: Re: Next release [was: Modula3 compiler for Linux?]

Thanks for the update on the status of DEC SRC M3 3.0.

One question that wasn't answered though: what about the threads
interface to real threads packages?  How hard would it be to configure
3.0 so that it would be easy to interface a new threads package to it?
For example, given a Sun Solaris implementation of M3, I would like to
make it work with Solaris threads.

Thanks.
-- 
David L. Sims               Dept. of Electrical and Computer Engineering
david.sims@uc.edu           University of Cincinnati
+1 (513) 556-2499           Cincinnati Ohio  45221-0030
PGP mail preferred.         USA


======================================================================= 50 ===
Date:    13 Aug 1993 04:42:55 -0700
From:    jsoft!ggf@uu4.psi.com (Gary Frederick)
Subject: Re: Next release [was: Modula3 compiler for Linux?]

Date: Fri, 13 Aug 93 06:14:53 -0500
X-Received: by jsoft (NX5.67c/NX3.1S)
X-Received: by src-mail.pa.dec.com; id AA23823; Fri, 13 Aug 93 04:42:52 -0700
X-Received: by NeXT.Mailer (1.87.1)
X-Received: by inet-gw-1.pa.dec.com; id AA01596; Fri, 13 Aug 93 04:42:47 -0700
X-Received: by NeXT Mailer (1.87.1)
X-Received: from jsoft.UUCP by uu4.psi.com (5.65b/4.0.071791-PSI/PSINet) via UU
CP;
X-Received: by src-news.pa.dec.com; id AA08635; Fri, 13 Aug 93 04:42:54 -0700

Eric Muller <muller@src.dec.com> wrote:

 ...
3. one back-end has been implemented on top of gcc.  The implementation of
  M3CG interface generates the tree representation used internally in gcc.
  From the gcc point of view, this back-end looks like a new front-end.
  Using this back-end, we have cross-compiled solitaire for mips, alpha and
  386 processors; there is no reason to believe that there would be a
  problem for the other architectures supported by gcc.


Can you give any details?

Gary


======================================================================= 51 ===
Date:    13 Aug 93 13:00:25
From:    wolfe@bhars443.BNR.CA (Ian Woollard)
Subject: Re: forth/fifth generation languages?

I think that (in fact I believe that) real fifth generation languages
are going to be increasingly more formal, and more diagrammatic.

Technologies like Entity Relationship Diagrams and object oriented
analysis are maturing rapidly, and atleast seem to be giving a
productivity boost, whilst being reviewable by customers, and
engineers alike.

The shift is starting: originally from hex to assembler, from
assembler to high level, from high level to application specific, and
from there to application independent analyses...

Current languages only support one small area of the development
cycle i.e. coding , fifth generation languages will need to support more:

Analysis, testing, coding, verification of requirements... control of changes e
tc. etc.

-Ian.
--


-Ian
<It's a quantum thing. It is indeterminate whether one exists until
someone /usr/bin/fingers you to find out.>
<I'm logged in so therefore I am.>


======================================================================= 52 ===
Date:    13 Aug 93 01:40:49 GMT
From:    kmb%cameron@nice.delme.north.de (Kai M. Becker)
Subject: Re: forth/fifth generation languages?


Can anyone tell me, why this diskussion goes on in so many groups
simultaneously? Cleaning up my news archive has become a hard job.

I propose, to post follow-ups to "Fourth/Fifth ..." to comp.software-eng.

-- Kai


======================================================================= 53 ===
Date:    12 Aug 1993 21:03:06 -0700
From:    frode@ODEGARD.COM (Frode Odegard)
Subject: Modula-3 - is it too big?

Date: Thu, 12 Aug 93 18:50:03 PDT
X-Received: from rand.ODEGARD.COM by ODEGARD.COM (4.1/SMI-4.1)
X-Received: by src-mail.pa.dec.com; id AA12808; Thu, 12 Aug 93 21:03:03 -0700
X-Received: by rand.ODEGARD.COM (4.1/SMI-4.1)
X-Received: by inet-gw-2.pa.dec.com; id AA04924; Thu, 12 Aug 93 21:03:02 -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 AA08387; Thu, 12 Aug 93 21:03:05 -0700

Kevin So <soxman@cairo.anu.edu> asks about issues pertaining to
upgrading from Modula-2 to Modula-3.  Here's some stuff from the top
of my head.

Safety:
	Modula-3 is safer than Modula-2.  Both languages have safe and
        unsafe features, but Modula-2 forces the programmer to use unsafe
        features in order to "simulate" generics, inheritance, etc.
        Two important features in Modula-3 relevant to safety are
	automatic garbage collection and exception handling.  With
	exception handling the programmer has a harder time avoiding
	handling of error situations. With garbage collection one
	avoids memory leaks and dangling pointers, and one doesn't
	have to worry about allocation and deallocation issues when
	writing definition modules (or interfaces, as they are called
	in Modula-3.)  Also, while Modula-2's support for concurrency
	consists of low-level coroutines, Modula-3 has higher-level
	threads.  With Modula-2 coroutines, some implementations
	provided multiple heaps, so that one could have a separate
	sub-heap for a coroutine instead of having it allocate from
	the global heap.  In Modula-3, concurrency and memory management
	poses no such problems.

Portability:
	The interfaces in SRC M-3 V2.* need to be cleaned up, but this
	seems to have been taken care of in V3.0.  For the language as
	such, well, it doesn't have a formal definition like ISO M-2,
	but the programmer is less likely to have to simulate a missing
	feature using non-portable low-level programming.

Expressiveness:

	Modula-3 has a really nice type system compared to Modula-2,
	and wins hands down because of that.  Using the Word interface
	is very, very awkward, for low-level programming I miss the
	Modula-2 CARDINAL type (unsigned integer, but same number bits
	as INTEGER, in M-3 and Oberon, CARDINAL is just a subrange of
	INTEGER.)  Modula-3 also supports blocks and I like the
	syntactic sugar for locking a mutex [LOCK m DO .. END].  It
	is easy to do object-oriented multi-programming in Modula-3,
	the way objects and threads are integrated in the language
	deserves some admiration.

Reusability:

	Modula-3 is much better off than Modula-2, it has generics and
	objects. Although Modula-3 generics are a quite clumsy, it's
	better than nothing.

Compiler complexity:

	Heheh....hahahahahahahaha....okay..a few years ago, Prof. Wirth
	implemented a single pass Modula-2 compiler, working at home in
	the evenings.  When he was done it was around 5,000 lines of code.
	That Modula-2 compiler could probably compile itself in the time
	it takes to do a wc -l on source for the V3.0 SRC compiler.

Execution speed:

	Modula-2 is more low-level and has a slight advantage here.
	It does not have to deal with garbage collection and a large
	and complex run-time system.  Threadsshould be about the same,
	most Modula-2 people want to use a higher-level threads
	package on top of the coroutines anyway.  My guess is that
	some mature Modula-2 compilers would do a much better job on
	producing optimized code than the upcoming V3.0 compiler, but
	since it isn't here yet, it's hard to know..

				- 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)


======================================================================= 54 ===
Date:    13 Aug 1993 04:42:52 -0700
From:    jsoft!ggf@uu4.psi.com (Gary Frederick)
Subject: Modula-3 for the NeXT

Date: Fri, 13 Aug 93 05:43:32 -0500
X-Received: by jsoft (NX5.67c/NX3.1S)
X-Received: by src-mail.pa.dec.com; id AA23819; Fri, 13 Aug 93 04:42:47 -0700
X-Received: by NeXT.Mailer (1.87.1)
X-Received: by inet-gw-1.pa.dec.com; id AA01573; Fri, 13 Aug 93 04:42:39 -0700
X-Received: by NeXT Mailer (1.87.1)
X-Received: from jsoft.UUCP by uu4.psi.com (5.65b/4.0.071791-PSI/PSINet) via UU
CP;
X-Received: by src-news.pa.dec.com; id AA08626; Fri, 13 Aug 93 04:42:49 -0700

There's a version of Modula-3 on the NeXT archive at orst.  You need  
to rename it from:
  m3.NEXT.2.11.Z
to
  m3.NEXT.2.11.compressed
to install it.

It's in .../next/binaries/prolang

Oregon State's NeXT archive is cs.orst.edu.

It's my usual build it, compile a hello world program then run out of  
time version.  It includes libraries.

The name was changed after I submitted it.  oops.

Gary
ggf@jsoft.com



======================================================================= 55 ===
Date:    Fri, 13 Aug 1993 01:23:19 GMT
From:    ammann@cs.sfu.ca (Ammann Manuel)
Subject: m3 version stamp error

VERSION STAMP COMPILER ERROR


I keep getting the version stamp error which is shown below.

Changing the version stamps by resaving the files does not seem to help.
Neither does cleaning out all object files and compiling from the sources.

Any ideas as to how to remove this error are greatly appreciated.

Manuel


The error message:

 m3make -f TestList.m3mk
ld.so: warning: /usr/lib/libc.so.1.6 has older revision than expected 8
/home/dk9/m3-2.11/bin/m3 -w1 -make -why -g    -o TestList ./TextList.i3  ./Text
List.m3  ./ListText.i3  ./ListText.m3  ./TestList.m3 
ld.so: warning: /usr/lib/libc.so.1.6 has older revision than expected 8
stale imports -> compiling ./TextList.i3
ld.so: warning: /usr/lib/libc.so.1.6 has older revision than expected 8
version stamp mismatch: TextList.T
  <44dcf6783d3c1479>
     TextList.i3  TextList.m3  
  <d4d84ab23a7dfcad>
     TextList.i3  
version stamp multiply defined: TextList.T:
  <44dcf6783d3c1479> in TextList.i3
  <d4d84ab23a7dfcad> in TextList.i3

Fatal Error: bad version stamps

*** Error code 255
make: Fatal error: Command failed for target `TestList'


The modules:

INTERFACE TextList=ListADT(ListText) END TextList.

MODULE TextList=ListADT(ListText) END TextList.
 
INTERFACE ListText; TYPE T=TEXT; END ListText.

MODULE ListText; BEGIN END ListText.
 
GENERIC INTERFACE ListADT(Elem);
....Elem.T....
END ListADT.

GENERIC MODULE ListADT(Elem);
...Elem.T....
END ListADT.

The m3makefile:

module(TextList)
module(ListText)
implementation(TestList)
program(TestList)




======================================================================= 56 ===
Date:    Fri, 13 Aug 1993 14:35:53 GMT
From:    mlo@dcs.qmw.ac.uk (Mike Osborne)
Subject: Re: m3 version stamp error

In <1993Aug13.012319.3691@cs.sfu.ca> ammann@cs.sfu.ca (Ammann Manuel) writes:

>VERSION STAMP COMPILER ERROR


>I keep getting the version stamp error which is shown below.

>Changing the version stamps by resaving the files does not seem to help.
>Neither does cleaning out all object files and compiling from the sources.

>Any ideas as to how to remove this error are greatly appreciated.

>Manuel

[errors deleted]

Have you checked that TextList.T is not used somewhere else, e.g. in one
of the standard library interfaces. Try changing the name of your type,
to something else say MyTextList.T see if this gets around the problem.

Mike


-- 
Michael Osborne	                  	Internet:  mlo@dcs.qmw.ac.uk
Queen Mary & Westfield College		Computer Science Dept
Mile End Road                   	Telephone: +44 71-975 5250/33
LONDON, E1 4NS, UK             		Fax:       +44 81-980 6533


======================================================================= 57 ===
Date:    13 Aug 1993 17:29:07 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Re: Next release [was: Modula3 compiler for Linux?]

I have been asked for details about threads and the gcc-based back-end.


Our prototype for Windows NT uses native threads.  The WNT port for
3.x will do the same.  It should be a good model for other
implementations of Thread that use that native operating system
threads.


gcc has two internal representations of the program.  One is some sort
of AST, (let's call it the tree representation, look in tree.def in
gcc sources for details), that is produced by the parsers and is
independent of the target machine.  It is then transformed by
language-independent code into RTL, but this RTL is machine-dependent
(for example, the code that generates the RTL knows about the calling
conventions of the architecture and from the very beginning, this RTL
incorporates that knowledge).  Therefore, when adding a new language
to gcc, one really wants to build the AST representation.

M3CG is a virtual machine, with a stack, and it describes the
operations to be performed at a very low level.  All the operations
are in terms of 8, 16, 32 and 64 bit signed and unsigned integers,
floating point numbers, addresses.  For example, here the M3CG code
for Text.GetChar:

	declare_procedure   Text__GetChar 0 F Word * p.4
	declare_param     t 4 4 T.8 Addr F F 50 v.15
	declare_param     i 4 4 T.11 Word T F 50 v.16
	declare_local     _result 1 1 T.3 Word F F 50 v.17
	begin_procedure   p.4
					-----LINE 50  -----
					-----LINE 51  -----
	load              v.15 0 Addr
	load_indirect     4 Int
	load_integer      1
	subtract          Int
	load              v.16 0 Word
	if_ne             L.13 Int 20
	load              v.16 0 Word
	load_integer      1
	add               Int
	store             v.16 0 Word
. L.13 F
					-----LINE 52  -----
	load              v.15 0 Addr
	load_indirect     0 Addr
	load              v.15 0 Addr
	load_indirect     4 Int
	load              v.16 0 Word
	swap              Int Word
	check_index      
	index_address     1
	load_indirect     0 Word.8
	exit_proc         Word
	end_procedure     p.4

The T.<n> are type descriptions used only for debugging; for code
generation purpose, it is enough to know that the parameter t takes 4
bytes, is 4 bytes aligned, and can be manipulated as an Address. 

The code I wrote turns this M3CG code into an equivalent tree
representation and invokes the procedures that turn this into RTL and
eventually into assembly.  For gcc, my code is essentially a parser
for a new language.  Fortunately, I was able to do all this with very
few modifications to gcc.  The only big thing (10 lines or so !) is
for nested procedures:  M3CG was a bit too level for the tree
representation, so I had to extend it a bit. 

As you can guess from this short example, it should be easy to write
different code generators if needed.  gcc was just a convenient one to
use to go to a wide range of machines. 

Let me know if you want more details.

-- 
Eric.



======================================================================= 58 ===
Date:    15 Aug 93 16:24:33
From:    dat@ukc.ac.uk (D.A.Turner)
Subject: Re: forth/fifth generation languages?

I am surely not alone in finding it just a trifle crazy that this thread
is  being  cross-posted  to  FIFTEEN  (!!) newsgroups.  Can I repeat the
appeal to anyone who wants to continue  this  thread  to  post  ONLY  to
comp.lang.misc?  Thanks a lot.

David Turner
(a comp.lang.functional subscriber)


======================================================================= 59 ===
Date:    Sun, 15 Aug 1993 13:41:31 GMT
From:    vanroy@prl.dec.com (Peter Van Roy)
Subject: Re: forth/fifth generation languages?

In article <245kpl$bab@sol.ctr.columbia.edu>, shenkin@still3.chem.columbia.edu 
(Peter Shenkin) writes:
 
> Most people think of FORTH and APL as 3rd-generation;  in fact, FORTH might
> be closer to 2nd generation.

> Some other successful and ongoing 4th-generation languages are:
> 
> 	PostScript

Why is Forth 3rd generation and PostScript 4th generation?

My programming experience in both Forth and PostScript leads me
to say that:

   PostScript = Forth + dynamic typing + graphics library

(Although I confess ignorance about whether Forth's BUILDS-DOES
facility can be done in PostScript.)

Is it the fact that PostScript is *embedded* in hardware used for
other purposes than computing, that makes it 4th generation?

Languages should be classified along lots of axes, not along the
single axis of "generation".  The force-fitting onto this single
axis just muddies the whole process of language comparison.

Peter

----------------------------------------------------------------
Peter Van Roy                      DEC Paris Research Laboratory
Email: vanroy@prl.dec.com              Phone: (33)-1-47.14.28.65


======================================================================= 60 ===
Date:    16 Aug 93 13:58:02
From:    cbarber@apricot-fddi.bbn.com (Chris Barber)
Subject: Compiler for Solaris 2.2?

Is anyone working on a port to SPARC/Solaris 2.2 (aka SunOS 5.2) ?

--
Christopher Barber
(cbarber@bbn.com)


======================================================================= 61 ===
Date:    16 Aug 1993 21:03:16 -0700
From:    warren@cyberspace.com (Warren Victorian)
Subject: What are these?

I found these wierd international phone sex lines in a magazine the
otherday and I was just wondering how these people can offer a service
like this for free. It makes no sence to me. Anyways it is pretty hardcore
and anyone into that type of stuff should give it a shout.

    011-239-129-2618
	   or
    011-239-129-2620



======================================================================= 62 ===
Date:    13 Aug 93 16:11:48 GMT
From:    Simon 'Linux' Johnston <skj@rb.icl.co.uk>
Subject: Re: Looking for compiler for linux

Eric Muller (muller@src.dec.com) wrote:
: Our next release of Modula-3 will run on both machines.  We do not
: have a target data at this point, so watch this newsgroup for an
: annoucement.

Hi, I would certainly be interested in the Linux port, and after reading
your announcement concerning the features and status of v3.0 I would 
really like to hear at least an estimated date. I am interested in both
the Linux port and an OS2 port, but I can't start this without at least
a running Linux one. Can we at least have access to some beta version
for testing ?

BTW here at ICL I have just set up a mailing list for internal use (uses
an ICL X400 mailing system, part of OfficePower software) and was
surprised how many people here are interested.


,------------------------------------------------------------------------------
.
| Simon K. Johnston - Development Engineer               | ICL Retail Systems, 
|
| ------------------------------------------------------ | 3/4 Willoughby Road,
|
| Unix Mail : S.K.Johnston.bra0801@oasis.icl.co.uk       | Bracknell, Berks,   
|
| Telephone : +44 (0)344 476320   Fax: +44 (0)344 476084 | United Kingdom      
|
| Internal  : 7621 6320    OP Mail: S.K.Johnston@BRA0801 | RG12 8TJ            
|
`------------------------------------------------------------------------------
'


======================================================================= 63 ===
Date:    Tue, 17 Aug 93 15:30:55 edt
From:    Hendrik Boom <hendrik%vedge.UUCP@IRO.UMontreal.CA>
Subject: Re: Next release [was: Modula3 compiler for Linux?]

In article <24gj13$qsu@src-news.pa.dec.com> you write:
: I have been asked for details about threads and the gcc-based back-end.
: 
......
......
: 
: The code I wrote turns this M3CG code into an equivalent tree
: representation and invokes the procedures that turn this into RTL and
: eventually into assembly.  For gcc, my code is essentially a parser
: for a new language.  Fortunately, I was able to do all this with very
: few modifications to gcc.  The only big thing (10 lines or so !) is
: for nested procedures:  M3CG was a bit too level for the tree
: representation, so I had to extend it a bit. 
: 
: As you can guess from this short example, it should be easy to write
: different code generators if needed.  gcc was just a convenient one to
: use to go to a wide range of machines. 
: 
: Let me know if you want more details.
: 
: -- 
: Eric.
: 

I presume there will be no attempt to generate C code any more.

Is there an OS/2 port in the works?

As of the last release, which generated C, it looked as if an OS/2
port would involve mainly tinkering with the libraries.
Now it seems as if nontrivial code generation work will be
necessary as well -- or else ripping gcc into shreds.

I've always been unesy about things like object files, debugging info, etc
with the various gcc poirts on OS/2 -- they never seem quite compatible
with the way OS/2 does things, and have had trouble getting
EMX GCC to coexist with CSET -- just having the two on one machine seemed
to generate conflicts, never mind trying to link code from one with the other.

--
-------------------------------------------------------
Try one or more of the following addresses to reply.
at work:	hendrik@vedge.com,  iros1!vedge!hendrik
at home:	uunet!ozrout!topoi!hendrik
		hendrik@topoi.uucp



======================================================================= 64 ===
Date:    17 Aug 1993 22:48:07 -0700
From:    goldberg@parc.xerox.com (David Goldberg)
Subject: names in Modula-3

Date: Tue, 17 Aug 1993 22:44:58 PDT
X-Received: by arcturia.parc.xerox.com id <8488>; Tue, 17 Aug 1993 22:45:09 -07
00
X-Face: "8f"c;6Z}TbIq0Io35sH8vqkT(rdm-ofN~D%vb&ABJ;{Ar/{aIx?\}{Z!fa!-Ray\I~WzB3
X-Received: by src-mail.pa.dec.com; id AA11459; Tue, 17 Aug 93 22:48:05 -0700
X-Received: by inet-gw-1.pa.dec.com; id AA08889; Tue, 17 Aug 93 22:48:04 -0700
X-Received: from arcturia.parc.xerox.com ([13.2.116.23]) by alpha.xerox.com wit
h SMTP id <12095>; Tue, 17 Aug 1993 22:45:16 PDT
X-Received: by src-news.pa.dec.com; id AA15667; Tue, 17 Aug 93 22:48:05 -0700

Experimentally, the compiler allows a module named Foo to have a type
named Foo, but a scope can't have both a constant and a type named
Foo.
 
Is this addressed by SPwM3? It wasn't immediately obvious to me
whether the answer is contained in the language definition there.
 
        David Goldberg
        goldberg@parc.xerox.com


======================================================================= 65 ===
Date:    Wed, 18 Aug 93 16:41:18 BST
From:    bugtales@open.ac.uk (Marc Eisenstadt)
Subject: 'MY HAIRIEST BUG' TALES: REPEATED REQUEST

SUMMARY: Collecting debugging stories for analysis+archive. Please send yours!
 
We are collecting anecdotes describing memorable debugging experiences, with
the aim of analysing them and building an archive to assist programmers in the
future.  We will gratefully accept any stories describing very thorny software
bugs, ideally (but not exclusively) involving large software projects and
expert programmers.  A brief stream-of-consciousness reply right now would be
much better than a detailed story that becomes too time-consuming for you to
finish.  We can get back to you with further questions if necessary.  Thanks.

That's it! Next are OPTIONAL headings & FTP/email ways to access our study.
---------------------------------------------------------------------------

SUGGESTED OPTIONAL HEADINGS to facilitate later analysis & retrieval are
supplied below. Please ignore these if they stifle your motivation, otherwise
copy/paste :HEADING: labels into your reply. 1-liners (except STORY) are
ideal.

:DISTRIBUTION: UNRESTRICTED | anyBBS | Internet-only | private 
:ANONYMITY:    keep-author-anonymous | use-name-only | use-name-&-email
:EXPERIENCE:   e.g. (at time of incident) 7 years industrial C programmer 
:HARDWARE:     e.g. 486
:OS:           e.g. DOS 5 + Windows 3.1
:LANGUAGE:     e.g. M'Soft Visual C++
:LIBRARIES:    e.g. Microsoft Foundation Class
:TASK:         e.g. writing disk-cacheing software
:SYMPTOM:      e.g. machine crashed after 40,000 iterations
:HOW-NOTICED:  e.g. end-user reported it | obvious | Q.A. spotted it | etc.
:WHY-HARD:     (one or more of...) intermittent | inconsistent | infrequent |
               too-many-degrees-of-freedom | cause-far-from-effect | 
               bug-consumed-evidence | Heisenbug-ran-OK-with-debugger | 
               tedious-to-replicate | context-precluded-debugger-usage |    
               unstructured-code | thought-<X>-was-<Y> | misdirected-blame | 
               faulty-assumption | <other>
:HOW-SOLVED:   (one or more of...) single-step | wrap-in-profiling-code |
               print-statements | dump-data-study-diffs | conditional-breaks |
               special-tool | gestation-meditation | explain-to-friend | 
               expert-advice | controlled-experiment | <other>
:ROOT-CAUSE:   (one or more of...) memory-clobbered | fault-of-vendor |
               faulty-design-logic | bad-init-or-type-decl | wrong-var-or-op |
               lexical-or-parsing-or-typo | language-semantics-misunderstood |
               subtle-end-user-behavior | still-unsolved | <other> 
:HEADLINE:     e.g. MSC disk-cache crash after 40K steps, array index err*
:STORY:        <as lengthy as you have the patience to write!>
:MORAL:        e.g. don't use pointers without comments 

*The :HEADLINE: is a one-line overview of the story which will be CRUCIAL
for helping others pick it out from among thousands listed in a directory,
and therefore should concisely convey the key gist of the story.  The
categories for :WHY-HARD:, :HOW-SOLVED:, and :ROOT-CAUSE: have proved
effective in the past, but they are just there to jog your memory. Your own
words (or a combination of the suggested categories plus your own words)
may be best.

DATA/ANALYSES/MOTIVATION VIA FTP OR EMAIL: 
If you are interested in data from the previous 'trawls', or our conclusions 
drawn from them, or a detailed discussion of the motivation for this study, 
the relevant documents can be obtained by anonymous FTP from hcrl.open.ac.uk
(in the directory /pub/bugtales).   We will also be setting up an email
list-server facility to deal with correspondence.  In the meantime, comments,
suggestions, and requests for emailed publications can be directed to 
M.Eisenstadt@open.ac.uk.  Stories should be sent to Bugtales@open.ac.uk.

Incidentally, since we introduced the 'suggested headings' (e.g. :SYMTPOM:,
:ROOT-CAUSE:, etc.) most of the respondents have in fact been using them, which
is a great help to us.  Many thanks for your time and interest!
Finally, thanks to Dan LaLiberte for suggesting the :HOW-NOTICED: category,
and to Simon Masterton for assisting with data collection and analysis.

-Marc Eisenstadt (Personal email: M.Eisenstadt@open.ac.uk)

    _/    _/  _/_/_/_/  _/_/_/_/  _/    Human Cognition Research Lab
   _/    _/  _/        _/    _/  _/     The Open University
  _/_/_/_/  _/        _/_/_/_/  _/      Milton Keynes MK7 6AA, U.K.
 _/    _/  _/        _/  _/    _/       Tel: +44 908 65-3800  Fax: -3169
_/    _/  _/_/_/_/  _/    _/  _/_/_/_/  Internet: Bugtales@open.ac.uk











======================================================================= 66 ===
Date:    18 Aug 1993 16:28:44 GMT
From:    detlefs@src.dec.com (Dave Detlefs)
Subject: Re: names in Modula-3

David Goldberg asks:

  Experimentally, the compiler allows a module named Foo to have a type
  named Foo, but a scope can't have both a constant and a type named
  Foo.

  Is this addressed by SPwM3? It wasn't immediately obvious to me
  whether the answer is contained in the language definition there.

Section 2.4 of SPwM3 says

  The declarations of a block can introduce a name at most once,
  though a name may be redeclared in nested blocks, and a procedure
  declared in an interface can be redeclared in a module exporting the
  interface.

I read this to say pretty clearly that a scope cannot have a constant
and a type with the same name, since both constant and type
declarations introduce names.

Also relevant is section 2.5.3 of SPwM3:

  Except for the redeclaration of exported procedures, the names
  declared at the top level of "Block" [an instance of the syntax
  class of this name in the grammar], the visible imported names, and
  the names declared in exported interfaces must be distinct.

Hope this helps.

Dave


======================================================================= 67 ===
Date:    18 Aug 1993 17:12:37 GMT
From:    fraser@eros.europarc.xerox.com (Quentin Stafford-Fraser)
Subject: Scripting Languages?


I'm looking for a good script language to embed in an M3-based
system. The nicest would be Python, or something lispy, but I guess it
might have to be Tcl.  My only fixed requirement is the ability to
callback to the script language.

Does anybody have any experience, recommendations, or (best of all)
interfaces I could use, before I embark on it? I have found the Tcl
stuff with an unsigned README (by Eric M?) saying that there were
problems with garbage collection, but haven't tried it yet... 

Thanks,
Quentin Stafford-Fraser

--

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Quentin Stafford-Fraser                        Tel:  +44 223 341521    	     
Rank Xerox EuroPARC,                           Fax:  +44 223 341510     
61 Regent Street,                              Home: +44 223 324451
Cambridge, CB2 1AB
United Kingdom                                 Fraser@europarc.xerox.com 


======================================================================= 68 ===
Date:    Tue, 17 Aug 1993 20:10:42 +0000
From:    bugtales@open.ac.uk (bugtales)
Subject: 'MY HAIRIEST BUG' TALES: REPEATED REQUEST

SUMMARY: Collecting debugging stories for analysis+archive. Please send yours!
 
We are collecting anecdotes describing memorable debugging experiences, with
the aim of analysing them and building an archive to assist programmers in the
future.  We will gratefully accept any stories describing very thorny software
bugs, ideally (but not exclusively) involving large software projects and
expert programmers.  A brief stream-of-consciousness reply right now would be
much better than a detailed story that becomes too time-consuming for you to
finish.  We can get back to you with further questions if necessary.  Thanks.

That's it! Next are OPTIONAL headings & FTP/email ways to access our study.
---------------------------------------------------------------------------

SUGGESTED OPTIONAL HEADINGS to facilitate later analysis & retrieval are
supplied below. Please ignore these if they stifle your motivation, otherwise
copy/paste :HEADING: labels into your reply. 1-liners (except STORY) are
ideal.

:DISTRIBUTION: UNRESTRICTED | anyBBS | Internet-only | private 
:ANONYMITY:    keep-author-anonymous | use-name-only | use-name-&-email
:EXPERIENCE:   e.g. (at time of incident) 7 years industrial C programmer 
:HARDWARE:     e.g. 486
:OS:           e.g. DOS 5 + Windows 3.1
:LANGUAGE:     e.g. M'Soft Visual C++
:LIBRARIES:    e.g. Microsoft Foundation Class
:TASK:         e.g. writing disk-cacheing software
:SYMPTOM:      e.g. machine crashed after 40,000 iterations
:HOW-NOTICED:  e.g. end-user reported it | obvious | Q.A. spotted it | etc.
:WHY-HARD:     (one or more of...) intermittent | inconsistent | infrequent |
               too-many-degrees-of-freedom | cause-far-from-effect | 
               bug-consumed-evidence | Heisenbug-ran-OK-with-debugger | 
               tedious-to-replicate | context-precluded-debugger-usage |    
               unstructured-code | thought-<X>-was-<Y> | misdirected-blame | 
               faulty-assumption | <other>
:HOW-SOLVED:   (one or more of...) single-step | wrap-in-profiling-code |
               print-statements | dump-data-study-diffs | conditional-breaks |
               special-tool | gestation-meditation | explain-to-friend | 
               expert-advice | controlled-experiment | <other>
:ROOT-CAUSE:   (one or more of...) memory-clobbered | fault-of-vendor |
               faulty-design-logic | bad-init-or-type-decl | wrong-var-or-op |
               lexical-or-parsing-or-typo | language-semantics-misunderstood |
               subtle-end-user-behavior | still-unsolved | <other> 
:HEADLINE:     e.g. MSC disk-cache crash after 40K steps, array index err*
:STORY:        <as lengthy as you have the patience to write!>
:MORAL:        e.g. don't use pointers without comments 

*The :HEADLINE: is a one-line overview of the story which will be CRUCIAL
for helping others pick it out from among thousands listed in a directory,
and therefore should concisely convey the key gist of the story.  The
categories for :WHY-HARD:, :HOW-SOLVED:, and :ROOT-CAUSE: have proved
effective in the past, but they are just there to jog your memory. Your own
words (or a combination of the suggested categories plus your own words)
may be best.

DATA/ANALYSES/MOTIVATION VIA FTP OR EMAIL: 
If you are interested in data from the previous 'trawls', or our conclusions 
drawn from them, or a detailed discussion of the motivation for this study, 
the relevant documents can be obtained by anonymous FTP from hcrl.open.ac.uk
(in the directory /pub/bugtales).   We will also be setting up an email
list-server facility to deal with correspondence.  In the meantime, comments,
suggestions, and requests for emailed publications can be directed to 
M.Eisenstadt@open.ac.uk.  Stories should be sent to Bugtales@open.ac.uk.

Incidentally, since we introduced the 'suggested headings' (e.g. :SYMTPOM:,
:ROOT-CAUSE:, etc.) most of the respondents have in fact been using them, which
is a great help to us.  Many thanks for your time and interest!
Finally, thanks to Dan LaLiberte for suggesting the :HOW-NOTICED: category,
and to Simon Masterton for assisting with data collection and analysis.

-Marc Eisenstadt (Personal email: M.Eisenstadt@open.ac.uk)

    _/    _/  _/_/_/_/  _/_/_/_/  _/    Human Cognition Research Lab
   _/    _/  _/        _/    _/  _/     The Open University
  _/_/_/_/  _/        _/_/_/_/  _/      Milton Keynes MK7 6AA, U.K.
 _/    _/  _/        _/  _/    _/       Tel: +44 908 65-3800  Fax: -3169
_/    _/  _/_/_/_/  _/    _/  _/_/_/_/  Internet: Bugtales@open.ac.uk











======================================================================= 69 ===
Date:    Wed, 18 Aug 93 21:14:30 GMT
From:    norman@flaubert.bellcore.com (Norman Ramsey)
Subject: Re: Scripting Languages?

In article <FRASER.93Aug18181237@eros.europarc.xerox.com> fraser@eros.europarc.
xerox.com (Quentin Stafford-Fraser) writes:
>I'm looking for a good script language to embed in an M3-based
>system. The nicest would be Python, or something lispy, but I guess it
>might have to be Tcl.  My only fixed requirement is the ability to
>callback to the script language.

PostScript!  PostScript!

I'll be happy to send you some code for a version of postscript.
My version does no graphics, and it has some variant string operators
that take advantage of garbage collection.  Think of it as FORTH with
types :-)

Norman


======================================================================= 70 ===
Date:    18 Aug 1993 18:37:20 -0700
From:    frode@ODEGARD.COM (Frode Odegard)
Subject: Scripting Languages?

Date: Wed, 18 Aug 93 13:25:53 PDT
X-Received: from rand.ODEGARD.COM by ODEGARD.COM (4.1/SMI-4.1)
X-Received: by src-mail.pa.dec.com; id AA03378; Wed, 18 Aug 93 18:37:18 -0700
X-Newsgroups: comp.lang.modula3
X-Received: by rand.ODEGARD.COM (4.1/SMI-4.1)
X-Received: by inet-gw-2.pa.dec.com; id AA10819; Wed, 18 Aug 93 18:37:15 -0700
X-Received: from surak.UUCP by cs (5.65/A/UX-3.00-930326)
X-Received: by src-news.pa.dec.com; id AA27245; Wed, 18 Aug 93 18:37:18 -0700

How about a Modula-3 interpreter?

			- Frode


======================================================================= 71 ===
Date:    19 Aug 1993 17:06:22 GMT
From:    Eric Muller <muller@src.dec.com>
Subject: Re: Scripting Languages?

|> I'm looking for a good script language to embed in an M3-based
|> system.

I have a small lisp interpreter, written in Modula-3, that let you
hook Modula-3 code to lisp functions.  It has been used to provide a
fast turnaround environment to develop Zeus animations.

Luca Cardelli designed Obliq, another small language with an
interpreter.  His system is very well integrated with Network Objects.

I think I still have a version of S(mall)Lisp that will run on 2.11.
Let me know if you are interested.

-- 
Eric.



======================================================================= 72 ===
Date:    Thu, 19 Aug 1993 12:59:31 GMT
From:    gm@informatik.uni-rostock.de (Guenter Millahn)
Subject: Re: 'MY HAIRIEST BUG' TALES: REPEATED REQUEST

bugtales (bugtales@open.ac.uk) wrote:
> SUMMARY: Collecting debugging stories for analysis+archive. Please send yours
!

I believe it's enough to post this article to one or two
newsgroups but not to all !!!

Guenter

--

Guenter Millahn, Systems and Network Administrator
University of Rostock, Computer Science Department


======================================================================= 73 ===
Date:    Thu, 19 Aug 93 14:31:19 EDT
From:    Geoff.Wyant@East.Sun.COM (Geoffrey Wyant - Sun Microsystems Labs BOS)
Subject: Re: Scripting Languages?

I'd be interested in a version of SmallLisp as extension
language for some things I'm doing...

--geoff

--
Geoff Wyant
Geoff.Wyant@east.sun.com
Sun Microsystems Laboratories, Inc.

2 Elizabeth Drive
Chelmsford, Ma.
01824


======================================================================= 74 ===
Date:    Fri, 20 Aug 1993 13:53:58 -0400
From:    Byron Weber Becker <bwbecker@watdragon.uwaterloo.ca>
Subject: Re: Scripting Languages?

In article <250bue$lsn@src-news.pa.dec.com> you write:
>|> I'm looking for a good script language to embed in an M3-based
>|> system.
>
>I have a small lisp interpreter, written in Modula-3, that let you
>hook Modula-3 code to lisp functions.  It has been used to provide a
>fast turnaround environment to develop Zeus animations.
>
>Luca Cardelli designed Obliq, another small language with an
>interpreter.  His system is very well integrated with Network Objects.
>
>I think I still have a version of S(mall)Lisp that will run on 2.11.
>Let me know if you are interested.

I'd be interested in seeing this.  I'm teaching a class at University
of Waterloo that uses both M3 and Scheme.  This might be useful to
bring the 2 together in some neat ways.

Byron

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


======================================================================= 75 ===
Date:    Fri, 20 Aug 1993 13:28:52 +0000
From:    Andrew@rtal.demon.co.uk (Andrew Cadach)
Subject: Extacy portable Oberon-2 and Modula-2 compiler demo is available on ft
p

We apologize for delay with upload of  Extacy  Professional  Development
System version 1.30.6 caused by summer holidays time at RTA.

We are very thankful for your valuable contributions and comments  which
are reflected in new demo version.

List of changes is included into demo package.

                              Availability
                              ------------

A free  demo  for  MS  DOS  is  available  on  Internet  ftp  sites  and
CompuServe. It is 132K PKZIP 2.04g archive. To decompress  the  archive,
type at MS DOS prompt

    > pkunzip xc1306.zip
    > copy *.txt prn

To access from CompuServe, type "GO PCVENH" (PC Vendor H forum)  at  any
"!" CompuServe prompt. The file is placed in the "RTA Ltd" library.

It is also available on Internet anonymous ftp sites (please  notice  it
can take up to several days for ftp service to mirror)

oak.oakland.edu (USA):
    /pub/msdos/pgmutl/xc1306.zip
wuarchive.wustl.edu (USA):
    /mirrors/msdos/pgmutl/xc1306.zip
ftp.uu.net (USA):
    /systems/ibmpc/msdos/simtel20/pgmutl/xc1306.zip
src.doc.ic.ac.uk (UK):
    /computing/systems/ibmpc/simtel20/pgmutl/xc1306.zip
ftp.uni-padeborn.de (Germany):
    /msdos/pgmutl/xc1306.zip
nic.switch.ch (Switzerland):
    /mirror/msdos/pgmutl/xc1306.zip
nic.funet.fi (Finland):
    /pub/msdos/programming/pgmutl/xc1306.zip
ftp.technion.ac.il (Israel):
    /pub/unsupported/dos/simtel/pgmutl/xc1306.zip
archie.au (Australia):
    /micros/pc/oak/pgmutl/xc1306.zip
ftphost.vow.ac.nz (New):
    /pub/ms-dos/Lang/Oberon/xc1306.zip
nctuccca.edu.tw (Taiwan):
    /PC-MsDos/SIMTEL-msdos/pgmutl/xc1306.zip

Example of ftp session (do NOT forget to say "binary"!)

> ftp oak.oakland.edu
User: ftp
Password: your-complete-email-address
ftp> cd /pub/msdos/pgmutl
ftp> hash
ftp> binary
ftp> get xc1306.zip
ftp> quit


                                Abstract
                                --------

Extacy is a professional development system available for  most  popular
platforms, including PC/MS-DOS, Unix workstations (Sun, HP,  DEC,  MIPS,
etc), Macintosh, Amiga, etc. Both large industrial  projects  containing
millions of lines, and simple student projects had been developed  using
Extacy.

Extacy contains both Modula-2 and Oberon-2  compilers.  These  languages
are often called "safe" and "modular". The principle innovation  of  the
language  Modula-2  was  indeed  the   module   concept,   incorporating
information hiding and separate compilation.

Moving to a new language usually means throwing away or  rewriting  your
existing library set which could have  been  the  work  of  many  years.
Extacy allows programmer to mix Modula-2, Oberon-2,  C,  Assembler,  and
often C++, Pascal,  and  Fortran  modules  and  libraries  in  a  single
project.

Extacy includes subsets of  standard  ISO  and  PIM  Modula-2  libraries
complete with ANSI C standard interface which can be accessed  and  used
from both Modula-2 and Oberon-2, and are provided in source form.


                             Unique Features
                             ---------------

Extacy generates readable, maintainable, highly portable  ANSI  C  code.
Because all C compilers have their own  limitations,  Extacy  uses  only
really portable subset of ANSI C.  However  compiler  options  allow  to
generate code for K&R and C++ compilers.

Extacy DOES NOT implement the Oberon system (as per the ETH system). The
generated C code can be compiled and linked using any ANSI C compiler to
produce standalone executables.

Extacy has  been  ported  to  dozens  of  platforms  (and  the  list  is
continually growing), and you can painlessly move your application under
any of these platforms just recompiling your  program  by  Extacy  on  a
target platform, or moving C code generated by Extacy from one  platform
to another (beware that Extacy can produce slightly different  code  for
Personal Computer, Personal Unix, and Workstation platforms).

Multi-language programming with Extacy is not a problem: Extacy projects
can consist of an arbitrary mix of Modula-2, Oberon-2, C, and Assembler,
and, with some care, C++, Pascal, and Fortran.

The C source code generated by Extacy is perfectly readable. Extacy will
preserve the original identifiers and, moreover, it  can  preserve  even
your comments.

Extacy can insert "#line" statements  into  the  generated  C  code.  It
allows the use  of  the  standard  debuggers  (like  Unix  dbx  or  gdb,
Microsoft Code View, Borland Turbo Debugger, Symantec  Multiscope,  etc)
to trace your Modula-2/Oberon-2 (not generated C code) sources to  catch
a bug.

Extacy provides outstanding flexibility. Using compiler options, you can
change any defaults of the compiler and utility programs:  default  file
names/extensions, style of C code generation (K&R C, ANSI  C,  or  C++),
error message format (to allow your favourite editor the use of compiler
messages), copyright notice to insert into generated code,

Extacy language extensions provides a unique opportunity to write  truly
portable,  multi-language,  reliable  software  using  modern   modular,
type-safe, object-oriented programming languages.

Despite a long list of  the  language(s)  extensions,  in  default  mode
Extacy will allow the use of the standard language(s)  facilities  only.
To utilize these  extensions,  the  explicit  use  of  compiler  options
":M2EXTENSION", ":M2ADDTYPES", and  ":O2EXTENSIONS",  placed  either  in
configuration file, at command line, or inline,  is  strictly  required,
otherwise it will cause an error while compilation.


                  List of Modula-2/Oberon-2 Extensions
                  ------------------------------------

- multi-language programming
- conditional compilation
- procedures with variable number of parameters
- renaming of imported modules
- read-only parameters
- read-only export
- fixed size types
- inline options/pragmas
- line comments
- multi-dimensional open arrays
- dynamic arrays
- constant array constructors
- constant string concatenation
- set complement
- standard procedure ASSERT
- extended syntax for numeric constants
- extended syntax for standard procedure HALT
- extended type compatibility in expressions
- extended type compatibility in assignments

(Please note: the use of any extension will cause a  compile-time  error
until   "M2EXTENSIONS"   and   "M2ADDTYPES"   or   "O2EXTENSIONS"    and
"O2ISOPRAGMA" compiler options are ON).


                         About the DEMO Version
                         ----------------------

This versions is a restricted distribution of Extacy package, including:

        - Modula-2 and Oberon-2 to C Compilers
        - A subset of the PIM Compliant Library
        - A subset of the ANSI C Library Interfaces
        - Dhrystone v 2.1 Modula-2 sources
        - Hotline Support

It does not include:

        - A subset of the ISO Modula-2 library
        - Utility library set
        - ANSI C Library Interfaces
        - Oberon-2 Object Browser Utility
        - Automatic "Makefile" Generator
        - And the Manual

The demonstration version compiler can only translate  relatively  small
modules (about 400 lines). You will get an error message  "out  of  heap
space" or "unexpected end of file" when this limit is exceeded.


With best regards,


Andrew Cadach

--
 ----------------------------------------------------------
 Andrew Cadach                    andrew@rtal.demon.co.uk
 R&D department                   71333.2346@compuserve.com

 Real Time Associates             CompuServe: 71333,2346
 Canning House, 59 Canning Road   Tel: (+44) (0)81 656 7333
 Croydon, Surrey, CRO 6QF, UK     Fax: (+44) (0)81 655 0401
 ----------------------------------------------------------


======================================================================= 76 ===
Date:    20 Aug 1993 18:55:33 GMT
From:    dsims@don.ece.uc.edu (David Sims)
Subject: Re: Compiler for Solaris 2.2?

cbarber@apricot-fddi.bbn.com (Chris Barber) wrote,
>Is anyone working on a port to SPARC/Solaris 2.2 (aka SunOS 5.2) ?

Rob Montjoy (montjoy@thor.ece.uc.edu) worked on a port.  The port now
works for most everything except threads and some floating point
operations.  Rob did us a favor in working on the port and is now busy
doing other things.  Ondrej Blaha (andrej@thor.ece.uc.edu) uses the
Solaris port on a daily basis and is working on integrating Solaris
threads to the Modula-3 system.

I guess if anyone is interested in getting what we have, you should
contact Debra Hengsen (dhensgen@thor.ece.uc.edu).  She knows more
about the status of the port.
-- 
David L. Sims               Dept. of Electrical and Computer Engineering
david.sims@uc.edu           University of Cincinnati
+1 (513) 556-2499           Cincinnati Ohio  45221-0030
PGP mail preferred.         USA


======================================================================= 77 ===
Date:    21 Aug 1993 21:12:28 GMT
From:    lambert@mamba.psc.edu (Michael Lambert)
Subject: Re: Next release [was: Modula3 compiler for Linux?]

Eric Muller (muller@src.dec.com) wrote:
: The next release will be 3.0.  Here are some of the new things you will
: find in it:

: 10. because of 6 and 8, we can think about going to different os than Unix.
:   In particular a Windows NT port will be available at some point (may not
:   be in 3.0).

How about OS/2 2.1, which will likely (no flames, please) have a much
larger market penetration than Windows NT?

Michael H. Lambert
Pittsburgh Supercomputing Center


======================================================================= 78 ===
Date:    22 Aug 1993 15:59:34 GMT
From:    d91jp@efd.lth.se (Jan Persson)
Subject: Modula-3 for MS-DOS (Does it exist?)

This semester we are having a CS-course in Modula-3. 

Since i have a IBM-PC at home it would be most convenient to be 
able to run the SRC-M3 system under MS-DOS.

As the source is available someone might already have ported the 
M3 to MS-DOS. I would be most grateful if someone with experience in 
this field could write me a letter and tell me more about it. 

To make me even more happy you could offer me a complete readybuilt
system. :)

Regards /Janne Persson



======================================================================= 79 ===
Date:    23 Aug 93 17:53:03 GMT
From:    fn00@gte.com (Farshad Nayeri)
Subject: Re: names in Modula-3

In article <93Aug17.224509pdt.8488@arcturia.parc.xerox.com> goldberg@parc.xerox
.com (David Goldberg) writes:

   Experimentally, the compiler allows a module named Foo to have a type
   named Foo, but a scope can't have both a constant and a type named
   Foo.

   Is this addressed by SPwM3? It wasn't immediately obvious to me
   whether the answer is contained in the language definition there.

See section 2.5.3 "Modules" and last paragraph of section 2.5 "Modules
and Intefaces" of SPwM3.

I get the feeling that Modula-3 designers were thinking of creating
two distinct namespaces: 

   - namespace of interfaces and modules (which is implementation-
     dependent and may relate to the filesystem "external" issues)

   - namespace of declarations within modules and interfaces such as
     types, constants, variables (which is independent of the rest of
     the system).

I suspect this is where the distinction originates from.

In practice, I find that it is sometime convenient for an interface to
have the an exported procedure under the same name, especially if the
interface denotes a certain functionality (like procedure "Eval" under
interface "Eval"). Some people probably consider this to be bad
design...

It is at times confusing to have a constant name the same as a type
name. For example:

|   CONST X : X = 10 

may be a bit confusing.

These are probably personal choices that differ from one programmer to
another.

--farshad
--
Farshad Nayeri
nayeri@gte.com



======================================================================= 80 ===
Date:    23 Aug 93 18:02:41 GMT
From:    fn00@gte.com (Farshad Nayeri)
Subject: Re: Scripting Languages?


If you don't mind lispish look, with little effort you can create your
own interpreter using primarily the Modula-3 "Sx" interface in libm3.

This way you have an interpreter and you can have fun building it.

You can also use the interface for TCL (Tool Command Language) that
should be on the archive (search for tcl*.Z).

In article <250bue$lsn@src-news.pa.dec.com> muller@src.dec.com (Eric Muller) wr
ites:

   Luca Cardelli designed Obliq, another small language with an
   interpreter.  His system is very well integrated with Network Objects.

Are network objects (and Obliq) a part of the anticipated 3.0 release?

Thanks, --farshad
--
Farshad Nayeri
nayeri@gte.com



======================================================================= 81 ===
Date:    24 Aug 93 12:36:51 CDT
From:    cevax@kuhub.cc.ukans.edu
Subject: Modula-3 for DOS

I am interested in learning Modula-3 for a class this semester.

I have a DOS machine (boo-hiss, I know).  Can anyone tell me where
to find the C code for a Modula-3 compiler.


======================================================================= 82 ===
Date:    24 Aug 93 17:38:02 +1000
From:    manning@cssun3.vassar.edu (Joseph Manning)
Subject: what price Harbison?

Did you buy "Modula-3" by Samuel Harbison recently?  How much did you pay?

I bought my copy about a year ago for $25.  I'll be using it in my course
this Fall, and the bookstore here is charging $35.75.  Is this a ripoff?

Thanks in advance for your $0.02, $25.00, or $35.75 worth!

Joseph Manning

Computer Science / Vassar College / Poughkeepsie NY USA / manning@cs.vassar.edu


======================================================================= 83 ===
Date:    Wed, 25 Aug 1993 06:50:47 GMT
From:    Bob Hathaway <rjh@geodesic.com>
Subject: New Release Of The Comp.Object FAQ Version 1.0.1

This announces the first official release of the comp.object FAQ!  Its not
just an ordinary FAQ, but contains sections on VIPS, Object-Oriented Databases
and Vendors, Object-Oriented Languages and Vendors, Object-Oriented Case
(OOA/D/P Tools) and Vendors, Anonymous FTP Sites, and Magazines, Journals and
Newsletters all comprising and relevant to the object-oriented domain!

While much is left to future releases, much new work has gone into this first
edition.  A hypertext version is even available!

The FAQ will be posted at the beginning of every month in comp.object and is
also being posted now to that same newsgroup.

Anonymous FTP Site for FAQ: zaphod.uchicago.edu(128.135.72.61):/pub/faq.8-25
Hypertext Server: http://cui_www.unige.ch/Chloe/FAQ/OO-FAQ/index.html

To use the hypertext system, see Comp.Object FAQ, APPENDIX E, entry 27.

Cheers!
bob

P.S.  Please give the system administrator time to place the new FAQ on zaphod.
  It should also take Oscar a little time to get the latest version on the
  hypertext server.  The new version 1.0.1 can be retrieved from comp.object. 


======================================================================= 84 ===
Date:    Thu, 26 Aug 1993 11:03:23 GMT
From:    tck@id.dth.dk (Thomas Chris Kjaer (920301#BSH))
Subject: Looking for LEX and YACC

Hello everybody.

Does anybody know if there exists tools like 
lex and yacc for Modula-3?
If so, or if *YOU* yourself are working on it,
please tell me where or when the tools are
available.

Thank you!

tck@id.dth.dk
Thomas Chris Kjaer
Graduate Student
Dept. of Computer Science
Technical University of Denmark



======================================================================= 85 ===
Date:    Fri, 27 Aug 1993 02:09:02 GMT
From:    Bob Hathaway <rjh@geodesic.com>
Subject: New Comp.Object FAQ Anonymous FTP Site Update

>This announces the first official release of the comp.object FAQ!
>...
>Anonymous FTP Site for FAQ: zaphod.uchicago.edu(128.135.72.61):/pub/faq.8-25

While the new FAQ is now available on hypertext, I've been informed the sys
admin for zaphod won't be able to move faq.8-25(.Z) to zaphod:/pub until the
beginning of next week, since this week he's giving his dissertation!

The new faq, version 1.0.1, can be obtained from zaphod:/uploads/faq.8-25(.Z)
until then.

Cheers!
bob


======================================================================= 86 ===
Date:    27 Aug 1993 09:57:03 -0700
From:    luca@src.dec.com
Subject: Obliq (was: Scripting Languages?) (Repost)

Date: Fri, 27 Aug 93 09:56:51 -0700
X-Received: by tsktsk.pa.dec.com; id AA26044; Fri, 27 Aug 93 09:56:51 -0700
X-Received: by src-news.pa.dec.com; id AA15930; Fri, 27 Aug 93 09:57:01 -0700
X-Mts: smtp


In enclose the following paper in a separate message. I would be 
willing to distribute Obliq, but I must wait for the release of version 
3.0 of the compiler, and for the release of Network Objects. I don't 
know when either will happen. 

    Luca Cardelli
    

Obliq: a lightweight language for network objects

Abstract

Obliq is a small, statically scoped, untyped language. It is object-oriented, 
higher-order, concurrent, and distributed. State is local to an address 
space, while computation can migrate over the network. The distributed 
computation mechanism is based on Modula-3 netwokr objects.



======================================================================= 87 ===
Date:    27 Aug 93 17:07:02 CDT
From:    deniau@shannon.tisl.ukans.edu (Cedric C. Deniau)
Subject: creating hard links


Is there anyway to create hard links in modula 3???
I know that in Unix.i3 there is a symlink to create symbolic link and there is 
a
link.  I have used the Unix.symlink before successfully but I have never been a
ble to use the Unix.link.

		Thank you,

			   ccd


======================================================================= 88 ===
Date:    Mon, 30 Aug 1993 10:04:41 GMT
From:    Melissa O'Neill <oneill@cs.sfu.ca>
Subject: Problems compiling Modula-3 on NeXT...

I'm having problems building Modula-3, or to be more precice, it's library.
I'm using a NeXT, running release 3.0 of the OS.

next_mach3.0% m3make build_install.libm3
Mon Aug 30 02:43:41 PDT 1993 ****************************************** libm3
zcat libm3-2.11.tar.Z | /bin/tar xf -
/home/dk6/oneill/scratch/m3-2.11/bin/m3make -f m3makefile.libm3 all install
mkdir libm3/NEXT
-------------------------------------- libm3/NEXT
Make:  Don't know how to make /M3Config.m3.  Stop.

Any help people can offer would be appreciated...

    Melissa,

next_mach3.0% m3 -\?
pass 0       := /home/dk6/oneill/scratch/m3-2.11/lib/m3/m3compiler
pass 1       := /bin/cc -pipe
pass 2       := /bin/cc -pipe
pass 2 base  := -N
pass 3       := /bin/ar cru
pass 4       := ranlib
pass 5       := /bin/ld -A
pass 5 mid   := -g
pass 5 tail  := -lc
def path     := . /home/dk6/oneill/scratch/m3-2.11/include/m3
lib path     := . /home/dk6/oneill/scratch/m3-2.11/lib/m3 /usr/local/lib
include      := /home/dk6/oneill/scratch/m3-2.11/lib/m3
server limit := 0 megabytes
make mode    := FALSE
bootstrap    := FALSE
std libs     := TRUE -lm3 -lm
keep files   := FALSE
coverage     := FALSE /home/dk6/oneill/scratch/m3-2.11/lib/m3/report_coverage.o
resolve libs := FALSE
CC paranoid  := TRUE
-O           => -O2 -fforce-mem -fforce-addr
-g           => -g


======================================================================= 89 ===
Date:    31 Aug 1993 03:40:44 GMT
From:    jcm@octavia (James McPherson)
Subject: Has anyone ported M3 to the mac?


I guess the title says it all, really - has anyone ported Modula-3 to
the Mac yet? I'd do it myself, but I don't have access to any language
compilers.

thanks in advance

James
.
-- 
	jcm@octavia.anu.edu.au or  jcm@coombs.anu.edu.au 
    or  phb332mcpher@redgum.qut.edu.au



======================================================================= 90 ===
Date:    Tue, 31 Aug 1993 15:16:46 GMT
From:    wing+@cs.cmu.edu (Jeannette Wing)
Subject: Workshop on Interface Definition Languages (reminder)


[Abstracts due Sept. 17.]

               WORKSHOP ON INTERFACE DEFINITION LANGUAGES 

                    Sponsored by ACM SIGPLAN 

                         Portland, Oregon    
                         20 January 1994     
                    (Immediately after POPL)


An interface is the boundary between two or more system components.
These components may be small program units such as Ada packages,
Modula-3 modules, Standard ML structures, or C++ classes. They may be
complex system layers such as the kernel and user layers of an
operating system, or the seven layers of the ISO/OSI internet
protocol.  We have learned from years of experience that with properly
defined interfaces it is possible to build large, complex systems in
terms of smaller, well-understood pieces.  Well-defined interfaces
also increase the ability to exploit heterogeneity since an interface
can serve as a firewall behind which radically different
implementations can hide.  At the same time, we have also learned that
often the hardest part in designing a system is identifying clean
interfaces and defining them precisely.  An ill-defined or
underspecified interface may lead to system flaws that are costly to
find and fix, especially when discovered late in the overall system
development process.

The purpose of this workshop is to focus attention on interfaces:
languages for defining them, tools for analyzing them, and system
infrastructure for supporting them.  We are interested in a broad range
of issues that address questions like:

    o What information should interface definitions contain? 
	- type, functionality, side-effects, resource usage, reliability 

    o What compatibility rules can we use to plug components together safely? 
	- data type conversion protocols, partial matching, runtime negotiation
 

    o What languages can we use to define interfaces? 
	- module interconnection languages, formal specification languages,
          software architecture languages 

    o What automatic support can we build based on information in
      interface definitions? 
	- stub generators, global optimizers, interface libraries,
          implementation-interface binders 

    o What kinds of properties can we prove about a system and its components
      from interface definitions? 
	- safety, liveness, real-time, performance

The goal of this one-day workshop is to determine what the state of
the art is on the subject of interfaces and interface definition
languages.  We believe this topic will be of growing interest and see
this workshop as the seed for future discussions.

We are interested in both theoretical and practical approaches to
these issues.  To participate in this workshop, please send six (6) copies
of an extended abstract (5--10 double-sided pages) by 17 September 1993 to:

        Jeannette M. Wing 
        School of Computer Science 
        Carnegie Mellon University 
        5000 Forbes Avenue 
        Pittsburgh, PA  15213-3890

Your abstract should clearly state what your specific interest is in
interfaces and interface definition languages.  We welcome papers
that investigate semantic issues, describe new language features, or
propose ways to express the interconnection among system components.
We also welcome papers that describe novel implementations that have
been built to define, analyze, or support interfaces.

We plan to organize the workshop as a series of short presentations
with ample time allotted for group discussions.  We will distribute a
proceedings containing the accepted abstracts.  We are negotiating with
SIGPLAN to publish the proceedings as a special issue of SIGPLAN Notices.

DATES

        Extended abstracts due          17 September 1993 
        Acceptance notification          5 November 1993 
        Final version of papers due      3 December 1993 
        Workshop                        20 January 1994

PROGRAM COMMITTEE

        Jeannette Wing, Carnegie Mellon, Chair 
        David Lamb, Queen's University 
        Paul Leach, Microsoft 
        David MacQueen, AT\&T Bell Labs. 
        Greg Nelson, DEC/SRC 
        Dan Yellin, IBM T.J. Watson Labs.


======================================================================= 91 ===
Date:    31 Aug 1993 12:01:02 -0700
From:    luca@src.dec.com
Subject: Re: Obliq (was: Scripting Languages?) (Repost)

Date: Tue, 31 Aug 93 12:00:59 -0700
X-Received: by tsktsk.pa.dec.com; id AA04457; Tue, 31 Aug 93 12:01:00 -0700
X-Received: by src-news.pa.dec.com; id AA04114; Tue, 31 Aug 93 12:01:00 -0700
X-Mts: smtp


Something is not letting my ps files through. You can find Obliq.ps 
for anonymous ftp on gatekeeper.pa.dec.com, in /pub/DEC/Modula-3/contrib.

    Luca
    


