
From compilers Thu Jul  1 07:00:11 EDT 1993
Xref: iecc comp.compilers:4820 news.answers:9488
Newsgroups: comp.compilers,news.answers,comp.answers
Path: iecc!compilers-sender
From: compilers-request@iecc.com (John R. Levine)
Subject: comp.compilers monthly message and Frequently Asked Questions
Message-ID: <monthly-Jul-93@comp.compilers>
Followup-To: poster
Keywords: administrivia
Sender: compilers-sender@chico.iecc.com
Supersedes: <monthly-Jun-93@comp.compilers>
Organization: Compilers Central
Date: Thu, 1 Jul 1993 11:00:05 GMT
Approved: compilers@iecc.com
Expires: Sun, 1 Aug 1993 23:59:00 GMT

Archive-name: compilers-faq

This is the comp.compilers monthly message, last edited June 1993.

NOTE: This message contains some answers to frequently asked questions as
well as guidelines for what to post.  Please read them before you post.

-- What is comp.compilers?

It is a moderated usenet news group addressing the topics of compilers in
particular and programming language design and implementation in general.
It started in 1986 as a moderated mailing list, but interest quickly grew to
the point where it was promoted to a news group.  Recent topics have
included optimization techniques, language design issues, announcements of
new compiler tools, and book reviews.

Messages come from a wide variety of people ranging from undergraduate
students to well-known experts in industry and academia.  Authors live all
over the world -- there are regular messages from the U.S, Canada, Europe,
Australia, and Japan, with occasional ones from as far away as Malaysia.  I
have no idea how large the readership is, since the anarchic nature of
usenet makes it impossible to tell who reads it, but I believe that the total
is in the tens of thousands.

Unless there is specific language to the contrary, each message represents
only the personal opinion of its author.  I claim no compilation copyright on
comp.compilers.  As far as I am concerned, anyone can reproduce any message
for any purpose.  Individual authors may retain rights to their messages,
although I will not knowingly post anything that does not permit unlimited
distribution in any form.  If you find comp.compilers useful in writing a
book, producing a product, etc., I would appreciate an acknowledgement of
usenet and comp.compilers.

-- How do I receive it?

The easiest way is to read comp.compilers on a system that gets usenet news.

If you don't have access to usenet news, it's also available via E-mail via
a LISTSERV forwarder at the American University.  To subscribe a person
should send e-mail to listserv@american.edu with one line in the mail
message (not in the subject!)  That line should read:

                        SUBSCRIBE COMPIL-L full_name
for example:
                        SUBSCRIBE COMPIL-L Ima Hacker

To get off the list the subscriber should send e-mail to the same address
with the message:       SIGNOFF COMPIL-L

If you have problems getting on or off the list, please contact me.  In
particular, if you want to use an address other than your own personal mail
address, you have to ask me to set it up.  If I receive bounce messages for
an address on the mailing list for two days in a row, I delete it.  If this
happens to you and your address subsequently becomes reachable again, you
can resubscribe.

-- How do I submit a message?

Mail it to compilers@iecc.com, also known as compilers@iecc.uucp or
iecc!compilers.  I review messages nearly every day, usually including
weekends, and most messages are posted to the net within a day after I
receive them.  Occasionally when I go on vacation there may be up to a
week's delay, though I try to send out a message when that will happen.

Most net news systems will automatically turn posted messages into mail to
compilers, but some, particularly systems running notes, don't do that
correctly.  As a result, I sometimes receive hundreds of copies of a
message, all mangled slightly differently.  Please mail your contributions
unless you're sure your posting software works correctly.

When you send a message to compilers, I understand that to mean that you
want me to post it to usenet, which means it will be sent to tens of
thousands of potential readers at thousands of computers all around the
world.  It may also appear in a printed comp.compilers annual and other
books, in the ACM SIGPLAN Notices, in on-line and off-line archives,
CD-ROMs, and anywhere else that some reader decides to use it.

If you don't want me to post something, send it instead to
compilers-request.  (See below.)

PLEASE: Format messages with lines of less than 80 characters, since many
news readers (including mine) don't auto-wrap very well.  Also remove quoted
material not immediately germane to your response.  Messages must be in plain
ASCII, not TeX input, troff, SGML, RTF or any other markup language.

-- What happens to submitted messages?

Barring mail problems, they arrive in a special mailbox here at iecc.  I
then edit the headers, trim down quoted text, fix typos and grammatical
errors, remove cute signatures, and then post them to usenet.  If I think a
message needs more editing than that, I return it to the author for
rewriting.  The main reasons I return a message are that it appears more
appropriate for another group, the message is too garbled to fix, it
contains too much quoted material relative to the amount of new material, or
I don't understand it.  I also usually return messages that directly attack
individuals, since the net has plenty of other places for ad-hominem battles.
Another possibility is that a message doesn't have a valid return e-mail
address.  If your mail system insists on putting a bogus address in the From:
line, be sure that you put a usable address in your signature.

If a message asks a simple question I sometimes answer it myself rather than
posting it.  When two or three messages arrive with the same answer to a
question, I usually post only one of them, with a comment crediting the
others.

If you send in a message and don't either see it posted or receive something
back in a few days, it probably got lost in the mail and you should contact
me, preferably via a different mail route.  I post or respond to all
messages except for ones that appear to have been sent by mistake, e.g. no
contents, or contents consisting only of another quoted message.  Sometimes
when I'm feeling exasperated I disregard messages that re-ask one of the
frequently asked questions that are answered below.

One of the most time-consuming jobs in moderating the group is trimming down
the quotes in followup articles.  In most cases, you can expect readers to
have seen the previous article, so only a few lines of quoted text should be
needed to remind the reader of the context.

I have installed a simple-minded quote filter that mechanically returns to
the sender any message that contains more quoted than unquoted lines.  Please
edit your quotes before you send in a response, to avoid having the filter
bounce your message.  Since the quote filter is pretty dumb, I do look at
bounced messages myself.  If the filter bounces a message of yours by mistake,
don't panic -- it'll get posted anyway.

``Help wanted'' and ``Position Available'' messages are collected each week
and posted in a digest every Sunday.

-- How do I respond to the author of a message?

I try to be sure that every message contains valid From: and Reply-To:
headers.  The automatic "reply" commands in most news readers let you send
mail to the author.  If you're replying to a message in a digest, be sure
to respond to the author of the particular message, not to the pseudo-author
of the digest.

Some obsolete news readers attempt to reply using the Path: header, but for
technical reasons the Path: header in a moderated message cannot point to
the actual author.  In fact, the Path: header in a compilers message is
deliberately a bad mail address, so if you have such a news reader you'll
have to edit the addresses in responses yourself and, I hope, encourage your
system manager to update your news and mail software.

Sometimes mail to an author bounces, either because a gateway isn't
working or because the return address is unregistered or otherwise bad.
Please don't ask me to forward it, since my machine is no better connected
than anyone else's.  (It's not on the Internet and only talks uucp.)  If
you send me a message obviously intended for the author of an item, I will
discard it on the theory that if it wasn't important enough for you to
send it to the right place, it isn't important enough for me, either.

-- How do I contact the moderator?

Send me mail at compilers-request@iecc.com.  I treat messages to
compilers-request as private messages to me unless they state that they
are for publication.

-- Are back issues available?

I have complete archives going back to the original mailing list in 1986.
The archives now fill about 6 megabytes, and are growing at over 200K per
month.  I update the archives at the end of each month.  People with ftp
access can get them from primost.cs.wisc.edu, (128.105.2.115) where James
Larus has kindly provided space.  The archives contain a compressed Unix
mailbox format file for each month, with names like 91-08.Z.  The file
INDEX.Z lists all of the subject lines for every message in the archives,
and in most cases is the first file you should retrieve.

The archives are available via modem from Channel One, an excellent local
BBS.  You have to register, but no payment is needed to download the
archives which are in Area 6.  (If you call more than once or twice, it
would be nice to sign up for at least the $25 trial membership.)  The 2400
BPS telephone number is +1 617 354 8873, and the Telebit number is +1 617
354 0470.  There is a ZIP format archive per month with names like
comp9108.zip, with the most recent archive also containing the index.

There is now a mail server at compilers-server@iecc.com that can mail you
indexes, messages, and the files mentioned below.  Send it a message
containing "help" to get started.

I have also published a printed edition of the 1990 messages grouped by
thread and topic, and with some indexes, and may publish subsequent editions.
(If you'd be intereted in editing the 1991, 1992, or later books, let me
know.)  see the message which should immediately follow this one for further
details on the 1990 book. 

-- Some Frequently Asked Questions:

NOTE: Many issues are discussed occasionally on comp.compilers, but not
frequently enought to make the FAQ sheet.  If you have a question but the
answer isn't in the FAQ, you may well be able to get good background by
reading the appropriate articles in the archive.  If you can FTP, please
at least get the index and look through it.

The various files that I mention below that I have are in the compilers
archive at primost.cs.wisc.edu, and are also available from the mail
server mentioned above.  If you can FTP them, please do so rather than
using the mail server, since the mail bandwith is quite small.

* Where can I get a C or C++ grammar in yacc?

Jim Roskind's well-known C and C++ grammars are in the archive, as is
a C grammar written by Jeff Lee.  Dave Jones posted a parser as
message 91-09-030.  Another C grammar was posted to comp.sources.misc
in June 1990, v13 i52, archive name ansi-c_su.  GCC and G++ are based
on yacc grammars, see below.

* Where can I get the Gnu C compiler?

GCC is a high-quality free C and C++ compiler.  (Free is not the same as
public domain, see the GCC distribution for details.)  It is available in
source from from prep.ai.mit.edu.  You need an existing C compiler and
libraries to bootstrap it.

A version for 386 MS-DOS by DJ Delorie <dj@ctron.com> is available by FTP
from omnigate.clarkson.edu or wowbagger.pc-labor.uni-bremen.de and by
mail from archive-server@omnigate.clarkson.edu in the archive msdos/djgpp.
See messages 91-09-054 and 91-09-066.  Note: When omnigate is overloaded,
it responds with "Access Denied."  Try later.

* Are there other free C compilers?

The lcc compiler, written by people at Princeton and Bell Labs, is
available via FTP from princeton.edu.  It is supposed to generate code as
good as GCC while being considerably faster and smaller.  It comes with a
demonstration VAX code generator and documentation on the code generation
interfaces.  Production code generators for the VAX, MIPS, and Motorola
68020 are available for research use to universities willing to execute a
license agreement; the FTP package elaborates.  Lcc uses a hard-coded C
parser because it's faster than yacc.

* Where can I get a Fortran grammar in yacc or a Fortran compiler?

I have a small subset parser in the archive mentioned above.  The F2C
Fortran to C translator is a respectable Fortran system (so long as
you have a C compiler to compile its output and its libraries) and
contains a full F77 parser and is available in source form via FTP
from research.att.com and by mail from netlib@research.att.com.

* Where can I get Modula-2, Pascal, Ada, or SQL grammars in yacc?

I have one each of those, too, in the archive mentioned above, though I
haven't tried to use any of them.

* Where can I get a Cobol grammar in yacc?

Nowhere for free, as far as I can tell.  This question is asked every few
months and there has never, ever, been any positive response. Perhaps some
of the interested people could get together and write one.  The commercial
PCYACC from Abraxas (see below) comes with a bunch of sample grammars
including one for Cobol-85.

* Where can I get a Basic grammar in yacc?

Take a look at ftp.uu.net:comp.sources.unix/volume2/basic which contains
a Basic interpreter with yacc parser.

* Are there free versions of yacc and lex ?

Vern Paxton's flex is a superior reimplementation of lex.  It is available
from the same places as Gnu sources.  Berkeley Yacc is a quite compatible
PD version of yacc by Bob Corbett, available as ~ftp/pub/byacc.tar.Z on
okeeffe.berkeley.edu.  Gnu Bison is derived from an earlier version of
Corbett's work and is also fairly compatible with yacc.  A byacc extension
that displays graphically the progress of a parse can be found in Jim
Roskind's C++ grammar in the FTP compilers archive.  (The files are too
big for the mail archive, sorry.)

* Are there versions of yacc and lex for MS-DOS?

There are several of them.  Commercial versions are MKS lex&yacc from MKS
in Waterloo Ont., +1 519 884 2251 or inquiry@mks.com, and PCYACC from
Abraxas Software in Portland OR, +1 503 244 5253.  Both include both yacc
and lex along with a lot of sample code.

The standard flex source compiles under the usual DOS compilers, although
you may want to make some of the buffers smaller.  A DOS version of Bison
is on wuarchive.wustl.edu [128.252.135.4] and other servers under
/mirrors/msdos/txtutl/bison111.zip. See message 92-07-012 for more info.

* What other compilers and tools are freely available?

There is a three-part FAQ posting in comp.compilers and other groups
listing compiler tools freely available in source form, maintained by
David Muir Sharnoff <muir@cogsci.berkeley.edu>.  It is posted monthly,
right after this message.  If it's not on your system, you can FTP it from
rtfm.mit.edu in the directory /pub/usenet/news.answers/free-compilers, or
via mail by sending a message to to mail-server@rtfm.mit.edu with the
command "send usenet/news.answers/free-compilers/*" in the text.

* How can I get started with yacc and lex and compiler writing in general?

By reading any of the many books on the topic.  Here are a few of them.
Also see message 93-01-155 which reviews many compiler textbooks.

Aho, Sethi, and Ullman, "Compilers: Principles, Techniques, and Tools,"
Addison Wesley, 1986, ISBN 0-201-10088-6, the "dragon book".  Describes
clearly and completely lexing and parsing techniques including the ones in
yacc and lex.  The authors work or have worked at Bell Labs with Steve
Johnson and Mike Lesk, the authors of Yacc and Lex.

Alan Holub, "Compiler Design in C," Prentice-Hall, 1990, ISBN
0-13-155045-4.  A large book containing the complete source code to a
reimplementation of yacc and lex and a C compiler.  Quite well written,
too, though it has a lot of errors.  The fourth printing is supposed to
correct most of them.

John R. Levine, Tony Mason, and Doug Brown, ``Lex & Yacc,'' 2nd Edition,
O'Reilly and Associates, 1992, ISBN 1-56592-000-7, $29.95.  A concise
introduction with completely worked out examples and an extensive
reference section.  The new edition is completely revised from the earlier
1990 edition.

Donnely and Stallman, "The Bison Manual," part of the on-line distrubution
of the FSF's Bison, a reimplementation of yacc.  As with everything else from
the FSF, full source code is included.

Axel T. Schreiner and H. George Friedman, Jr., "Introduction to Compiler
Construction with UNIX," Prentice-Hall, 1985.  Oriented to tutorial work.
Good for beginners.  Develops a small subset-of-C compiler through the book.
(Recommended by Eric Hughes <hughes@ocf.Berkeley.EDU>.)  Richard Hash
<rgh@shell.com> comments that the book has many typographical errors, and
readers should be suspicious of the examples until they actually try them.
Richard Y. Kim <richard@ear.mit.edu> reports that sources are available for
FTP as a.cs.uiuc.edu:pub/friedman/tar.

Bennett, J.P. "Introduction to Compiling Techniques - A First Course Using
Ansi C, Lex and Yacc," McGraw Hill Book Co, 1990, ISBN 0-07-707215-4.
It's intended for a first course in modern compiler techniques, is very
clearly written, and has a full chapter on YACC.  I found it to be a good
introductory text before getting into the 'Dragon book'.  (Recommended by
John Merlin <J.H.Merlin@ecs.southampton.ac.uk>.)  Source code is available
at ftp.bath.ac.uk.

Charles N. Fischer & Richard J. LeBlanc, "Crafting A Compiler", Benjamin
Cummings Publishing, Menlo Park, CA, 1988, ISBN 0-8053-3201-4.  There's
also a revised version as of 1990 or 1991 titled "Crafting A Compiler in
C", with all examples in C (the original used ADA/CS).  Erich Nahum
<nahum@cs.umass.edu> writes: A key compiler reference.  We used the
original to great effect in Eliot Moss' graduate compiler construction
class here at UMass.  My feeling is that Fischer & LeBlanc is a good
tutorial, and one should use Aho, Sethi, & Ullman as a reference.

Des Watson, "High-Level Languages and Their Compilers," International
Computer Science Series, Addison-Wesley Publishing Company, Wokingham
England, 1989.  Adrian Howard <adrianh@cogs.sussex.ac.uk> writes: This is
the kindest, most readable introduction to compilers at the graduate level
I have ever read - an excellent example of what textbooks should all be
like.

W.M. Waite and G. Goos, "Compiler Construction," Springer-Verlag, New
York, 1984.  Dick Grune <dick@cs.vu.nl> writes: A theoretical approach to
compiler construction. Refreshing in that it gives a completely new view
of many subjects. Heavy reading, high information density.

J.P. Tremblay and P.G. Sorenson, "The Theory and Practice of Compiler
Writing," McGraw-Hill, 1985.  Dick Grune <dick@cs.vu.nl> writes: Extensive
and detailed. Heavy reading. To be consulted when other sources fail.

James E. Hendrix, "The Small-C Compiler", 2nd ed., M&T Books, ISBN
0-934375-88-7 <Book Alone>, 1-55851-007-9 <MS-DOS Disk>,
0-934375-97-6 <Book AND Disk>.

William Jhun <ec_ind03@oswego.edu> writes: It explaines the C-language is
thorough....and explains every single aspect of the compiler. The book
compares source code to p-code to assembly. It goes over a nice set of
optimization routines, explains the parser, the back end, and even
includes source code, which the compiler on the disk can actually compile
itself. It's an extremely interesting book, check it out.

Ronald Mak, "Writing Compilers and Interpreters: An Applied Approach",
1991, John Wiley and Sons, Inc. ISBN 0-471-50968-X.

Andrew Tucker <a_tucker@paul.spu.edu> writes: This 512-page book presents
a strictly hands on approach, developing a Pascal interpreter and
interactive debugger, then completing with a compiler which emits 8086
assembly.  All source code is provided in print and on disk.  This book is
very low to non-existent in theoretical content, but is very practical and
readable for an introduction.

If anyone sends in others, I'll be happy to add them to the list.

* Where I can I FTP the sources to the programs in Holub's "Compiler
Design in C" ?

You can't.  See page xvi of the Preface for ordering information.

Regards,
John Levine, comp.compilers moderator
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  1 07:00:18 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: compilers-request@iecc.com (John R. Levine)
Subject: Comp.compilers 1990 Annual
Message-ID: <book-Jul-93@comp.compilers>
Keywords: administrivia
Sender: compilers-sender@chico.iecc.com
Supersedes: <book-Jun-93@comp.compilers>
Organization: Compilers Central
Date: Thu, 1 Jul 1993 11:00:14 GMT
Approved: compilers@iecc.com
Expires: Sun, 1 Aug 1993 23:59:00 GMT

NOTE: This is a monthly repost of the message about the printed version of
the 1990 comp.compilers message.  Books can be ordered via fax or e-mail
and charged to a credit card, see below.

			Comp.compilers 1990 Annual
			 Edited by John R. Levine

The Comp.compilers 1990 Annual is a printed edition of the messages posted
to the usenet newsgroup comp.compilers in 1990.  Usenet is an informal
distributed electronic bulletin board system connecting thousands of
computers around the world.  Most of the systems attached to it run some
version of Unix, though others systems ranging from MS-DOS personal
computers to Cray mainframes now participate.  Comp.compilers is a
moderated usenet news group addressing the topics of compilers in
particular and programming language design and implementation in general.
It started in 1986 as a moderated mailing list, but interest quickly grew
to the point where it was promoted to a news group.  Recent topics have
included optimization techniques, language design issues, announcements of
new compiler tools, and book reviews.

Messages come from a wide variety of people ranging from undergraduate
students to well-known experts in industry and academia.  Authors live all
over the world - there are regular messages from the U.S, Canada, Europe,
Australia, and Japan, with occasional ones from as far away as Malaysia.
The anarchic nature of usenet makes it impossible to tell how large the
readership is, but the total is probably in the tens of thousands.

The book's contents include 807 of the year's total 914 messages, leaving
out only administrative messages and unanswered questions.  The messages
themselves are unedited except for removing boilerplate header and trailer
lines.

The book is 604 pages, each 11 x 8.5 inches with two pages of text side by
side in reasonably legible 8 point type.  Messages are grouped by topic
(C, optimization, book reviews, etc.) and within each topic messages in a
thread are grouped together.  There is a permuted subject index, a keyword
index, and an author index.  The book is GBC bound, a plastic spiral
binding that lies flat.

Pricing

The price is $40 per book, plus $2 sales tax for copies delivered in
Massachusetts, plus appropriate postage and packaging per copy:

  Pick up in Cambridge  free |  Foreign surface        $10
  U.S. surface            $3 |  Foreign airmail:
  U.S. priority           $5 |             Americas    $12
  U.S. Federal Express   $20 |             Europe      $20
  Canada	          $7 |             All other   $30

No further discounts apply on single copies of the book, as this price is
pre-discounted from the list price of $50.  Quantity discounts and
shipping charges for large or unusual orders can be negotiated.

How to order

All orders must be prepaid by check or credit card.  For credit card
orders, see below.  For check orders, send a check payable to I.E.C.C.
along with the delivery address.  We cannot take purchase orders or COD
orders.  Foreign orders must be prepaid in U.S. dollars, preferably by
credit card a check on a U.S. bank, but anything our bank can handle is
acceptable.  (They charge $20 extra for foreign checks and $5 for incoming
bank wires.)

The mailing address is:

I.E.C.C.
P.O. Box 349
Cambridge MA 02238-0349

The book is also available at list price from several bookstores.

	Computer Literacy Bookshop, 2590 N 1st St, San Jose CA 95131
		+1 408 435 1118, orders@clbooks.com

	Quantum Books, 4 Cambridge Center, Cambridge MA 02141
		+1 617 494 5042, quanbook@world.std.com

The book has ISBN 0-944954-02-2, and is under the imprint of Center Book
Publishers, Inc.

We now accept Master Card and Visa credit cards.  Credit card orders may
be placed by mail, by fax to +1 617 492 4407, or by electronic mail to
compilers-request@iecc.com.


Card number:  _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Exp  _ _ / _ _


Amount: $ ________  Signature: ___________________________________________
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  1 07:00:27 EDT 1993
Xref: iecc comp.compilers:4822 comp.lang.misc:10065 comp.archives.admin:970 news.answers:9489
Newsgroups: comp.compilers,comp.lang.misc,comp.archives.admin,news.answers,comp.answers
Path: iecc!compilers-sender
From: David Muir Sharnoff <muir@idiom.berkeley.ca.us>
Subject: Catalog of compilers, interpreters, and other language tools [p1of3]
Message-ID: <free1-Jul-93@comp.compilers>
Followup-To: comp.archives.admin
Summary: Monthly posting of free language tools that include source code
Keywords: tools, FTP, administrivia
Sender: compilers-sender@chico.iecc.com
Supersedes: <free1-Jun-93@comp.compilers>
Reply-To: muir@idiom.berkeley.ca.us
Organization: University of California, Berkeley
Date: Thu, 1 Jul 1993 11:00:22 GMT
Approved: compilers@iecc.cambridge.ma.us
Expires: Sun, 1 Aug 1993 23:59:00 GMT

Archive-name: free-compilers/part1
Last-modified: 1993/05/24
Version: 3.4


	Catalog of Free Compilers and Interpreters.

This document attempts to catalog freely availiable compilers,
interpreters, libraries, and language tools.  This is still a draft
document: it has errors, it is not complete, and I might re-organize
it.  It is my intention that it be aimed at developers rather than
researchers.  I am much more intersted in production quality systems.

There is some overlap of coverage between this document and other
lists and catalogs.  See the references section for a list...

To be on this list a package must be free and have source code
included.  If there are any packages on this list that do not have
source code included or are not free, then I would appreciate it if it
is brought to my attention so that I may correct the error.

There are many fields filled in with a question mark (?).  If you have
information which would allow me to remove question marks, please
send it to me.	The only field which I do not expect to be completely
obvious is the "parts" field because I wish to distinguish between 
compilers, translators, and interpretors.  To qualify as a compiler
as I'm using the term, it must compile to a machine-readable format 
no higher-level than assembly.	Why?  Just because.  If you've
got a better idea, send it in.

This document may be ftp'ed from ~ftp/pub/compilers-list/FreeCompilers*
on idiom.berkeley.ca.us.  Be nice to my SLIP link.  

If you would be interested in purchasing a CD-ROM with a complete set
of the source code listed here, let me know.  If enough people are
interested, I might cut a disc.  Bear in mind that you can get most, if
not all, of this from Prime Time Freeware's disc set (ptf@cfcl.com).
Or would you be more interested in sparc binaries?  $250 interested?
Or would you like to either take over maintenance of this document or
pay me to keep doing it?  (hint: maintaining this is taking too much of
my time)

David Muir Sharnoff <muir@idiom.berkeley.ca.us>, 1993/02/13

------------------------- selected major changes ------------------------------

	Selected changes section

	language		package
	--------		-------
new listings:
	EBNF			PRE-CC Xtended 
	COCOL (EBNF variant)	COCO/R
	C			Chop [a code generator for lcc]
	C			C_Interp
	dc (unix arbt. math)	GNU DC
	Icon, BNF		Ibpag2
	Lout			Lout [formatting system]
	Oberon			Ceres workstation Oberon System
	Scheme			Bigloo
new versions:
	Assembler (various)	gas 2.1.1
	awk (nawk)		gawk (GNU awk) 2.15.2
	C, C++, Objective C	gcc 2.4.0
	C, C++			gdb 4.9
	C, nroff		c2man 2.03
	elisp			GNU Emacs 19.7
	es (a functional shell)	es 0.84
	IDL (DOE's Interface..)	SunSoft OMG IDL CFE 1.2
	INTERCAL		C-INTERCAL 0.9
	Kevo (Forth)		Kevo 0.9b6
	Postscript		Ghostscript 2.6
	Scheme			Hobbit 2
	Scheme			Similix 5.0
	Scheme			slib 1d2
	sed			GNU sed 1.16
edits:
deleted (no source):

-------------------------------------------------------------------------------
------------------------------- tools -----------------------------------------
-------------------------------------------------------------------------------

language:	ABC
package:	ABC
version:	1.04.01
parts:		?
author:		Leo Geurts, Lambert Meertens, 
		Steven Pemberton <Steven.Pemberton@cwi.nl>
how to get:	ftp programming/languages/abc/* from mcsun.eu.net or ftp.eu.net
description:	ABC is an imperative language embedded in its own
		environment. It is interactive, structured,
		high-level, very easy to learn, and easy to use.
		It is suitable for general everyday programming,
		such as you would use BASIC, Pascal, or AWK for.
		It is not a systems-programming language. It is an
		excellent teaching language, and because it is
		interactive, excellent for prototyping.	 ABC programs
		are typically very compact, around a quarter to a
		fifth the size of the equivalent Pascal or C program.
		However, this is not at the cost of readability,
		on the contrary in fact.
references:	"The ABC Programmer's Handbook" by Leo Geurts,
		Lambert Meertens and Steven Pemberton, published by 
		Prentice-Hall (ISBN 0-13-000027-2)
		"An Alternative Simple Language and Environment for PCs" 
		by Steven Pemberton, IEEE Software, Vol. 4, No. 1, 
		January 1987, pp.  56-64.
ports:		unix, MSDOS, atari, mac
contact:	abc@cwi.nl
updated:	1991/05/02

language:	ABCL/1 (An object-Based Concurrent Language)
package:	ABCL/1 
version:	?
parts:		?
author:		Akinori Yonezawa, ABCL Group now at Department of Information 
		Science, the University of Tokyo
how to get:	ftp pub/abcl1/* from camille.is.s.u-tokyo.ac.jp
description:	Asynchronous message passing to objects.  
references:	"ABCL: An Object-Oriented Concurrent System", Edited by 
		Akinori Yonezawa, The MIT Press, 1990, (ISBN 0-262-24029-7)
restriction:	no commercial use, must return license agreement
requires:	Common Lisp
contact:	abcl@is.s.u-tokyo.ac.jp
updated:	1990/05/23

language:	ABCL ???
package:	ABCL/R2
version:	?
author:		masuhara@is.s.u-tokyo.ac.jp, matsu@is.s.u-tokyo.ac.jp,
		takuo@is.s.u-tokyo.ac.jp, yonezawa@is.s.u-tokyo.ac.jp
how to get:	ftp pub/abclr2/* from camille.is.s.u-tokyo.ac.jp
description:	ABCL/R2 is an object-oriented concurrent reflective language
		based on Hybrid Group Architecture.  As a reflective language,
		an ABCL/R2 program can dynamically control its own behavior,
		such as scheduling policy, from within user-program.  An an
		object-oriented concurrent language, this system has almost all
		functions of ABCL/1.
requires:	Common Lisp
updated:	1993/01/28

language:	Ada
package:	Ada/Ed
version:	1.11.0a+
parts:		translator(?), interpreter, ?
how to get:	ftp pub/Ada/Ada-Ed from cnam.cnam.fr
description:	Ada/Ed is a translator-interpreter for Ada. It is
		intended as a teaching tool, and does not have the
		capacity, performance,	or robustness of commercial
		Ada compilers. Ada/Ed was developed at New York
		University, as part of a long-range project in
		language definition and software prototyping.
conformance:	Ada 83.  Last validated with version 1.7 of the ACVC tests.
		being an interpreter, it does not implement most 
		representation clauses, and thus does not support systems 
		programming close to the machine level.
ports:		Unix, MSDOS, Amiga, Atari
contact:	Michael Feldman <mfeldman@seas.gwu.edu>
updated:	1992/05/08

language:	Ada
package:	Ada grammar
version:	?
parts:		scanner(lex), parser(yacc)
how to get:	ftp from primost.cs.wisc.edu or mail to
		compilers-server@iecc.cambridge.ma.us
contact:	masticol@dumas.rutgers.edu
updated:	1991/10/12

language:	Ada
package:	Compiler for Toy/Ada in SML/NJ
version:	?
parts:		translator(?)
author:		Amit Bhatiani <bhatiaa@polly.cs.rose-hulman.edu>
how to get:	ftp pub/compiler*.tar.Z from master.cs.rose-hulman.edu
conformance:	subset
updated:	1992/04/08

language:	Ada
package:	NASA PrettyPrinter
version:	?
parts:		Ada LR parser, ?
how to get:	ftp from Ada Software Repository on wsmr-simtel20.army.mil
description:	pretty-print program that contains an ada parser
requires:	Ada
info-source:	Michael Feldman <mfeldman@seas.gwu.edu> in comp.compilers
		[he also has a yacc grammar for ada]
updated:	1991/02/01

language:	Ada
package:	yacc grammar for Ada
version:	?
parts:		parser(yacc)
author:		Herman Fischer
how to get:	ftp  PD2:<ADA.EXTERNAL-TOOLS>GRAM2.SRC 
		from wsmr-simtel20.army.mil
contact:	?
updated:	1991/02/01

language:	Ada
package:	Paradise
version:	2.0
parts:		library
how to get:	ftp pub/Ada/Paradise from cnam.cnam.fr
author:		?
description:	Paradise is a subsystem (a set of packages) developped
		to implement inter-processes, inter-tasks and
		inter-machines communication for Ada programs in
		the Unix world. This subsystem gives the user full
		access to files, pipes, sockets (both Unix and
		Internet), and pseudo-devices.
ports:		Sun, Dec, Sony Mips, Verdex compiler, DEC compiler, 
		Alsys/Systeam compiler
contact:	paradise-info@cnam.cnam.fr
updated:	1992/09/30

language:	Ada
package:	Adamakegen
version:	2.6.3
parts:		makefile generator
author:		Owen O'Malley <omalley@porte-de-st-ouen.ics.uci.edu>
how to get:	ftp ftp/pub/arcadia/adamakegen* from spare.ics.uci.edu
description:	A program that generates makefiles for Ada programs 
requires:	Icon
ports:		Verdix, SunAda 
updated:	1993/03/02

language:	ADL (Adventure Definition Language)
package:	ADL
parts:		interpreter
author:		Ross Cunniff <cunniff@fc.hp.com>, Tim Brengle
how to get:	comp.sources.games archive volume 2
description:	An adventure language, semi-object-oriented with LISP-like
		syntax.	 A superset of DDL.
updated:	?

language:	Algol, Foogol
package:	foogol
version:	?
parts:		compiler
author:		?
how to get:	comp.sources.unix archive volume 8
conformance:	subset of Algol
description:	?
ports:		VAX
updated:	?

language:	ALLOY
package:	ALLOY
version:	2.0?
parts:		interpreter, documentation, examples
author:		Thanasis Mitsolides <mitsolid@cs.nyu.edu>
how to get:	ftp pub/local/alloy/* from cs.nyu.edu
description:	ALLOY is a higher level parallel  programming language
		appropriate for programming  massively parallel computing
		systems.   It is based on  a combination  of  ideas from
		functional,  object oriented  and logic programming languages.
		The  result  is	 a  language that can  directly support
		functional, object  oriented  and logic	 programming  styles
		in a  unified  and controlled framework.   Evaluating modes
		support serial	or parallel execution,	eager or  lazy
		evaluation,  non-determinism or	 multiple solutions etc.
		ALLOY is  simple as it only requires  29 primitives in all
		(half of which for Object Oriented Programming support).
ports:		sparc, ?
updated:	1991/06/11

language:	APL
package:	I-APL
how to get:	ftp languages/apl/* from watserv1.waterloo.edu
updated:	1992/07/06

language:	APL
package:	APLWEB
version:	?
parts:		translator(web->apl), translator(web->TeX)
author:		Dr. Christoph von Basum <CvB@erasmus.hrz.uni-bielefeld.de>
how to get:	ftp languages/apl/aplweb/* from watserv1.uwaterloo.ca
updated:	1992/12/07

language:	Assembler (various)
package:	GNU assembler (GAS)
version:	2.1.1
parts:		assembler, documentation
how to get:	ftp gas-2.0.tar.z from a GNU archive site
description:	Many CPU types are now handled, and COFF and IEEE-695 formats
		are supported as well as standard a.out.
ports:		Sun-3, Sun-4, i386/{386BSD, BSD/386, Linux, PS/2-AIX},
		VAX/{Ultrix,BSD,VMS}
bugs:		bug-gnu-utils@prep.ai.mit.edu
updated:	1993/05/20

language:	Assembler (8051)
package:	CAS: The Free Full-Featured 8051 Assembler
version:	1
parts:		assembler
author:		Mark Hopkins <markh@csd4.csd.uwm.edu>
how to get:	ftp pub/8051/assem from csd4.csd.uwm.edu
description:	an Experimental public domain one-pass assembler for the 8051
		with C-like syntax.  Related software contained in /pub/8051,
		including arbitrary precision math, and multitasking routines.
ports:		MSDOS, Ultrix, Sun (contact author)
requries:	ANSI-C compiler
updated:	1992/08/13

language:	Assembler (mc6809)
package:	usim
version:	0.11
parts:		simulator, documentation
author:		Ray P. Bellis <rpb@psy.ox.ac.uk>
how to get:	ftp /pub/mc6809/usim-* from ftp.cns.ox.ac.uk
description:	a mc6809 simulator
updated:	1993/02/14

language:	Assembler (DSP56000)
package:	?
version:	1.1
parts:		assembler
author:		Quinn Jensen <jensenq@qcj.icon.com>
how to get:	alt.sources archive or ftp ? from wuarchive.wustl.edu
description:	?
updated:	?

language:	Assembler (6502, Z80, 8085, 68xx)
package:	?
version:	?
author:		msmakela@cc.helsinki.fi and Alan R. Baldwin
how to get:	ftp ? from ccosun.caltech.edu
description:	I have enhanced a set of 68xx and Z80 and 8085 cross assemblers
		to support 6502. These assemblers run on MS-DOS computers or on
		any systems that support standard Kerninghan & Richie C, for
		example, Amiga, Atari ST and any "big" machines
updated:	1993/03/10

language:	? attribute grammar ?
package:	Alpha
version:	pre-release
parts:		semantic-analysis generator?, documentation(german)
author:		Andreas Koschinsky <koschins@cs.tu-berlin.de>
how to get:	from author
description:	I have written a compiler generator. The generator is called
		Alpha and uses attribute grammars as specification calculus.
		Alpha is the result of a thesis at Technische Universitaet
		Berlin. I am looking for someone who would like to test and use
		Alpha.	Alpha generates compilers from a compiler
		specification. This specification describes a compiler in
		terminology of attribute grammars. Parser and Scanner are
		generated by means of Bison and Flex.  Alpha generates an
		ASE-evaluator (Jazayeri and Walter).  The documentation is in
		german since it is a thesis at a german university.
updated:	1993/02/16

language:	awk (new)
package:	mawk
version:	1.1.3
how to get:	ftp public/mawk* from oxy.edu
parts:		interpreter
author:		Mike Brennan <brennan@bcsaic.boeing.com>
conformance:	superset
		+ RS can be a regular expression
features:	+ faster than most new awks
ports:		sun3,sun4:sunos4.0.3 vax:bsd4.3,ultrix4.1 stardent3000:sysVR3 
		decstation:ultrix4.1 msdos:turboC++
contact:	Mike Brennan <brennan@bcsaic.boeing.com>
status:		actively developed
updated:	1993/03/14

language:	awk (new)
package:	GNU awk (gawk)
version:	2.15.2
parts:		interpreter, documentation
author:		David Trueman <david@cs.dal.ca> and 
		Arnold Robbins <arnold@cc.gatech.edu>
how to get:	ftp gawk-2.15.tar.Z from a GNU archive site
conformance:	superset including some Plan 9 features
ports:		unix, msdos:msc5.1
status:		activly developed
updated:	1993/05/19

language:	BASIC
package:	bwBASIC (Bywater BASIC interpreter)
version:	1.10
parts:		interpreter, shell, ?
author:		Ted A. Campbell <tcamp@acpub.duke.edu>
how to get:	ftp pub/bywater/* from duke.cs.duke.edu
description:	The Bywater BASIC Interpreter (bwBASIC) implements a large
		superset of the ANSI Standard for Minimal BASIC (X3.60-1978)
		implemented in ANSI C, and offers a simple interactive environ-
		ment including some shell program facilities as an extension of
		BASIC. The interpreter has been compiled successfully on a
		range of ANSI C compilers on varying platforms with no
		alterations to source code necessary.
ports:		DOS, Unix, ?
updated:	1992/11/05

language:	BASIC
package:	? basic ?
version:	?
parts:		paser(yacc), interpreter
author:		?
how to get:	comp.sources.unix archives volume 2
updated:	?

language:	BASIC
package:	? bournebasic ?
version:	?
parts:		interpreter
author:		?
how to get:	comp.sources.misc archives volume 1
description:	?
updated:	?

language:	BASIC
package:	? basic ?
version:	?
parts:		interpreter
author:		?
how to get:	ftp ? from wsmr-simtel20.army.mil
description:	?
contact:	?
updated:	?

language:	BASIC
package:	ubasic
version:	8
parts:		?
author:		Yuji Kida
how to get:	? ask archie ?
references:	reviewed in Notices of the A.M.S #36 (May/June 1989),
		and "A math-oriented high-precision BASIC", #38 (3/91)
contact:	?
updated:	1992/07/06

language:	BASIC
package:	?
version:	?
parts:		interpreter
how to get:	ftp pub/unix-c/languages/basic/basic.tar-z from oak.oakland.edu
description:	public domain version of DEC's MU-Basic with Microsoft
		Basic mixed together
contact:	?
updated:	?

language:	BCPL
package:	?
version:	?
author:		?
how to get:	ftp systems/amiga/programming/languages/BCPL/BCPL4Amiga.lzh
		from wuarchive.wustl.edu.
description:	The original INTCODE interpreter for BCPL.
ports:		Amiga, UNIX, MSDOS
contact:	?
updated:	?

language:	BCPL
package:	?
version:	?
how to get:	ftp [.languages]bcpl.tar_z from ftp.syd.dit.csiro.au
description:	A BCPL* (Basic Combined Programming Language) compiler 
		bootstrap kit with an INTCODE interpreter in C.	 
contact:	Ken Yap <ken@syd.dit.CSIRO.AU>
updated:	?

language:	BNF (Extended)
package:	TXL: Tree Transformation Language
version:	6.0
parts:		translator generator
author:		Jim Cordy <cordy@qucis.queensu.ca>
how to get:	ftp txl/00README for instructions from qusuna.qucis.queensu.ca
description:	+ TXL is a generalized source-to-source translation
		system suitable for rapidly prototyping computer
		languages and language processors of any kind.	It has
		been used to prototype several new programming
		languages as well as specification languages, command
		languages, and more traditional program transformation
		tasks such as constant folding, type inference, source
		optimization and reverse engineering.  TXL takes
		as input an arbitrary context-free grammar in extended
		BNF-like notation, and a set of show-by-example
		transformation rules to be applied to inputs parsed
		using the grammar.  
updated:	1992/02/23

language:	BNF (Extended)
package:	Gray
version:	3
parts:		parser generator(Forth)
author:		Martin Anton Ertl <anton@mips.complang.tuwien.ac.at>
how to get:	author; version 2 is on various ftp sites
description:	Gray is a parser generator written in Forth.  It takes 
		grammars in an extended BNF and produces executable Forth 
		code for recursive descent parsers.  There is no special 
		support for error handling.
requires:	Forth
ports:		TILE Release 2 by Mikael Patel
updated:	1992/05/22

language:	BNF ??
package:	ZUSE
version:	?
parts:		parser generator(?)
author:		Arthur Pyster
how to get:	? Univ Calif at Santa Barbara ?
description:	ll(1) paser generator
requires:	Pascal
updated:	1986/09/23

language:	BNF ??
package:	FMQ
version:	?
parts:		paser generator w/error corrector generator
author:		Jon Mauney
how to get:	ftp from csczar.ncsu.edu
status:		?
contact:	?
updated:	1990/03/31

language:	BNF ??
package:	ATS (Attribute Translation System)
version:	?
author:		? University of Saskatchewan ?
how to get:	?
description:	generates table-driven LL(1) parsers with full insert-only
		error recovery.	 It also handles full left-attribute semantic
		handling, which is a dream compared to using YACC's parser
		actions.
contact:	?
sggstd-contact:	Dave Bocking <bocking@cs.usask.ca>
status:		?
updated:	1988/11/29

language:	BNF (Extended)
package:	PCCTS (Purdue Compiler-Construction Tool Set)
version:	1.06
parts:		scanner generator, parser generator (LL(k)), documentation,
		tutorial
author:		Terence J. Parr <parrt@ecn.purdue.edu>, Will E. Cohen
		<cohenw@ecn.purdue.edu>, Henry G. Dietz <hankd@ecn.purdue.edu>
how to get:	ftp pub/pccts/1.06 from marvin.ecn.purdue.edu
    uk:		ftp /comput*/progra*/langu*/tools/pccts/* from src.doc.ic.ac.uk
description:	PCCTS is similar to a highly integrated version of YACC
		and LEX; where ANTLR (ANother Tool for Language
		Recognition) corresponds to YACC and DLG (DFA-based
		Lexical analyzer Generator) functions like LEX.
		However, PCCTS has many additional features which make
		it easier to use for a wide range of translation
		problems.  PCCTS grammars contain specifications for
		lexical and syntactic analysis, semantic predicates,
		intermediate-form construction and error reporting.
		Rules may employ Extended BNF (EBNF) grammar constructs
		and may define parameters, return values and local
		variables.  Languages described in PCCTS are recognized
		via LL(k) parsers constructed in pure, human-readable,
		C code.	 PCCTS parsers may be compiled with C++.
ports:		UNIX, DOS, OS/2
portability:	very high
contact:	Terence J. Parr <parrt@ecn.purdue.edu>
updated:	1992/12/14

language:	COCOL (EBNF variant)
package:	COCO/R
version:	1.28
author:		Hanspeter Moessenboeck <moessenboeck@inf.ethz.ch>
		Port to Modula-2 done by Marc Brandis, Christof Brass 
		and Pat Terry <cspt@alpha.ru.ac.za>
how to get:	contact Hanspeter Moessenboeck or Pat Terry
parts:		parser generator(LL(1))
description:	Coco/R generates recursive descent parsers and their associated
		scanners from attributed grammars.  Coco/R can bootstrap itself
		to generate its own driver, parser, scanner, and semantic
		evaluator from the attributed grammar CR.ATG.  This grammar
		thus serves as an an example of how to write compiler
		descriptions for Coco.  There are also other simpler examples
		showing its use.
requires:	Oberon or Modula-2
ports:		MS-DOS: TopSpeed Modula-2; FST 2.0; FST 3.1; StonyBrook
		QuickMod 2.2; Logitech 3.03.  Macintosh: Apple MacMeth
bugs:		MS-DOS related versions: Pat Terry <cspt@alpha.ru.ac.za>
		Other: Hanspeter Moessenboeck <moessenboeck@inf.ethz.ch>
status:		free to academic sites; commercial use requires a license
updated:	1993/04/30

language:	BNF (very extended), yacc
package:	PRE-CC Xtended
version:	2.30
parts:		library, parser generator (LL(oo)), translator(yacc->)
how to get:	ftp pub/Programs/preccx230* from ftp.comlab.ox.ac.uk
description:	PRECCX is an infinite-lookahead compiler compiler
		for context dependent grammars. The generated code is
		ANSI C. Specification scripts are in very EBNF with
		inherited and synthetic attributes allowed. Scripts can
		be compiled in separate modules, and linked together
		later.  Meta-production rules allowed. The technology
		is essentially LL(oo) with optimizations. A converter
		for yacc scripts is available.
ports:		unix?, MS-DOS
contact:	Peter T. Breuer <ptb@comlab.ox.ac.uk>
		Jonathan Bowen <bowen@comlab.ox.ac.uk>
updated:	1992/08/25 (later versions available by subscription)

language:	BNF ??
package:	LLGen
version:	?
parts:		parser generator
author:		? Fischer and LeBlanc ?
how to get:	? ftp from csczar.ncsu.edu ?
description:	LL(1) parser generator
conformance:	subset of FMQ
reference:	"Crafting A Compiler", by Fischer and LeBlanc
status:		?
contact:	?
updated:	1990/03/31

language:	BNF ??
package:	wacco
version:	?
parts:		parser generator
how to get:	comp.sources.misc volume ?
description:	LL(?) parser generator
contact:	?
updated:	?

language:	BNF (Extended), BNF (yacc), Modula-2
package:	GMD Toolbox for Compiler Construction (aka Cocktail)
version:	9209
parts:		parser generator (LALR -> C, Modula-2), documentation,
		parser generator (LL(1) -> C, Modula-2), tests,
		scanner generator (-> C, Modula-2), tests
		translator (Extended BNF -> BNF), translator (Modula-2 -> C),
		translator (BNF (yacc) -> Extended BNF), examples
		abstract syntax tree generator, attribute-evaluator generator,
how to get:	ftp pub/cocktail/dos from ftp.karlsruhe.gmd.de
    OS/2:	ftp.eb.ele.tue.nl/pub/src/cocktail/dos-os2.zoo 
description:	A huge set of compiler building tools. 
requires:	(ms-dos only) DJ Delorie's DOS extender (go32)
		(OS/2 only) emx programming environment for OS/2
ports:		msdos, unix, os/2
contact:	Josef Grosch <grosch@karlsruhe.gmd.de>
    OS/2:	Willem Jan Withagen <wjw@eb.ele.tue.nl>
discussion:	subscribe to Cocktail using listserv@eb.ele.tue.nl
updated:	1992/10/01

language:	BNF ????
package:	T-gen
version:	2.1
parts:		parser generator, documentation, ?
author:		Justin Graver <graver@comm.mot.com>
how to get:	ftp pub/st80_r41/T-gen2.1/* from st.cs.uiuc.edu
description:	T-gen is a general-purpose object-oriented tool for the 
		automatic generation of string-to-object translators. 
		It is written in Smalltalk and lives in the Smalltalk 
		programming environment.  T-gen supports the generation 
		of both top-down (LL) and bottom-up (LR) parsers, which 
		will automatically generate derivation trees, abstract 
		syntax trees, or arbitrary Smalltalk objects.  The simple 
		specification syntax and graphical user interface are 
		intended to enhance the learning, comprehension, and 
		usefulness of T-gen.
ports:		ParcPlace Objectworks/Smalltalk 4.0 & 4.1
requires:	Smalltalk-80
updated:	1992/10/18

language:	BNF 
package:	Eli Compiler Construction System
version:	3.4.2
parts:		?????, translator(WEB->BNF?)
how to get:	ftp pub/cs/distribs/eli/* from ftp.cs.colorado.edu
ports:		Sun-3/SunOS4.1 Sun-4/SunOS4.1.2 RS/6000/AIX3 Mips/Ultrix4.2
		HP9000/300/HP-UX8.00 HP9000/700/HP-UX8.07
description:	Eli integrates off-the-shelf tools and libraries with
		specialized language processors to generate complete compilers
		quickly and reliably.  It simplifies the development of new
		special-purpose languages, implementation of existing languages
		on new hardware and extension of the constructs and features of
		existing languages.
discussion:	<eli-request@cs.colorado.edu>
contact:	<compiler@cs.colorado.edu>, <compiler@uni-paderborn.de>
updated:	1993/02/11

language:	Milarepa 
package:	Milarepa Perl/BNF Parser 
version:	Prototype 1.0
parts:		parser-generator, examples, tutorial
author:		Jeffrey Kegler <jeffrey@netcom.com>
how to get:	?
description:	Milarepa takes a source grammar in the Milarepa language (a
		straightforward mix of BNF and Perl) and generates a Perl file,
		which, when enclosed in a simple wrapper, parses some third
		language described by the source grammar.
		This is intended to be a real hacker's parser.  It is not
		restricted to LR(k), and the parse logic follows directly from
		the BNF.  It handles ambiguous grammars, ambiguous tokens
		(tokens which were not positively identified by the lexer) and
		allows the programmer to change the start symbol.  The grammar
		may not be left recursive.  The input must be divided into
		sentences of a finite maximum length.  There is no fixed
		distinction between terminals and non-terminals, that is, a
		symbol can both match the input AND be on the left hand side of
		a production.  Multiple Marpa grammars are allowed in a single
		perl program.
		It's only a prototype primarily due to poor speed.  This is
		intended to be remedied after Perl 5.0 is out.
requires:	perl
updated:	1993/03/17

language:	BNF (yacc)
package:	NewYacc
version:	1.0
parts:		parser generator, documenation
how to get:	ftp src/newyacc.1.0.*.Z from flubber.cs.umd.edu
author:		Jack Callahan <callahan@mimsy.cs.umd.edu> 
description: 	[someone want to fill it in? --muir]
reference:	see Dec 89 CACM for a brief overview of NewYacc.
updated:	1992/02/10

language:	BNF (yacc)
package:	bison
version:	1.18
parts:		parser generator, documentation
author:		Robert Corbett ?
how to get:	ftp bison-1.16.tar.Z from a GNU archive site
bugs:		bug-gnu-utils@prep.ai.mit.edu
ports:		unix, atari, ?
restriction:	!! will apply the GNU General Public License to *your* code !!
updated:	1992/01/28

language:	BNF (yacc)
package:	? jaccl ?
version:	?
parts:		parser generator
author:		Dave Jones <djones@megatest.uucp>
description:	a LR(1) parser generator
how to get:	?
updated:	1989/09/08

language:	BNF (yacc)
package:	byacc (Berkeley Yacc)
version:	1.9
parts:		parser generator
author:		Robert Corbett <Robert.Corbett@eng.sun.com>
how to get:	ftp pub/byacc.tar.1.9.Z from vangogh.CS.Berkeley.EDU
description:	probably the best yacc variant around.
history:	Used to be called Zoo, and before that, Zeus
updated:	1993/02/22

language:	BNF (yacc), Ada
package:	aflex-ayacc
version:	1.2a
parts:		parser generator (Ada), scanner generator (Ada)
author:		IRUS (Irvine Research Unit in Software)
how to get:	ftp pub/irus/aflex-ayacc_1.2a.tar.Z from liege.ics.uci.edu
description:	Lex and Yacc equivalents that produce Ada output
announcements:	irus-software-request@ics.uci.edu
contact:	irus-software-request@ics.uci.edu
updated:	1993/01/06

langauge:	BNF (variant), Icon
package:	Ibpag2 (Icon-Based Parser Generation System 2)
version:	1.0
parts:		parser generator (Icon, SLR(1))
author:		Richard L. Goerwitz <goer@ellis.uchicago.edu>
how to get:	alt.sources archive
description:	Ibpag2 is a parser generator for Icon.  It does most
		of what you would expect.  It doesn't handle large
		grammars very well, nor can it do LALR(1).
ports:		unix
updated:	1993/05/23

language:	BURS ?
package:	Iburg
version:	?
parts:		parser generator?
author:		Christopher W. Fraser <cwf@research.att.com>, David R. Hanson
		<drh@princeton.edu>, Todd A. Proebsting <todd@cs.arizona.edu>
how to get:	ftp pub/iburg.tar.Z from ftp.cs.princeton.edu
description:	Iburg is a program that generates a fast tree parser.  It is
		compatible with Burg. Both programs accept a cost-augmented
		tree grammar and emit a C program that discovers an optimal
		parse of trees in the language described by the grammar. They
		have been used to construct fast optimal instruction selectors
		for use in code generation.  Burg uses BURS; Iburg's matchers
		do dynamic programming at compile time.
updated:	1993/02/10

language:	C, C++, Objective-C, RTL
package:	GNU CC (gcc)
version:	2.4.0
parts:		compiler, runtime, libraries, examples, documentation
author:		Richard Stallman <rms@gnu.ai.mit.edu> and others
how to get:	ftp gcc-2.3.3.tar.Z from a GNU archive site
description:	A very high quality, very portable compiler for C, C++,
		Objective-C.  The compiler is designed to support multiple
		front-ends and multiple back-ends by translating first
		into RTL (Register Transfer Language) and from there into
		assembly for the target architecture.   Front ends for
		Ada, Pascal, and Fortran are all under development.
conformance:	C: superset of K&R C and ANSI C.
		C++: not exactly cfront 3.0? [could someone tell me which
		version of cfront it is equivalent to, if any?  --muir]
		Objective-C: ?
portability:	very high in the theory, somewhat annoying in practice
ports:		3b1, a29k, aix385, alpha, altos3068, amix, arm, convex,
		crds, elxsi, fx2800, fx80, genix, hp320, clipper,
		i386-{dos,isc,sco,sysv.3,sysv.4,mach,bsd,linix}, iris,
		i860, i960, irix4, m68k, m88ksvsv.3, mips-news,
		mot3300, next, ns32k, nws3250-v.4, hp-pa, pc532,
		plexus, pyramid, romp, rs6000, sparc-sunos, 
		sparc-solaris2, sparc-sysv.4, spur, sun386, tahoe, tow,
		umpis, vax-vms, vax-bsd, we32k, hitachi-{SH,8300}
status:		actively developed
restriction:	Copyleft
bugs:		gnu.gcc.bug
discussion:	gnu.gcc.help
announcements:	gnu.gcc.announce
updated:	1993/05/17

language:	C
package:	c68/c386
version:	4.2a
parts:		compiler
author:		Matthew Brandt, Christoph van Wuellen, Keith and Dave Walker
how to get:	ftp pub/Minix/common-pkgs/c386-4.2.tar.Z from bugs.nosc.mil
description:	K&R C plus prototypes and other ANSI features.
		targetted to several 68k and i386 assemblers, incl. gas.
		floating point support by inline code or emulation.
		lots of available warnings.  better code generation than ACK.
ports:		386 and 68k Minix.  generic unix actually.
status:		actively worked on by the Walkers.
discussion:	comp.os.min
updated:	?

language:	C
package:	GNU superoptimizer
version:	2.2
author:		Torbjorn Granlund <tege@gnu.ai.mit.edu> with Tom Wood
parts:		exhaustive instruction sequence optimizer
how to get:	ftp superopt-2.2.tar.Z from a GNU archive site
description:	GSO is a function sequence generator that uses an exhaustive
		generate-and-test approach to find the shortest instruction
		sequence for a given function.  You have to tell the
		superoptimizer which function and which CPU you want to get
		code for.
		This is useful for compiler writers.
restriction:	Copyleft
ports:		Alpha, Sparc, i386, 88k, RS/6000, 68k, 29k, Pyramid(SP,AP,XP)
bugs:		Torbjorn Granlund <tege@gnu.ai.mit.edu>
updated:	1993/02/16

language:	C
package:	xdbx
version:	2.1
parts:		X11 front end for dbx
how to get:	retrieve xxgdb from comp.sources.x volumes 11, 12, 13, 14, & 16
contact:	Po Cheung <cheung@sw.mcc.com>
updated:	1992/02/22

language:	C
package:	ups
version:	2.1
parts:		interpreter, symbolic debugger, tests, documentation
how to get:	? ftp from contrib/ups*.tar.Z from export.lcs.mit.edu ?
    unofficial: unofficial enhancements by Rod Armstrong <rod@sj.ate.slb.com>,
		available by ftp misc/unix/ups/contrib/rob from sj.ate.slb.com
author:		Mark Russell <mtr@ukc.ac.uk>
description:	Ups is a source level C debugger that runs under X11 or 
		SunView.  Ups includes a C interpreter which allows you to add 
		fragments of code simply by editing them into the source window
ports:		Sun, Decstation, VAX(ultrix), HLH Clipper
discussion:	ups-users-request@ukc.ac.uk
bugs:		Mark Russell <mtr@ukc.ac.uk>
updated:	1991/05/20

language:	C
package:	C_Interp 
version:	?
parts:		interpreter
how to get:	ftp Mac/Misc/C_Interp.sit from oac2.hsc.uth.tmc.edu
description:	"I've made the C Interpreter that I mentioned in a previous 
		posting available for anonymous FTP"
		[ Where did this come from?  Does this include source?  
		What is it really called?  Who is the real contact?  --muir]
contact:	Chuck Shotton <cshotton@oac.hsc.uth.tmc.edu> ?
updated:	1993/05/14

language:	C (ANSI)
package:	lcc
version:	1.8
parts:		compiler, test suite, documentation
author:		Dave Hanson <drh@cs.princeton.edu>
how to get:	ftp pub/lcc/lccfe-*.tar.Z from princeton.edu
description:	+ hand coded C parser (faster than yacc)
		+ retargetable
		+ code "as good as GCC"
ports:		vax (mips, sparc, 68k backends are commercial)
status:		small-scale production use using commerical backends; the
		commercial backends are cheap (free?) to universities.
discussion:	lcc-requests@princeton.edu
updated:	1992/02/20

language:	C, Chop ?, lcc ?
package:	Chop
version:	0.6
parts:		code generator
author:		Alan L. Wendt <wendt@CS.ColoState.EDU>
how to get:	ftp pub/chop/0.6.tar.Z from beethoven.cs.colostate.edu
description:	The current revision, 0.6, is interfaced with Fraser and
		Hanson's lcc front end.  The result is a highly fast C compiler
		with good code selection and no global optimization.
		Project Status: Chop compiles and runs a number of small test
		programs on the Vax.  I'm currently updating the NS32k and 68K
		retargets for lcc compatibility.  After I get them working,
		I'll work on getting the system to compile itself, get struct
		assignments working, improve the code quality and compile
		speed, and run the SPEC benchmarks.  That will be rev 1.0.
references:	"Fast Code Generation Using Automatically-Generated Decision 
		Trees", ACM SIGPLAN '90 PLDI
updated:	1993/04/28

language:	C
package:	GCT
version:	1.4
parts:		test-coverage-preprocessor
author:		Brian Marick <marick@cs.uiuc.edu>
how to get:	ftp pub/testing/gct.file/ftp.* from cs.uiuc.edu
description:	GCT is test-coverage tool based on GNU C.  Coverage tools 
		measure how thoroughly a test suite exercises a program.
restriction:	CopyLeft
discussion:	Gct-Request@cs.uiuc.edu
support:	commercial support available from author, (217) 351-7228
ports:		sun3, sun4, rs/6000, 68k, 88k, hp-pa, ibm 3090,
		ultrix, convex, sco
updated:	1993/02/12

langauge:	C
package:	MasPar mpl, ampl
version:	3.1
parts:		compiler
how to get:	ftp put/mpl-* from maspar.maspar.com
description:	mpl & ampl - the intrinsic parallel languages for MasPar's
		machines are C (ampl is actually a gcc port these days). You
		can get the source from marpar.com.
contact:	?
updated:	?

language:	C
package:	dsp56k-gcc
version:	?
parts:		compiler
how to get:	ftp pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z from nic.funet.fi
    au:		ftp pub/micros/56k/g56k.tar.Z from evans.ee.adfa.oz.au
description:	A port of gcc 1.37.1 to the Motorola DSP56000 done by 
		Motorola
contact:	?
updated:	?

language:	C
package:	dsp56165-gcc
version:	?
parts:		compiler
author:		Andrew Sterian <asterian@eecs.umich.edu>
how to get:	ftp usenet/alt.sources/? from wuarchive.wustl.edu	
description:	A port of gcc 1.40 to the Motorola DSP56156 and DSP56000.
updated:	?

language:	C
package:	Harvest C
version:	2.1
how to get:	ftp mac/development/languages/harves* from archive.umich.edu
description:	?
ports:		Macintosh
contact:	Eric W. Sink
updated:	1992/05/26

language:	C, C++
package:	Xcoral
version:	1.72
parts:		editor
how to get:	ftp X/contrib/clients/xcoral* from ftp.inria.fr
description:	Xcoral is a multiwindows mouse-based text editor, for X Window
		System, with a built-in browser to navigate through C functions
		and C++ classes hierarchies...  Xcoral provides variables width
		fonts, menus, scrollbars, buttons, search, regions,
		kill-buffers and 3D look.  Commands are accessible from menus
		or standard key bindings. Xcoral is a direct Xlib client and
		run on color/bw X Display.
contact:	?
updated:	1993/03/14

language:	C++
package:	aard ???
version:	?
parts:		memory use tracer
how to get:	ftp pub/aard.tar.Z from wilma.cs.brown.edu
description:	We have a prototype implementation of a tool to do memory
		checking.  It works by keeping track of the typestate of each
		byte of memory in the heap and the stack.  The typestate can be
		one of Undefined, Uninitialized, Free or Set.  The program can
		detect invalid transitions (i.e. attempting to set or use
		undefined or free storage or attempting to access uninitialized
		storage).  In addition, the program keeps track of heap
		management through malloc and free and at the end of the run
		will report all memory blocks that were not freed and that are
		not accessible (i.e.  memory leaks).
		The tools works using a spliced-in shared library.
contact:	Steve Reiss <spr@cs.brown.edu>
requires:	Sparc, C++ 3.0.1, SunOS 4.X

language:	C++
package:	ET++
version:	3.0-alpha
parts:		class libraries, documentation
how to get:	ftp C++/ET++/* from iamsun.unibe.ch
contact:	Erich Gamma <gamma@ifi.unizh.ch>
updated:	1992/10/26

language:	C++
package:	C++ grammar
how to get:	comp.sources.misc volume ?
description:	[is this a copy of the Roskind grammer or something else?
		--muir]
parts:		parser(yacc)
updated:	1991/10/23

language:	C++
package:	C++ Object Oriented Library
version:	COOL ?, GECOOL 2.1, JCOOL 0.1
parts:		libraries, tests, documentation
how to get:	GECOOL, JCOOL: ftp pub/COOL/* from cs.utexas.edu
		COOL: ftp pub/COOL.tar.Z from csc.ti.com
description:	A C++ class library developed at Texas Instruments.  Cool
		contains a set of containers like Vectors, List, Has_Table,
		etc.  It uses a shallow hierarchy with no common base 
		class.	The funtionality is close to Common Lisp data
		structures (like libg++).  The template syntax is very close
		to Cfront3.x and g++2.x.  Can build shared libraries on Suns.
		JCOOL's main difference from COOL and GECOOL is that it uses real C++
		templates instead of a similar syntax that is preprocessed by a
		special 'cpp' distributed with COOL and GECOOL.
ports:		?
contact:	Van-Duc Nguyen <nguyen@crd.ge.com>
updated:	1992/08/05

langauge:	C++
package:	??? A C++ Parser toolkit
version:	?
parts:		library
author:		Mayan Moudgill <moudgill@cs.cornell.EDU>
how to get:	ftp pub/Parse.shar from ftp.cs.cornell.edu
description:	A collection of C++ classes that make building a 
		recursive descent parser/scanner very easy.
portability:	uses mmap(); probably low.
ports:		Sun 4 with cfront 3.0, 
updated:	1993/04/11

language:	C++, Extended C++
package:	EC++
version:	?
parts:		translator(C++), documentation
author:		Glauco Masotti <masotti@lipari.usc.edu>
how to get:	? ftp languages/c++/EC++.tar.Z from ftp.uu.net ?
description:	EC++ is a preprocessor that translates Extended C++
		into C++.  The extensions include:
		+ preconditions, postconditions, and class invariants
		+ parameterized classes
		+ exception handling 
		+ garbage collection
status:		?
updated:	1989/10/10

language:	C++
package:	LEDA
version:	3.0
parts:		libraries
how to get:	ftp pub/LEDA/* from ftp.cs.uni-sb.de
description:	library of efficient data types and algorithms.
		New with 3.0: both template and non-template versions.
contact:	Stefan N"aher <stefan@mpi-sb.mpg.de>
updated:	1992/11/30

language:	E (a persistent C++ variant)
package:	GNU E
version:	2.3.3
parts:		compiler
how to get:	ftp exodus/E/gnu_E* from ftp.cs.wisc.edu
description:	GNU E is a persistent, object oriented programming language
		developed as part of the Exodus project.  GNU E extends C++
		with the notion of persistent data, program level data objects
		that can be transparently used across multiple executions of a
		program, or multiple programs, without explicit input and
		output operations.
		GNU E's form of persistence is based on extensions to the C++
		type system to distinguish potentially persistent data objects
		from objects that are always memory resident.  An object is
		made persistent either by its declaration (via a new
		"persistent" storage class qualifier) or by its method of
		allocation (via persistent dynamic allocation using a special
		overloading of the new operator).  The underlying object
		storage system is the Exodus storage manager, which provides
		concurrency control and recovery in addition to storage for
		persistent data.
restriction:	Copyleft; not all runtime sources are available (yet)
requires:	release 2.1.1 of the Exodus storage manager
contact:	exodus@cs.wisc.edu
updated:	1993/01/20

language:	C (ANSI)
package:	? 1984 ANSI C to K&R C preprocessor ?
version:	?
parts:		translator(K&R C)
author:		?
how to get:	from comp.sources.unix archive volume 1
status:		?
updated:	?

language:	C (ANSI)
package:	unproto ?
version:	? 4 ? 1.6 ?
parts:		translator(K&R C)
author:		Wietse Venema <wietse@wzv.win.tue.nl>
how to get:	ftp pub/unix/unproto4.shar.Z from ftp.win.tue.nl
contact:	?
updated:	?

language:	C (ANSI)
package:	cproto
version:	?
parts:		translator(K&R C)
author:		Chin Huang <chin.huang@canrem.com>
how to get:	from comp.sources.misc archive volume 29
description:	cproto generates function prototypes from function definitions.
		It can also translate function definition heads between K&R
		style and ANSI C style.
ports:		UNIX, MS-DOS
updated:	1992/07/18

langauge:	C (ANSI)
package:	cextract
version:	1.7
parts:		translator(K&R C), header file generator
how to get:	ftp from any comp.sources.reviewed archive
author:		Adam Bryant <adb@cs.bu.edu>
description:	A C prototype extractor, it is ideal for generating
		header files for large multi-file C programs, and will
		provide an automated method for generating all of the
		prototypes for all of the functions in such a program.
		It may also function as a rudimentary documentation
		extractor, generating a sorted list of all functions
		and their locations
ports:		Unix, VMS
updated:	1992/11/03

language:	ANSI C
package:	cgram
version:	?
parts:		grammar
author:		Mohd Hanafiah Abdullah <napi@cs.indiana.edu>
how to get:	ftp pub/comp.compilers/cgram-ll1.Z from primost.cs.wisc.edu
description:	An ANSI C grammar in LL(k) (1 <= k <= 2).  It's written in 
		Scheme, so you need to have a Scheme interpreter to process 
		the grammar using a program (f-f-d.s) that extracts the 
		FIRST/FOLLOW/DIRECTOR sets.
requires:	Scheme
ports:		?
updated:	?

language:	C, ANSI C, C++
package:	The Roskind grammars
version:	cpp5 (cf2.0)
parts:		parser(yacc), documenation
author:		Jim Roskind <jar@hq.ileaf.com>
how to get:	ftp pub/gnu/c++grammar2.0.tar.Z from ics.uci.edu
		ftp pub/C++/c++grammar2.0.tar.Z from mach1.npac.syr.edu
description:	The C grammar is CLEAN, it does not use %prec, %assoc, and
		has only one shift-reduce conflict.  The C++ grammar has
		a few conflicts.
		Also included is an extension to byacc that produces
		graphical parse trees automatically.
conformance:	the C grammar si true ANSI; the C++ grammar supports 
		cfront 2.0 constructs.
requires:	byacc 1.8 (for graphical parse trees)
status:		actively developed
updated:	1991/07/01

language:	C, C++
package:	xxgdb
version:	1.06
parts:		X11 front end for gdb
how to get:	retrieve xxgdb from comp.sources.x volumes 11, 12, 13, 14, & 16
contact:	Pierre Willard <pierre@la.tce.com>
updated:	1992/02/22

language:	C, C++
package:	gdb
version:	4.9
parts:		symbolic debugger, documentation
how to get:	ftp gdb-*.tar.[zZ] from a GNU archive site
author:		many, but most recently Stu Grossman <grossman@cygnus.com> 
		and John Gilmore <gnu@cygnus.com> of Cygnus Support
ports:		most unix variants, vms, vxworks, amiga, msdos
bugs:		<bug-gdb@prep.ai.mit.edu>
restriction:	CopyLeft
updated:	1993/05/12

language:	Duel (a <practical> C debugging language)
package:	DUEL
version:	1.10
parts:		interpreter
author:		Michael Golan <mg@cs.princeton.edu>
how to get:	ftp duel/* from ftp.cs.princeton.edu
description:	DUEL acts as front end to gdb.  It implements a language
		designed for debbuging C programs.  It maily features 
		efficient ways to select and display data items.  It is
		normally linked into the gdb executable, but could stand
		alone.  It interprets a subset of C in addition to its 
		own language.
requires:	gdb
status:		author is pushing the system hard.
updated:	1993/03/15

language:	C, C++, Objective C
package:	emx programming environment for OS/2
version:	0.8f
parts:		gcc, g++, gdb, libg++, .obj linkage, DLL, headers
how to get:	ftp pub/os2/2.0/programming/emx-0.8f from ftp-os2.nmsu.edu
    europe:	ftp soft/os2/emx-0.8f from rusmv1.rus.uni-stuttgart.de
author:		Ebenhard Mattes <mattes@azu.informatik.uni-stuttgart.de>
discussion:	subscribe to emxlist using listserv@ludd.luth.se
updated:	1992/09/21

language:	C
package:	PART's C Pthreads
version:	?
parts:		library
author:		PART (POSIX / Ada-Runtime Project)
how to get:	ftp pub/PART/pthreads* from ftp.cs.fsu.edu
description:	As part of the PART project we have been designing and
		implementing a library package of preemptive threads which is
		compliant with POSIX 1003.4a Draft 6. A description of the
		interface for our Pthreads library is now available on ftp. Our
		implementation is limited to the Sun SPARC architecture and
		SunOS 4.1.x. We do not make any use of Sun's light-weight
		processes to achieve better performance (with one I/O-related
		exception).
restriction:	GNU Library General Public License
discussion:	send "Subject: subscribe-pthreads" to mueller@uzu.cs.fsu.edu
contact:	pthreads-bugs@ada.cs.fsu.edu
updated:	1993/03/05

language:	C, nroff
package:	c2man
version:	2.03
parts:		documentation generator (C -> nroff -man)
how to get:	comp.sources.reviewed archive volume 3
author:		Graham Stoney <greyham@research.canon.oz.au>
description:	c2man is a program for generating Unix style manual pages in 
		nroff -man format directly from ordinary comments embedded 
		in C source code
updated:	1993/05/18

language:	Small-C
package:	smallc
version:	?
parts:		compiler
author:		?
how to get:	?, comp.sources.unix volume 5
description:	Small-C is a subset of the C programming language for which a
		number of public-domain compilers have been written.  The
		original compiler was written by Ron Cain and appeared in the
		May 1980 issue of Dr.Dobb's Journal.  More recently, James
		E.Hendrix has improved and extended the original Small-C
		compiler and published "The Small-C Handbook", ISBN
		0-8359-7012-4 (1984).  Both compilers produce 8080 assembly
		language, which is the most popular implementation of Small-C
		to-date.  My 6502 Small-C compiler for the BBC Micro is based
		on "RatC", a version of the original Ron Cain compiler
		described by R.E.Berry and B.A.Meekings in "A Book on C", ISBN
		0-333-36821-5 (1984).  The 6502 compiler is written in Small-C
		and was bootstrapped using Zorland C on an Amstrad PC1512 under
		MSDOS 3.2, then transferred onto a BBC Micro using Kermit.  The
		compiler can be used to cross-compile 6502 code from an MSDOS
		host, or as a 'resident' Small-C compiler on a BBC Micro.
conformance:	subset of C
ports:		68k, 6809, VAX, 8080, BBC Micro, Z80
updated:	1989/01/05

language:	C-Refine, C++-Refine, *-Refine
package:	crefine
version:	3.0
parts:		pre-processor, documentation
how to get:	aquire from any comp.sources.reviewed archive
author:		Lutz Prechelt <prechelt@ira.uka.de>
description:	C-Refine is a preprocessor for C and languages that
		vaguely resemble C's syntax.  It allows symbolic naming
		of code fragments so as to redistribute complexity and
		provide running commentary.
portability:	high
ports:		unix, msdos, atari, amiga.
updated:	1992/07/16

language:	CAML (Categorical Abstract Machine Language)
package:	CAML
version:	3.1
parts:		?
author:		?
description:	CAML is a language belonging to the ML family including:
		+ lexical binding discipline
		+ static type inference
		+ user-defined (sum and product) types
		+ possibly lazy data structures
		+ possibly mutable data structures
		+ interface with the Yacc parser generator
		+ pretty-printing tools
		+ and a complete library.
how to get:	? ftp lang/caml from nuri.inria.fr ?
status:		?
discussion:	?
ports:		Sun-3 Sun-4 Sony-68k Sony-R3000 Decstation Mac-A/UX Apollo
portability:	?
bugs:		weis@margaux.inria.fr or caml@margaux.inria.fr
updated:	?

language:	Caml Light
package:	Caml Light
version:	0.4
how to get:	ftp lang/caml-light/* from nuri.inria.fr
author:		Xavier Leroy <xleroy@margaux.inria.fr>
parts:		bytecode compiler, runtime, scanner generator, parser generator
ports:		most unix, Macintosh, Amiga, MSDOS
conformance:	subset of CAML
features:	very small
performance:	five to ten times slower than SML-NJ
portability:	very high
contact:	Xavier Leroy <xleroy@margaux.inria.fr>
updated:	1991/10/05

language:	CASE-DSP (Computer Aided Software Eng. for Digital Signal Proc)
package:	Ptolemy
version:	0.4.1
parts:		grahpical algorithm layout, code generator, simulator
how to get:	ftp pub/ptolemy/* from ptolemy.bekeley.edu
description:	Ptolemy provides a highly flexible foundation for the
		specification, simulation, and rapid prototyping of systems.
		It is an object oriented framework within which diverse models
		of computation can co-exist and interact.  For example, using
		Ptolemy a data-flow system can be easily connected to a
		hardware simulator which in turn may be connected to a
		discrete-event system, etc.  Because of this, Ptolemy can be
		used to model entire systems.
		In addition, Ptolemy now has code generation capabilities.
		From a flow graph description, Ptolemy can generate both C code
		and DSP assembly code for rapid prototyping.  Note that code
		generation is not yet complete, and is included in the current
		release for demonstration purposes only.
requires:	C++, C
ports:		Sun-4, MIPS/Ultrix; DSP56001, DSP96002.
status:		active research project
contact:	ptolemy@ohm.berkeley.edu
discussion:	ptolemy-hackers-request@ohm.berkeley.edu
updated:	1993/04/22

langauge:	Cellang (Cellular Automata)
package:	Cellular
version:	2.0
parts:		byte-code compiler, runtime, viewer
author:		J Dana Eckart <dana@rucs.faculty.cs.runet.edu>
how to get:	comp.sources.unix, volume 26
description:	A system for cellular automata programming.
updated:	1993/04/03

language:	Common Lisp
package:	CMU Common Lisp
version:	16f
parts:		incremental compiler, profiler, runtime, documentation, 
		editor, debugger
how to get:	ftp /afs/cs.cmu.edu/project/clisp/release/16f-source.tar.Z 
		from ftp.cs.cmu.edu.  Precompiled versions also available 
description:	includes *macs-like editor (hemlock), pcl, and clx.
conformance:	mostly X3J13 compatible.
ports:		Sparc/Mach Sparc/SunOS Mips/Mach IBMRT/Mach
contact:	slisp@cs.cmu.edu
updated:	1992/12/17

language:	Common Lisp
package:	PCL (Portable Common Loops)
version:	8/28/92 PCL
parts:		library
author:		? Richard Harris <rharris@ptolemy2.rdrc.rpi.edu> ?
how to get:	ftp pcl/* from parcftp.xerox.com
description:	A portable CLOS implementation.	 CLOS is the object oriented 
		programming standard for Common Lisp.  Based on Symbolics 
		FLAVORS and Xerox LOOPS, among others.	Loops stands for
		Lisp Object Oriented Programming System.
status:		?
ports:		Lucid CL 4.0.1, CMUCL 16e, ?
updated:	1992/09/02

language:	Common Lisp
package:	WCL
version:	2.14
parts:		?, shared library runtime, source debugger
author:		Wade Hennessey <wade@leland.Stanford.EDU>
how to get:	ftp pub/wcl/* from sunrise.stanford.edu
description:	A common lisp implementation as a shared library.  WCL
		Is not a 100% complete Common Lisp, but it does have
		the full development environment including dynamic file
		loading and debugging.	A modified version of GDB provides
		mixed-language debugging.  A paper describing WCL was
		published in the proceedings of the 1992 Lisp and Functional
		Programming Conference. 
requires:	GNU C 2.1 (not 2.2.2)
ports:		Sparc/SunOS
contact:	<wcl@sunrise.stanford.edu>
discussion:	<wcl-request@sunrise.stanford.edu>
updated:	1992/10/28

language:	Common Lisp
package:	KCL (Kyoto Common Lisp)
parts:		translator(C), interpreter
how to get:	? ftp pub/kcl*.tar.Z from rascal.ics.utexas.edu ?
author:		T. Yuasa <yuasa@tutics.tut.ac.jp>, M. Hagiya 
		<hagiya@is.s.u-tokyo.ac.jp> 
description:	KCL, Kyoto Common Lisp, is an implementation of Lisp,
		It is written in the language C to run under Un*x-like 
		operating systems.  KCL is very C-oriented; for example, 
		the compilation of Lisp functions in KCL involves a 
		subsidiary C compilation.
conformance:	conforms to the book ``Common Lisp: The Language,''
		G. Steele, et al., Digital Press, 1984.	 
restriction:	must sign license agreement
discussion:	kcl-request@cli.com
bugs:		kcl@cli.com
updated:	1987/06

language:	Common Lisp
package:	AKCL (Austin Kyoto Common Lisp)
version:	1-615
parts:		improvements
author:		Bill Schelter <wfs@cli.com>
how to get:	ftp pub/akcl-*.tar.Z from rascal.ics.utexas.edu
author:		Bill Schelter <wfs@rascal.ics.utexas.edu>
description:	AKCL is a collection of ports, bug fixes, and
		performance improvements to KCL.
ports:		Decstation3100, HP9000/300, i386/sysV, IBM-PS2/aix, IBM-RT/aix
		SGI Sun-3/Sunos[34].* Sun-4 Sequent-Symmetry IBM370/aix,
		VAX/bsd VAX/ultrix NeXT
updated:	1992/04/29

language:	Common Lisp
package:	CLX 
version:	5.01
parts:		library
how to get:	ftp contrib/CLX.R5.01.tar.Z from export.lcs.mit.edu
description:	Common Lisp binding for X
contact:	?
ports:		?, CMU Common Lisp
bugs:		bug-clx@expo.lcs.mit.edu
updated:	1992/08/26

language:	Common Lisp
package:	CLISP
version:	?
parts:		bytecode compiler, translator(->C), runtime, library, editor
author:		Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de>,
		Michael Stoll <michael@rhein.iam.uni-bonn.de>
how to get:	ftp pub/lisp/clisp from ma2s2.mathematik.uni-karlsruhe.de
description:	CLISP is a Common Lisp (CLtL1) implementation by Bruno Haible
		of Karlsruhe University and Michael Stoll of Munich University,
		both in Germany.  It needs only 1.5 MB of RAM.  German and
		English versions are available, French coming soon.  Packages
		running in CLISP include PCL and, on Unix machines, CLX.
conformance:	CLISP is mostly CLtL1 compliant.  It implements 99% of the 
		standard
ports:		Atari, Amiga, MS-DOS, OS/2, Linux, Sun4, Sun386i, HP90000/800
		and others
discussion:	send "subscribe clisp-list" to 
		listserv@ma2s2.mathematik.uni-karlsruhe.de
restriction:	GNU General Public License
updated:	1993/03/10

language:	Common Lisp
package:	Cartier's Contribs
version:	1.2
parts:		libraries, documentation
author:		Guillaume Cartier <cartier@math.uqam.ca>
how to get:	ftp pub/mcl2/contrib/Cartiers* from cambridge.apple.com
description:	libraries for MCL
requires:	Macintosh Common Lisp
updated:	1992/11/30

language:	Common Lisp
package:	QT-OBJECTS
version:	?
author:		Michael Travers <mt@media.mit.edu> and others
parts:		library
description:	interface between MCL and QuickTime
requires:	Macintosh Common Lisp
updated:	1992/12/20

language:	Common Lisp
package:	Memoization ?
version:	?
parts:		library
how to get:	ftp pub/Memoization from archive.cs.umbc.edu
author:		Marty Hall <hall@aplcenmp.apl.jhu.edu>
description:	Automatic memoization is a technique by which an existing 
		function can be transformed into one that "remembers" 
		previous arguments and their associated results
updated:	1992/11/30

language:	Common Lisp
package:	GINA (Generic Interactive Application) 
version:	2.2
parts:		language binding, class library, interface builder
how to get:	ftp /gmd/gina from ftp.gmd.de 
    usa:	ftp contrib/? from export.lcs.mit.edu
description:	GINA is an application framework based on Common Lisp and 
		OSF/Motif to simplify the construction of graphical 
		interactive applications. It consists of:
		+ CLM, a language binding for OSF/Motif in Common Lisp.
		+ the GINA application framework, a class library in CLOS
		+ the GINA interface builder, an interactive tool implemented 
		with GINA to design Motif windows.
requires:	OSF/Motif 1.1 or better.  Common Lisp with CLX, CLOS, PCL and
		processes.
ports:		Franz Allegro, Lucid, CMU CL and Symbolics Genera
discussion:	gina-users-request@gmdzi.gmd.de
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  1 07:00:37 EDT 1993
Xref: iecc comp.compilers:4823 comp.lang.misc:10066 comp.archives.admin:971 news.answers:9490
Newsgroups: comp.compilers,comp.lang.misc,comp.archives.admin,news.answers,comp.answers
Path: iecc!compilers-sender
From: David Muir Sharnoff <muir@idiom.berkeley.ca.us>
Subject: Catalog of compilers, interpreters, and other language tools [p2of3]
Message-ID: <free2-Jul-93@comp.compilers>
Followup-To: comp.archives.admin
Summary: Monthly posting of free language tools that include source code
Keywords: tools, FTP, administrivia
Sender: compilers-sender@chico.iecc.com
Supersedes: <free2-Jun-93@comp.compilers>
Reply-To: muir@idiom.berkeley.ca.us
Organization: University of California, Berkeley
References: <free1-Jul-93@comp.compilers>
Date: Thu, 1 Jul 1993 11:00:32 GMT
Approved: compilers@iecc.cambridge.ma.us
Expires: Sun, 1 Aug 1993 23:59:00 GMT

Archive-name: free-compilers/part2
Last-modified: 1993/05/24
Version: 3.4

language:	Concurrent Clean
package:	The Concurrent Clean System
version:	0.8.1
parts:		development environment, documentation, compiler(byte-code), 
		compiler(native), interpreter(byte-code), examples
how to get:	ftp pub/Clean/* from ftp.cs.kun.nl 
author:		Research Institute for Declarative Systems, 
		University of Nijmegen
description:	The Concurrent Clean system is a programming
		environment for the functional language Concurrent
		Clean, developed at the University of Nijmegen, The
		Netherlands. The system is one of the fastest
		implementations of functional languages available at
		the moment. Its I/O libraries make it possible to do
		modern, yet purely functional I/O (including windows,
		menus, dialogs etc.) in Concurrent Clean. With the
		Concurrent Clean system it is possible to develop
		real-life applications in a purely functional
		language.
		* lazy and purely functional
		* strongly typed - based on Milner/Mycroft scheme
		* module structure
		* modern I/O
		* programmer-infulenced evaluation order by annotations
contact:	clean@cs.kun.nl
ports:		Sun-3, Sun-4, Macintosh
updated:	1992/11/07

language:	Dylan
pakcage:	Thomas
version:	? first public release ?
parts:		translator(Scheme)
how to get:	ftp pub/DEC/Thomas from gatekeeper.pa.dec.com
author:		Matt Birkholz <Birkholz@crl.dec.com>, Jim Miller 
		<JMiller@crl.dec.com>, Ron Weiss <RWeiss@crl.dec.com>
description:	Thomas, a compiler written at Digital Equipment
		Corporation's Cambridge Research Laboratory compiles
		a language compatible with the language described
		in the book "Dylan(TM) an object-oriented dynamic
		language" by Apple Computer Eastern Research and
		Technology, April 1992.	 It does not perform well.
		Thomas is NOT Dylan(TM).
ports:		MIT's CScheme, DEC's Scheme->C, Marc Feeley's Gambi, Mac, PC, 
		Vax, MIPS, Alpha, 680x0
requires:	Scheme
updated:	1992/09/11

language:	E
package:	Amiga E
version:	2.1b
parts:		compiler, assembler, linker, utilities
author:		Wouter van Oortmerssen <Wouter@mars.let.uva.nl>
how to get:	ftp amiga/dev/lang/AmigaE21b.lha from amiga.physik.unizh.ch
description:	An Amiga specific E compiler.  E is a powerful and flexible
		procedural programming language and Amiga E a very fast com-
		piler for it, with features such as compilation speed of
		20000 lines/minute on a 7 Mhz amiga, inline assembler and
		linker integrated into compiler, large set of integrated
		functions, module concept with 2.04 includes as modules,
		flexible type-system, quoted expressions, immediate and typed
		lists, low level polymorphism, exception handling and much,
		much more.  Written in Assembly and E.	
discussion:	comp.sys.amiga.programmer (sometimes)
ports:		Amiga
portability:	not portable at all
status:		actively developed
updated:	1993/03/01

language:	EDIF (Electronic Design Interchange Format)
package:	Berkeley EDIF200 
version:	7.6
parts:		translator-building toolkit
author:		Wendell C. Baker and Prof A. Richard Newton of the Electronics 
		Research Laboratory, Department of Electrical Engineering and 
		Computer Sciences at the University of California, Berkeley, CA
how to get:	ftp from pub/edif in ic.berkeley.edu
description:	?
ports:		?
restriction:	no-profit w/o permission
updated:	1990/07

language:	EDIF v 2 0 101
package:	University of Manchester EDIF v 2 0 101 Syntax Checker
how to get:	ftp pub/edif from edif.cs.man.ac.uk
description:	Parser/Syntax checker for EDIF v 2 0 101 written in ANSI-C

language:	Eiffel
package:	?
version:	?
parts:		source checker
author:		Olaf Langmack <langmack@inf.fu-berlin.de> and Burghardt Groeber
how to get:	ftp pub/heron/ep.tar.Z from ftp.fu-berlin.de
description:	A compiler front-end for Eiffel-3 is available. It has been
		generated automatically with the Karlsruhe toolbox for
		compiler construction according to the most recent public
		language definition. The parser derives an easy-to-use
		abstract syntax tree, supports elementary error recovery
		and provides a precise source code indication of errors. It
		performs a strict syntax check and analyses 4000 lines of
		source code per second on a Sun-SPARC workstation.
updated:	1992/12/14

language:	EuLisp
package:	Feel (Free and Eventually Eulisp)
version:	0.75
parts:		interpreter, documentation
how to get:	ftp pub/eulisp from ftp.bath.ac.uk
author:		Pete Broadbery <pab@maths.bath.ac.uk>
description:	+ integrated object system
		+ a module system
		+ parallelism
		+ interfaces to PVM library, tcp/ip sockets, futures, 
		Linda, and CSP.
ports:		most unix
portability:	high, but can use shared memory and threads if available
updated:	1992/09/14

language:	FMPL of Accardi
package:	FMPL interpreter
version:	1
parts:		interpreter, documentation
author:		Jon Blow <blojo@xcf.berkeley.edu>
how to get:	ftp src/local/fmpl/* from xcf.berkeley.edu
description:	FMPL is an experimental prototype-based object-oriented 
		programming language developed at the Experimental Computing
		Facility of the University of California, Berkeley.
		+ lambda-calculus based constructs.
		+ event-driven (mainly I/O events)
updated:	1992/06/02

language:	FORTH
package:	TILE Forth
version:	2.1
parts:		interpreter
author:		Mikael Patel <mip@sectra.se>
how to get:	ftp tile-forth-2.1.tar.Z from a GNU archive site
description:	Forth interpreter in C; many Forth libraries
conformance:	Forth83
restriction:	shareware/GPL
ports:		unix
updated:	1991/11/13

language:	FORTH
package:	cforth
version:	?
parts:		interpreter
author:		?
how to get:	comp.sources.unix archive volume 1
description:	?
updated:	?

language:	FORTH
package:	F68K
version:	?
how to get:	ftp atari/Languages/f68k.* from archive.umich.edu
description:	a portable Forth system for Motorola 68k computers
ports:		Atari ST/TT, Amiga, Sinclair QL and OS9
portability:	very high for 68000 based systems
contact:	Joerg Plewe <joerg.plewe@mpi-dortmund.mpg.de>
updated:	1992/12/14

language:	FORTH
package:	51forth
version:	?
parts:		?
author:		Scott Gehmlich
how to get:	ftp giovanni/51forth.zip from [130.123.96.9]
description:	source and documentation for a 8051 subroutine-
		threaded forth
contact:	?
updated:	1993/04/03

language:	Kevo (Forth-like)
package:	kevo
version:	0.9b6
parts:		interpreter, demo programs, user's guide, papers
author:		Antero Taivalsaari <tsaari@cs.uta.fi>
how to get:	ftp /pub/kevo/* from cs.uta.fi
description:	Kevo is a prototype-based object-oriented language for
		Macintosh Kevo features a unique prototype-based object model
		(which is based neither on classes nor Self-style delegation),
		multitasking (both preemptive and cooperative), dynamic memory
		management, and an icon-based object browser and editor modeled
		loosely after Mac Finder. Kevo has been built around a portable
		threaded code interpreter, and is syntactically a close
		derivative of Forth.
ports:		Macintosh
contact:	kevo-interest@ursamajor.uvic.ca
updated:	1993/05/18

language:	Forth, Yerk
package:	Yerk
version:	3.62
parts:		?
how to get:	ftp pub/Yerk/? from oddjob.uchicago.edu
description:	Yerk is an object oriented language based on a
		Forth Kernel with some major modifications.  It
		was originally known as Neon, developed and sold
		as a product by Kriya Systems from 1985 to 1989.
		Several of us at The University of Chicago have
		maintained Yerk since its demise as a product.
		Because of the possible trademark conflict that
		Kriya mentions, we picked the name Yerk, which is
		at least not an acronym for anything, but rather
		stands for Yerkes Observatory, part of the Department
		of Astronomy and Astrophysics at U of C.
author:		?
updated:	?

language:	Forth?
package:	Mops
version:	2.3
parts:		?
how to get:	ftp pub/Yerk/? from oddjob.uchicago.edu
description:	???
updated:	1993/03/22

language:	Fortran
package:	f2c
version:	?
parts:		translator(C)
author:		?
how to get:	ftp ft2/? from netlib@research.att.com
bugs:		dmg@research.att.com
updated:	? 1991/02/16 ?

language:	Fortran
package:	Floppy
version:	?
parts:		?
how to get:	ffccc in comp.sources.misc archive volume 12
description:	?
contact:	?
updated:	1992/08/04

language:	Fortran
package:	Flow
version:	?
parts:		?
how to get:	comp.sources.misc archive volume 31
author:		Julian James Bunn <julian@vxcrna.cxern.ch>
descripton:	The Flow program is a companion to Floppy, it allows the user 
		to produce various reports on the structure of Fortran 
		77 code, such as flow diagrams and common block tables.
requires:	Floppy
ports:		VMS, Unix, CMS

language:	Fortran
package:	Adaptor (Automatic DAta Parallelism TranslatOR)
version:	?
parts:		translator(Fortran), documentation
how to get:	ftp gmd/adaptor/* from ftp.gmd.de
description:	Adaptor is a tool that transforms data parallel
		programs written in Fortran with array extensions,
		parallel loops, and  layout directives	to parallel
		programs with explicit message passing.
		ADAPTOR is not a compiler but a source to source
		transformation that generates Fortran 77 host and
		node programs with message passing.  The new
		generated source codes have to be compiled by the
		compiler of the parallel machine. 
ports:		Alliant FX/2800, iPSC/860, Net of Sun-4 or RS/6000 
		Workstations (based on PVM), Parsytec GCel, Meiko Concerto
contact:	Thomas Brandes <brandes@gmdzi.gmd.de>
updated:	1992/10/17

language:	Fortran, C
package:	cfortran.h
version:	2.6
parts:		macros, documentation, examples
author:		Burkhard Burow
how to get:	ftp cfortran/* from zebra.desy.de
description:	cfortran.h is an easy-to-use powerful bridge between
		C and FORTRAN. It provides a completely transparent, machine
		independent interface between C and FORTRAN routines and
		global data.
		cfortran.h provides macros which allow the C preprocessor to
		translate a simple description of a C (Fortran) routine or
		global data into a Fortran (C) interface.
references:	reviewed in RS/Magazine November 1992 and
		a user's experiences with cfortran.h are to be described
		in the 1/93 issue of Computers in Physics.
portability:	high
ports:		VAX VMS or Ultrix, DECstation, Silicon Graphics, IBM RS/6000,
		Sun, CRAY, Apollo, HP9000, LynxOS, f2c, NAG f90.
contact:	burow@vxdesy.cern.ch
updated:	1992/04/12

langauge:	Fortran
package:	fsplit
version:	?
parts:		?
how to get:	?
description:	a tool to split up monolithic fortran programs
updated:	?

language:	Fortran
package:	?
version:	?
author:		Steve Mccrea <mccrea@gdwest.gd.com>
description:	a tool to split up monolithic fortran programs
requires:	new awk
updated:	?

language:	FP
package:	? funcproglang ?
version:	?
parts:		translator(C)
author:		?
how to get:	comp.sources.unix archive volume 13
descrition:	? Backus Functional Programming ?
updated:	?

language:	Garnet ??
package:	Garnet
version:	2.1 alpha
how to get:	ftp from /usr/garnet/? from a.gp.cs.cmu.edu
description:	?
contact:	?
updated:	?

language:	Garnet
package:	Multi-Garnet
version:	2.1
how to get:	ftp /usr/garnet/alpha/src/contrib/multi-garnet 
		from a.gp.cs.cmu.edu
author:		Michael Sannella <sannella@cs.washington.edu>
description:	better contstraint system for Garnet ??
updated:	1992/09/21

language:	Gofer (Haskell derivitive)
package:	Gofer
version:	2.28a
parts:		interpreter, translator(->C), documentation, examples
author:		Mark Jones <jones-mark@cs.yale.edu>
how to get:	ftp pub/haskell/gofer from nebula.cs.yale.edu
    uk:		pub/Packages/Gofer from ftp.comlab.ox.ac.uk
description: 	Gofer is based quite closely on the Haskell programming
		language, version 1.2.  It supports lazy evaluation, higher
		order functions, pattern matching, polymorphism, overloading
		etc and runs on a wide range of machines.
conformances:	Gofer does not implement all of Haskell, although it is 
		very close.
status:		maintained but not developed (for a while anyway)
ports:		many, including Sun, PC, Mac, Atari, Amiga
updated:	1993/03/09

language:	Haskell
package:	Chalmers Haskell (aka Haskell B.)
version:	?
parts:		?
how to get:	ftp pub/haskell/chalmers/hbc from animal.cs.chalmers.se
requires:	LML
contact:	?
updated:	1992/07/06

language:	Haskell
package:	The Glasgow Haskell Compiler (GHC)
version:	0.10
parts:		translator(C), tests, profiler
how to get:	ftp pub/haskell/glasgow/* from nebula.cs.yale.edu
    uk:		ftp pub/haskell/glasgow/* from ftp.dcs.glasgow.ac.uk
    se:		ftp pub/haskell/glasgow/* from animal.cs.chalmers.se
description:	+ almost all of Haskell is implemented
		+ An extensible I/O system is provided, based on a "monad"
		+ significant language extensions are implemented: Fully 
		fledged unboxed data types, Ability to write arbitrary in-line
		C-language code, Incrementally-updatable arrays, Mutable
		reference types.
		+ generational garbage collector
		+ Good error messages
		+ programs compiled with GHC "usually" beat
		Chalmers-HBC-compiled ones.
		+ compiler is written in a modular and well-documented way.
		+ Highly configurable runtime system. 
		- No interactive system.
		- Compiler is greedy on resources.
requires:	GNU C 2.1+, perl, Chalmers HBC 0.998.x (source build only)
conformance:	Almost all of Haskell is implemented.
ports:		Sun4
portability:	should be high
bugs:		<glasgow-haskell-bugs@dcs.glasgow.ac.uk>
contact:	<glasgow-haskell-request@dcs.glasgow.ac.uk>
updated:	1992/12/14

language:	Hermes
package:	IBM Watson prototype Hermes system
version:	0.8alpha patchlevel 01
parts:		bytecode compiler, bytecode translator(C), runtime
author:		Andy Lowry <lowry@watson.ibm.com>
how to get:	ftp pub/hermes/README from software.watson.ibm.com
description:	Hermes is a very-high-level integrated language and
		system for implementation of large systems and
		distributed applications, as well as for
		general-purpose programming.  It is an imperative,
		strongly typed, process-oriented language.  Hermes
		hides distribution and heterogeneity from the
		programmer.  The programmer sees a single abstract
		machine containing processes that communicate using
		calls or sends.	 The compiler, not the programmer,
		deals with the complexity of data structure layout,
		local and remote communication, and interaction with
		the operating system.  As a result, Hermes programs are
		portable and easy to write.  Because the programming
		paradigm is simple and high level, there are many
		opportunities for optimization which are not present in
		languages which give the programmer more direct control
		over the machine.
reference:	Strom, Bacon, Goldberg, Lowry, Yellin, Yemini. Hermes: A
		Language for Distributed Computing. Prentice-Hall, Englewood
		Cliffs, NJ.  1991.  ISBN: O-13-389537-8.
ports:		RS6000 Sun-4 NeXT IBM-RT/bsd4.3 (Sun-3 and Convex soon)
discussion:	comp.lang.hermes
updated:	1992/03/22

language:	Hope
package:	?
parts:		?
how to get:	ftp ? from brolga.cc.uq.oz.au
author:		?
description:	Functional language with polymorphic types and lazy lists.
		First language to use call-by-pattern.
ports:		Unix, Mac, PC
updated:	1992/11/27

language:	ici
package:	ici
parts:		interpreter, documentation, examples
author:		Tim Long
how to get:	ftp pub/ici.cpio.Z from extro.ucc.su.oz.au
description:	ICI has dynamic arrays, structures and typing with the flow
		control	 constructs,  operators	 and syntax of C.  There are
		standard functions to provided the sort of support  provided
		by  the	 standard  I/O and the C libraries, as well as addi-
		tional types and functions to support common needs  such  as
		simple data bases and character based screen handling.
ports:		Sun4, 80x86 Xenix, NextStep, MSDOS
features:	+ direct access to many system calls
		+ structures, safe pointers, floating point
		+ simple, non-indexed built in database
		+ terminal-based windowing library
contact:	Andy Newman <andy@research.canon.oz.au>
discussion:	send "help" to listserv@research.canon.oz.au
portability:	high
status:		actively developed.
updated:	1992/11/10

language:	Icon
package:	icon
version:	8.7 (8.5, 8.0 depending on platform)
parts:		interpreter, compiler (some platforms), library (v8.8)
author:		Ralph Griswold <ralph@CS.ARIZONA.EDU>
how to get:	ftp icon/* from cs.arizona.edu
description:	Icon is a high-level, general purpose programming language that
		contains many features for processing nonnumeric data,
		particularly for textual material consisting of string of
		characters.
		- no packages, one name-space
		- no exceptions
		+ object oiented features
		+ records, sets, lists, strings, tables
		+ unlimited line length
		- unix interface is primitive
		+ co-expressions
references:	"The Icon Programmming Language", Ralph E. Griswold and 
		Madge T. Griswold, Prentice Hall, seond edition, 1990.
		"The Implementation of the Icon Programmming Language", 
		Ralph E. Griswold and Madge T. Griswold, Princeton 
		University Press 1986
ports:		Amiga, Atari, CMS, Macintosh, Macintosh/MPW, MSDOS, MVS, OS/2,
		Unix (most variants), VMS, Acorn
discussion:	comp.lang.icon
contact:	icon-project@cs.arizona.edu
updated:	1992/08/21

language:	Candle, IDL (Interface Description Language)
package:	Scorpion System
version:	5.0
author:		University of Arizona
parts:		software development environment for developing
		software development environments, documentation
how to get:	ftp scorpion/* from cs.arizona.edu
description:	20 tools that can be used to construct specialized
		programming environments
history:	The Scorpion Project was started by Prof. Richard
		Snodgrass as an outgrowth of the SoftLab Project (which pro-
		duced the IDL Toolkit) that he started when he was at the
		University of North Carolina.  The Scorpion Project is
		directed by him at the University of Arizona and by Karen
		Shannon at the University of North Carolina at Chapel Hill.
reference:	"The Interface Description Language: Definition and Use," 
		by Richard Snodgrass, Computer Science Press, 1989,
		ISBN 0-7167-8198-0
ports:		Sun-3, Sun-4, Vax, Decstation, NeXT, Sequent, HP9000
discussion:	info-scorpion-request@cs.arizona.edu
contact:	scorpion-project@cs.arizona.edu
updated:	1991/04/10

language:	IDL (Project DOE's Interface Definition Language)
package:	SunSoft OMG IDL CFE
version:	1.2
parts:		compiler front end, documentation
author:		SunSoft Inc.
how to get:	ftp pub/OMG_IDL_CFE_1.2/* from omg.org
description:	OMG's (Object Management Group) CORBA 1.1 (Common
		Object Request Broker Architecture) specification
		provides the standard interface definition between
		OMG-compliant objects.	IDL (Interface Definition
		Language) is the base mechanism for object
		interaction.  The SunSoft OMG IDL CFE (Compiler Front
		End) provides a complete framework for building CORBA
		1.1-compliant preprocessors for OMG IDL.  To use
		SunSoft OMG IDL CFE, you must write a back-end; full
		instructions are included.  No problem.	 A complete
		compiler of IDL would translate IDL into client side
		and server side routines for remote communication in
		the same manner as the currrent Sun RPCL compiler. The
		additional degree of freedom that the IDL compiler
		front end provides is that it allows integration of new
		back ends which can translate IDL to various
		programming languages. Locally at Sun we are working on
		a back end that will produce C and C++, and we know of
		companies (members of OMG) that are interested in other
		target languages such as Pascal or Lisp.
requires:	C++ 2.1 conformant C++ compiler
contact:	idl-cfe@sun.com
updated:	1993/05/04

language:	IFP (Illinois Functional Programming)
package:	ifp
version:	0.5
parts:		interpreter
author:		Arch D. Robison <robison@shell.com>
how to get:	comp.sources.unix archive volume 10
description:	A variant of Backus' "Functional Programming" language
		with a syntax reminiscent of Modula-2.	The interpreter
		is written in portable C.
references:	[1] Arch D. Robison, "Illinois Functional Programming: A
		Tutorial," BYTE, (February 1987), pp. 115--125.
		[2] Arch D. Robison, "The Illinois Functional
		Programming Interpreter," Proceedings of 1987 SIGPLAN
		Conference on Interpreters and Interpretive Techniques,
		(June 1987), pp. 64-73
ports:		UNIX, MS-DOS, CTSS (Cray)
updated:	?

language:	INTERCAL
package:	C-INTERCAL
version:	0.9
author:		Eric Raymond ?
how to get:	ftp pub/intercal/intercal0.9.* from sequoia.lle.rochester.edu
description:	[can someone please tell me what it is?  --muir]
contact:	?
updated:	1993/05/20

language:	J
package:	J-mode
what:		add on to J
parts:		emacs macros
how to get:	ftp pub/j/gmacs/j-interaction-mode.el from think.com
updated:	1991/03/04

language:	J
package:	J from ISI
version:	6
parts:		interpreter, tutorial
author:		Kenneth E. Iverson and Roger Hui <hui@yrloc.ipsa.reuter.com>
how to get:	ftp languages/apl/j/* from watserv1.waterloo.edu
description: 	J was designed and developed by Ken Iverson and Roger Hui.  It
		is similar to the language APL, departing from APL in using
		using the ASCII alphabet exclusively, but employing a spelling
		scheme that retains the advantages of the special alphabet
		required by APL. It has added features and control structures
		that extend its power beyond standard APL.  Although it can be
		used as a conventional procedural programming language, it can
		also be used as a pure functional programming language.
ports:		Dec, NeXT, SGI, Sun-3, Sun-4, VAX, RS/6000, MIPS, Mac, Acorn
		IBM-PC, Atari, 3b1, Amiga
updated:	1992/10/31

language:	Janus
package:	qdjanus
version:	1.3
parts:		translator(prolog)
author:		Saumya Debray <debray@cs.arizona.edu>
how to get:	ftp janus/qdjanus/* from cs.arizona.edu
conformance:	mostly compliant with "Programming in Janus" by 
		Saraswat, Kahn, and Levy.
description:	janus is a janus-to-prolog compiler meant to be used 
		with Sicstus Prolog
updated:	1992/05/18

language:	Janus
package:	jc
version:	1.50 alpha
parts:		translator(C)
author:		David Gudeman <gudeman@cs.arizona.edu>
how to get:	ftp janus/jc/* from cs.arizona.edu
description:	jc is a janus-to-C compiler (considerably faster than qdjanus).
		jc is a _sequential_ implementation of a _concurrent_ language.
status:		jc is an experimental system, undergoing rapid development.  
		It is in alpha release currently.
bugs:		jc-bugs@cs.arizona.edu
discussion:	janusinterest-request@parc.xerox.com
ports:		sun-4, sun-3, Sequent Symmetry
updated:	1992/06/09

language:	PCN
package:	PCN
version:	2.0
parts:		compiler?, runtime, linker, libraries, tools, debugger, 
		profiler, tracer
author:		Ian Foster <foster@mcs.anl.gov>, Steve Tuecke
		<tuecke@mcs.anl.gov>, and others
how to get:	ftp pub/pcn/pcn_v2.0.tar.Z from info.mcs.anl.gov
description:	PCN is a parallel programming system designed to improve
		the productivity of scientists and engineers using parallel
		computers.  It provides a simple language for specifying
		concurrent algorithms, interfaces to Fortran and C, a
		portable toolkit that allows applications to be developed
		on a workstation or small parallel computer and run
		unchanged on supercomputers, and integrated debugging and
		performance analysis tools.  PCN was developed at Argonne
		National Laboratory and the California Institute of
		Technology.  It has been used to develop a wide variety of
		applications, in areas such as climate modeling, fluid
		dynamics, computational biology, chemistry, and circuit
		simulation.
ports:		(workstation nets): Sun4, NeXT, RS/6000, SGI
		(multicomputers): iPSC/860, Touchstone DELTA
		(shared memory multiprocessors): Symmetry/Dynix
contact:	<pcn@mcs.anl.gov>
updated:	1993/02/12

language:	RLaB language (math manipulation - MATLAB-like)
package:	RLaB
version:	0.75 
parts:		interpreter, libraries, documentation
author:		Ian Searle <ians@eskimo.com>
how to get:	ftp pub/alpha/RLaB from evans.ee.adfa.oz.au
description:	RLaB is a "MATLAB-like" matrix-oriented programming
		language/toolbox.  RLaB focuses on creating a good experimental
		environment (or laboratory) in which to do matrix math
		Currently RLaB has numeric scalars and matrices (real and
		complex), and string scalars, and matrices. RLaB also contains
		a list variable type, which is a heterogeneous associative
		array.
restriction:	GNU General Public License
requires:	GNUPLOT, lib[IF]77.a (from f2c)
ports:		many unix, OS/2, Amiga
bugs:		Ian Searle <ians@eskimo.com>
updated:	1993/04/21 ?

language:	FUDGIT language (math manipulation)
package:	FUDGIT
version:	2.27
parts:		interpreter
author:		Thomas Koenig <ig25@rz.uni-karlsruhe.de> ??
how to get:	ftp /pub/linux/sources/usr.bin/fudgit-* from tsx-11.mit.edu ??
description:	FUDGIT is a double-precision multi-purpose fitting program.  It
		can manipulate complete columns of numbers in the form of
		vector arithmetic. FUDGIT is also an expression language
		interpreter understanding most of C grammar except pointers.
		Morever, FUDGIT is a front end for any plotting program
		supporting commands from stdin. It is a nice mathematical
		complement to GNUPLOT, for example.
requires:	GNUPLOT
ports:		AIX, HPUX, Linux, IRIX, NeXT, SunOS, Ultrix
updated:	1993/02/22

language:	Unix bc (arbitrary-precision arithmetic language)
package:	GNU BC
version:	1.02
parts:		interpreter?
author:		?
how to get:	ftp bc-1.02.tar.Z from a GNU archive site
description:	Bc is an arbitrary precision numeric processing language.  Its
		syntax in similar to C but differs in many substantial areas.
		This version was written to be a POSIX compliant bc processor
		with several extensions to the draft standard.  This version
		does not use the historical method of having bc be a compiler
		for the dc calculator.  This version has a single executable
		that both compiles the language and runs the resulting "byte
		code".  The "byte code" is NOT the dc language.
bugs:		?
updated:	?

language:	Unix dc (arbitrary-precision arithmetic language)
package:	GNU DC
version:	0.2
parts:		interpreter?
author:		?
how to get:	ftp dc-0.2.tar.Z from a GNU archive site
description:	Dc is an arbitrary precision numeric processing language.  It
		uses an RPN (prefix) syntax.  This version
bugs:		?
updated:	1993/05/21

language:	Calc?  (symbolic math calculator)
package:	Calc
version:	2.02
parts:		interpreter, emacs mode
author:		?
how to get:	ftp calc-2.02.tar.z from a GNU archive site
description:	Calc is an extensible, advanced desk calculator and
		mathematical tool written in Emacs Lisp that runs as part of
		GNU Emacs.  It is accompanied by the "Calc Manual", which
		serves as both a tutorial and a reference.  If you wish, you
		can use Calc as only a simple four-function calculator, but it
		also provides additional features including choice of algebraic
		or RPN (stack-based) entry, logarithms, trigonometric and
		financial functions, arbitrary precision, complex numbers,
		vectors, matrices, dates, times, infinities, sets, algebraic
		simplification, differentiation, and integration.
bugs:		?
updated:	?

language:	lex
package:	flex
version:	2.3.8
parts:		scanner generator
how to get:	ftp flex-2.3.8.tar.Z from a GNU archive site or ftp.ee.lbl.gov
author:		Vern Paxson <vern@ee.lbl.gov>
updated:	?

language:	LIFE (Logic, Inheritance, Functions, and Equations)
package:	Wild_LIFE
version:	first-release
parts:		interpreter, manual, tests, libraries, examples
author:		Paradise Project, DEC Paris Research Laboratory.
how to get:	ftp pub/plan/Life.tar.Z from gatekeeper.dec.com.
description:	LIFE is an experimental programming language with a
		powerful facility for structured type inheritance.  It
		reconciles styles from functional programming, logic
		programming, and object-oriented programming.  LIFE
		implements a constraint logic programming language with
		equality (unification) and entailment (matching)
		constraints over order-sorted feature terms.  The
		Wild_LIFE interpreter has a comfortable user interface
		with incremental query extension ability.  It contains
		an extensive set of built-in operations as well as an X
		Windows interface.
conformance:	semantic superset of LOGIN and LeFun.  Syntax is similar
		to prolog.
discussion:	life-request@prl.dec.com
bugs:		life-bugs@prl.dec.com
contact:	Peter Van Roy <vanroy@prl.dec.com>
ports:		MIPS-Ultrix
portability:	good in theory
updated:	1992/12/14

language:	lisp
package:	RefLisp
version:	2.67
parts:		interpreter, documentation, examples, profiler
author:		Bill Birch <bbirch@hemel.bull.co.uk>
how to get:	ftp implementations/reflisp/* from the directory 
		/afs/cs.cmu.edu/user/mkant/Public/Lisp on ftp.cs.cmu.edu
description:	The interpreter is a shallow-binding (i.e., everything has
		dynamic scope), reference counting design making it suitable
		for experimenting with real-time and graphic user interface
		programming. Common Lisp compatibility macros are provided, and
		most of the examples in "Lisp" by Winston & Horn have been run
		on RefLisp.  RefLisp makes no distinction between symbol-values
		and function-values, so a symbol can be either but not both.
		There are Lisp modules for lexical scope and for running
		indefinite extent Scheme programs.
status:		"Last Update for a While," author is emigrating to Australia
ports:		MSDOS (CGA/EGA/VGA), Unix (AIX)
updated:	1993/02/09

language:	lisp
package:	xlisp
version:	2.1
parts:		interpreter
author:		David Micheal Betz <dbetz@apple.com>
how to get:	ftp pub/xlisp* from wasp.eng.ufl.edu
    usmail:	contact Tom Almy <toma@sail.labs.tek.com>
    windows:	ftp util/wxlslib.zip from ftp.cica.indiana.edu
    version2.0: ftp pub/xlisp/* from cs.orst.edu
    macintosh:	ftp pub/bskendig/? from netcom.com (source comming)
description:	XLISP is an experimental programming language
		combining some of the features of Common Lisp with an
		object-oriented extension capability.  It was
		implemented to allow experimentation with
		object-oriented programming on small computers.
conformance:	subset of Common Lisp with additions of Class and Object
discussion:	comp.lang.lisp.x
portability:	very high: just needs a C compiler
ports:		unix, amiga, atari, mac, MSDOS
restriction:	? no commercial use ?
updated:	1992/05/26 (unix), 1987/12/16 (other platforms)

language:	lisp
package:	"LISP, Objects, and Symbolic Programming"
version:	? 
parts:		book with compiler included
author:		Robert R. Kessler and Amy R. Petajan
publisher:	Scott, Foresman and Company, Glenview, IL
how to get:	bookstore...
updated:	1988

language:	lisp
package:	franz lisp
version:	?
how to get:	[does anyone know where you get franz lisp??? --muir]
author:		?
discussion:	franz-friends-request@berkeley.edu
updated:	?

language:	lisp (WOOL - Window Object Oriented Language)
package:	GWM (Generic Window Manager)
version:	?
parts:		interpreter, examples
author:		?
how to get:	ftp contrib/gwm/* from export.lcs.mit.edu
    france:	ftp pub/gwm/* from avahi.inria.fr
description:	Gwm is an extensible window manager for X11.  It is
		based on a WOOL kernel, and interpreted dialect of lisp 
		with specific winow management primitives.
discussion:	gwm-talk@???
contact:	?
updated:	?

language:	lisp (elisp - Emacs Lisp)
package:	GNU Emacs
version:	19.7
parts:		editor, interpreter, documentation, source debugger
author:		Richard Stallman <rms@gnu.ai.mit.edu> and others
description:	An editor that is almost an operating system.  Quite
		programmable.  [someone want to say something better? --muir]
discussion:	alt.religion.emacs, gnu.emacs.sources
announcements:	gnu.emacs.announce
bugs:		gnu.emacs.bug
help:		gnu.emacs.help
ports:		Unix, VMS, ?
updated:	1993/05/22

language:	Logo
package:	logo
version:	4
parts:		interpreter
author:		?
how to get:	comp.sources.unix archive volume 10
description:	?
updated:	?

language:	Logo
package:	Berkeley Logo
version:	2.9 - alpha
parts:		interpreter
author:		Brian Harvey <bh@anarres.CS.Berkeley.EDU>
how to ge:	ftp pub/*logo* from anarres.cs.berkeley.edu
description:	+ Logo programs are compatible among Unix, PC, and Mac.
		+ "richer" than MswLogo?
		- pretty slow.
		- doesn't do anything fancy about graphics.  (One turtle.)
ports:		unix, pc, mac
updated:	1993/03/01

language:	Logo
package:	MswLogo
version:	3.3
parts:		interpreter
author:		George Mills <mills@athena.lkg.dec.com>
how to get:	ftp pub/comp.lang.logo/programs/mswlogo from cher.media.mit.edu
		Source may require emailing George Mills.
description:	A windows front-end for Berkeley Logo
status:		activly developed
bugs:		George Mills <mills@athena.lkg.dec.com>
ports:		MS Windows 3.x
updated:	1993/04/20

language:	Lolli (logic programming)
package:	Lolli
parts:		?
how to get:	ftp pub/Lolli/Lolli-07.tar.Z. from ftp.cis.upenn.edu
author:		? Josh Hodas <hodas@saul.cis.upenn.edu> ?
description:	Lolli is an interpreter for logic programming based 
		on linear logic principles.
		Lolli can be viewed as a refinement of the the
		Hereditary Harrop formulas of Lambda-Prolog. All the
		operators (though not the higher order unification) of
		Lambda-Prolog are supported, but with the addition of
		linear variations. Thus a Lolli program distinguishes
		between clauses which can be used as many, or as few,
		times as desired, and those that must be used exactly
		once.
requires:	ML
updated:	1992/11/08

language:	LOOPN
package:	LOOPN
version:	?
parts:		compiler?, simulator
how to get:	ftp departments/computer_sci*/loopn.tar.Z from ftp.utas.edu.au
description:	I wish to announce the availability of a compiler, simulator
		and associated source control for an object-oriented petri net
		language called LOOPN.  In LOOPN, a petri net is an extension
		of coloured timed petri nets.  The extension means firstly that
		token types are classes.  In other words, they consist of both
		data fields and functions, they can be declared by inheriting
		from other token types, and they can be used polymorphically.
		The object-oriented extensions also mean that module or subnet
		types are classes.  LOOPN has been developed over a period of
		about 5 years at the University of Tasmania, where it has been
		used in teaching computer simulation and the modelling of
		network protocols.  A petri net is a directed, bipartite graph;
		nodes are either places (represented by circles) or transitions
		(represented by rectangles).  A net is marked by placing tokens
		on places.  When all the places pointing to a transition (the
		input places) have a token, the net may be fired by removing a
		token from each input place and adding a token to each place
		pointed to by the transition (the output places).  Petri nets
		are used to model concurrent systems, particularly in the
		network protocol area.
contact:	Charles Lakos <charles@probitas.cs.utas.edu.au>
updated:	1992/12/20

language:	Lout
package:	Lout
version:	2
parts:		translator(Lout->Postscript), documentation
author:		Jeffrey H. Kingston <jeff@cs.su.oz.au>
how to get:	ftp jeff/lout.2.03.tar.Z from ftp.cs.su.oz.au
description:	Lout is a batch text formatting system.
		Lout offers an unprecedented range of advanced features,
		including equation formatting, tables, diagrams, rotation and
		scaling, sorted indexes, bibliographic databases, running
		headers and odd-even pages, automatic cross referencing, and
		much more, all ready to go.  Furthermore, Lout is easily
		extended with definitions which are very much easier to write
		than troff of TeX macros because Lout is a high-level language,
		the outcome of an eight-year research project that went back to
		the beginning.
ports:		unix
updated:	1993/05/12

language:	MeldC (MELD, C)
package:	MeldC
version:	2.0
parts:		microkernel, compiler, debugger, manual, examples
author:		MELD Project,  Programming Systems Laboratory at 
		Columbia University
how to get:	obtain license from <MeldC@cs.columbia.edu>
restriction:	must sign license, cannot use for commercial purposes
description:	MeldC 2.0: A Reflective Object-Oriented Coordination
		Programming Language MELDC  is	a C-based, concurrent,
		object-oriented language built on a reflective
		architecture.	 The  core  of	the  architecture  is
		a micro-kernel	(the MELDC kernel), which encapsulates
		a minimum set of entities that cannot be modeled as
		objects.  All  components  outside of	    the
		kernel	are  implemented  as objects in MELDC itself
		and are modularized in the MELDC libraries.  MELDC is
		reflective in three  dimensions:       structural,
		computational and  architectural.  The structural
		reflection indicates that classes and meta-classes are
		objects,  which	 are	   written  in	MELDC.	  The
		computational  reflection means that object behaviors
		can be computed and extended at runtime.  The
		architectural reflection indicates that new
		features/properties  (e.g.,  persistency  and
		remoteness) can be constructed in MELDC.
ports:		Sun4/SunOS4.1 Mips/Ultrix4.2
contact:	<MeldC@cs.columbia.edu>
updated:	1992/12/15

language:	ML
package:	LML
version:	?
parts:		compiler(?), interactive environment
how to get:	ftp pup/haskell/chalmers/* from animal.cs.chalmers.se
description:	lazy, completely functional variant of ML.
ports:		?
contact:	?
updated:	1992/07/06

langauge:	m4
package:	GNU m4
version:	1.0
parts:		interperter, ?
how to get:	ftp m4-1.0.tar.Z from a GNU archive site
author:		?
description:	A macro preprocessor language, somewhat flexible.
conformance:	?
ports:		?
updated:	1991/10/25

language:	Modula-2, Pascal
package:	m2
version:	? 7/2/92 ?
parts:		? compiler ?
history:	The compiler was designed and built by Michael L.
		Powell, and originally released in 1984.  Joel
		McCormack sped the compiler up, fixed lots of bugs, and
		swiped/wrote a User's Manual.  Len Lattanzi ported the
		compiler to the MIPS.
description:	A modula-2 compiler for VAX and MIPS.  A Pascal
		compiler for VAX is also included.  The Pascal compiler
		accepts a language that is almost identical to Berkeley
		Pascal.
conformance:	extensions:	
		+ foreign function and data interface
		+ dynamic array variables
		+ subarray parameters
		+ multi-dimensional open array parameters
		+ inline proceedures
		+ longfloat type
		+ type-checked interface to C library I/O routines
how to get:	ftp pub/DEC/Modula-2/m2.tar.Z from gatekeeper.dec.com
restriction:	must pass changes back to Digital
ports:		vax (ultrix, bsd), mips (ultrix)
contact:	modula-2@decwrl.pa.dec.com
updated:	1992/07/06

language:	Modula-2
package:	Ulm's Modula-2 System
version:	2.2.1
parts:		compiler, library, tools
author:		Andreas Borchert <borchert@mathematik.uni-ulm.de>
		compiler derived from the ETHZ compiler for the Lilith system
how to get:	ftp pub/soft/modula/ulm/sun3/modula-2.2.1.tar.Z from
		titania.mathematik.uni-ulm.de.  Please get the READ_ME too.
conformance:	PIM3
requires:	gas-1.36 (to be found in the same directory)
ports:		Sun3, Nixdorf Targon/31, Concurrent 3200 Series
restriction:	commercial use requires licence;
		compiler sources available by separate licence agreement
		(licence fee is not required if it is possible to
		transfer the sources across the network)
contact:	Andreas Borchert <borchert@mathematik.uni-ulm.de>
updated:	1992/03/02

language:	Modula-2
package:	mtc
parts:		translator(C)
how to get:	ftp soft/unixtools/compilerbau/mtc.tar.Z 
		from rusmv1.rus.uni-stuttgart.de 
author:		?
description:	?
ports:		?
updated:	1991/10/25

language:	Modula-2, Modula-3
package:	M2toM3 ?
version:	?
parts:		translator(Modula-2 -> Modula-3), ?
author:		?
how to get:	ftp pub/DEC/Modula-3/contrib/M2toM3 from gatekeeper.dec.com
description:	?
requires:	?
updated:	?

language:	Modula-2
package:	PRAM emulator and parallel modula-2 compiler ??
version:	?
parts:		compiler, emulator
how to get:	ftp pub/pram/* from cs.joensuu.fi
description:	A software emulator for parallel random access machine (PRAM)
		and a parallel modula-2 compiler for the emulator.  A PRAM
		consists of P processors, an unbounded shared memory, and a
		common clock. Each processor is a random access machine (RAM)
		consisting of R registers, a program counter, and a read-only
		signature register. Each RAM has an identical program, but the
		RAMs can branch to different parts of the program. The RAMs
		execute the program synchronously one instruction in one clock
		cycle.
		pm2 programming language is Modula-2/Pascal mixture having
		extensions for parallel execution in a PRAM. Parallelism is
		expressed by pardo-loop- structure. Additional features include
		privat/shared variables, two synchronization strategies, load
		balancing and parallel dynamic memory allocation.
contact:	Simo Juvaste <sjuva@cs.joensuu.fi>
updated:	1993/02/17

language:	Modula-3
package:	SRC Modula-3
version:	2.11
parts:		translator(C), runtime, library, documentation
how to get:	ftp pub/DEC/Modula-3/m3-*.tar.Z from gatekeeper.dec.com
description:	The goal of Modula-3 is to be as simple and safe as it
		can be while meeting the needs of modern systems
		programmers.  Instead of exploring new features, we
		studied the features of the Modula family of languages
		that have proven themselves in practice and tried to
		simplify them into a harmonious language.  We found
		that most of the successful features were aimed at one
		of two main goals: greater robustness, and a simpler,
		more systematic type system.  Modula-3 retains one of
		Modula-2's most successful features, the provision for
		explicit interfaces between modules.  It adds objects
		and classes, exception handling, garbage collection,
		lightweight processes (or threads), and the isolation
		of unsafe features.
conformance:	implements the language defined in SPwM3.
ports:		i386/AIX 68020/DomainOS Acorn/RISCiX MIPS/Ultrix 68020/HP-UX
		RS6000/AIX IBMRT/4.3 68000/NextStep i860/SVR4 SPARC/SunOS
		68020/SunOS sun386/SunOS Multimax/4.3 VAX/Ultrix
contact:	Bill Kalsow <kalsow@src.dec.com>
discussion:	comp.lang.modula3
updated:	1992/02/09

language:	Modula-3
package:	m3pc
parts:		?
author:		?
how to get:	ftp pub/DEC/Modula-3/contrib/m3pc* from gatekeeper.dec.com
description:	an implementation of Modula-3 for PCs.
		[Is this SRC Modula-3 ported? --muir]
updated:	?

language:	Motorola DSP56001 assembly
package:	a56
version:	1.1
parts:		assembler
author:		Quinn C. Jensen <jensenq@qcj.icon.com>
how to get:	alt.sources archive
updated:	1992/08/10

language:	natural languages
package:	proof
parts:		parser, documentation
author:		Craig R. Latta <latta@xcf.Berkeley.EDU>
how to get:	ftp src/local/proof/* from scam.berkeley.edu
description:	a left-associative natural language grammar scanner
bugs:		proof@xcf.berkeley.edu
discussion:	proof-request@xcf.berkeley.edu ("Subject: add me")
ports:		Decstation3100 Sun-4
updated:	1991/09/23

language:	NewsClip ?
package:	NewsClip
version:	1.01
parts:		translator(NewsClip->C), examples, documentation
author:		Looking Glass Software Limited but distributed by 
		ClariNet Communications Corp.
description:	NewsClip is a very high level language designed for
		writing netnews filters.  It translates into C.
		It includes support for various newsreaders.
restriction:	Cannot sell the output of the filters.  Donation is hinted at.
status:		supported for ClariNet customers only
contact:	newsclip@clarinet.com
updated:	1992/10/25

language:	Oaklisp
package:	oaklisp
version:	1.2
parts:		interface, bytecode compiler, runtime system, documentation
author:		Barak Pearlmutter, Kevin Lang
how to get:	ftp /afs/cs.cmu.edu/user/bap/oak/ftpable/* from f.gp.cs.cmu.edu
description:	Oaklisp is a Scheme where everything is an object.  It 
		provides multiple inheritence, a strong error system,
		setters and locators for operations, and a facility for
		dynamic binding.
status:		actively developed?
contact:	Pearlmutter-Barak@CS.Yale.Edu ?
updated:	1992/05 ?

language:	Oberon2
package:	Oberon-2 LEX/YACC definition 
version:	1.4
parts:		parser(yacc), scanner(lex)
how to get:	mail bevan@cs.man.ac.uk with Subject "b-server-request~ and
		body "send oberon/oberon_2_p_v1.4.shar"
author:		Stephen J Bevan <bevan@cs.man.ac.uk>
parts:		scanner(lex) parser(yacc)
status:		un-officially supported
updated:	1992/07/06

language:	Oberon
package:	Ceres workstation Oberon System
version:	?
parts:		compiler
author:		?
how to get:	ftp Oberon/? from neptune.ethz.ch
status:		The sources to the various _full_ implementations are indeed
		not available but the source to most of the complete Ceres
		workstation Oberon System, including NS32032 code generator but
		less low level system specific is available. This includes the
		complete Oberon compiler written in Oberon.
description:	file format is Oberon, binary header
updated:	?

language:	OPS5
package:	PD OPS5
version:	?
parts:		interpreter
how to get:	ftp /afs/cs.cmu.edu/user/mkant/Public/Lisp/ops5* from 
		ftp.cs.cmu.edu
author:		Written by Charles L. Forgy and ported to Common Lisp by 
		George Wood and Jim Kowalski. 
description:	Public domain implementation of an OPS5 interpreter. OPS5 is
		a programming language for production systems.	 ??????
contact:	? Mark Kantrowitz <mkant+@cs.cmu.edu> ?
requires:	Common Lisp
updated:	1992/10/17

language:	Parallaxis
package:	parallaxis
version:	2.0
parts:		?, simulator, x-based profiler
author:		?
how to get:	ftp pub/parallaxis from ftp.informatik.uni-stuttgart.de
description:	Parallaxis is a procedural programming language based
		on Modula-2, but extended for data parallel (SIMD) programming.
		The main approach for machine independent parallel programming 
		is to include a description of the virtual parallel machine 
		with each parallel algorithm.
ports:		MP-1, CM-2, Sun-3, Sun-4, DECstation, HP 700, RS/6000
contact:	? Thomas Braunl <braunl@informatik.uni-stuttgart.de> ?
updated:	1992/10/23

language:	Parlog
package:	SPM System (Sequential Parlog Machine)
version:	?
parts:		?, documenation
author:		?
how to get:	? ftp lang/Parlog.tar.Z from nuri.inria.fr
description:	a logic programming language ?
references:	Steve Gregory, "Parallel Logic Programming in PARLOG", 
		Addison-Wesely, UK, 1987
ports:		Sun-3 ?
restriction:	? no source code ?
updated:	??

language:	Pascal
package:	p2c
version:	1.20
parts:		translator(Pascal->C)
author:		Dave Gillespie <daveg@synaptics.com>
how to get:	ftp ? from csvax.cs.caltech.edu
conformance:	supports ANSI/ISO standard Pascal as well as substantial 
		subsets of HP, Turbo, VAX, and many other Pascal dialects.
ports:		?
updated:	1990/04/13

language:	Pascal
package:	? iso_pascal ?
version:	?
parts:		scanner(lex), parser(yacc)
author:		?
how to get:	comp.sources.unix archive volume 13
description:	?
updated:	?

language:	Pascal, Lisp, APL, Scheme, SASL, CLU, Smalltalk, Prolog
package:	Tim Budd's C++ implementation of Kamin's interpreters
version:	?
parts:		interpretors, documentation
author:		Tim Budd <budd@cs.orst.edu>
how to get:	? ftp pub/budd/kamin/*.shar from cs.orst.edu ?
description:	a set of interpretors written as subclasses based on
		"Programming Languages, An Interpreter-Based Approach",
		by Samuel Kamin.
requires:	C++
status:		? 
contact:	Tim Budd <budd@fog.cs.orst.edu>
updated:	1991/09/12

language:	Pascal
package:	? frontend ?
version:	Alpha
parts:		frontend (lexer, parser, semantic analysis)
author:		Willem Jan Withagen <wjw@eb.ele.tue.nl>
how to get:	ftp pub/src/pascal/front* from ftp.eb.ele.tue.nl
description:	a new version of the PASCAL frontend using the Cocktail 
		compiler tools.
updated:	1993/02/24

language:	Pascal
package:	ptc
version:	?
parts:		translator(Pacal->C)
how to get:	ftp languages/ptc from uxc.sco.uiuc.edu ?  (use archie?)
description:	?
contact:	?
updated:	?

language:	Turbo Pascal, Turbo C
package:	tptc
version:	?
parts:		translator(Turbo Pascal->Turbo C)
how to get:	ftp mirrors/msdos/turbopas/tptc17*.zip from wuarchive.wustl.edu
description:	(It does come with full source and a student recently used it
		as a start for a language that included stacks and queues as a
		built-in data type.
contact:	?
updated:	?

language:	Perl (Practical Extraction and Report Language)
package:	perl
version:	4.0 patchlevel 36
parts:		interpreter, debugger, libraries, tests, documentation
how to get:	ftp pub/perl.4.0/* from jpl-devvax.jpl.nasa.gov 
    OS/2 port:	ftp pub/os2/all/unix/prog*/perl4019.zip from hobbes.nmsu.edu
    Mac port:	ftp software/mac/src/mpw_c/Mac_Perl_405_* from nic.switch.ch
    Amiga port: ftp perl4.035.V010.* from wuarchive.wustl.edu
    VMS port:	ftp software/vms/perl/* from ftp.pitt.edu
    Atari port: ftp amiga/Languages/perl* from atari.archive.umich.edu
    DOS port:	ftp pub/msdos/perl/* from ftp.ee.umanitoba.ca
    DOS port#2:	ftp pub/msdos/perl/bperl* from oak.oakland.edu
author:		Larry Wall <lwall@netlabs.com>
description:	perl is an interpreted language optimized for scanning 
		arbitrary text files, extracting information from those text
		files, and printing reports based on that information.	It's
		also a good language for many system management tasks.	
features:	+ very-high semantic density becuase of powerful operators
		like regular expression substitution
		+ exceptions, provide/require
		+ associative array can be bound to dbm files
		+ no arbitrary limits
		+ direct access to almost all system calls
		+ can access binary data 
		+ many powerful common-task idioms
		+ 8-bit clean, including nulls
		- three variable types: scalar, array, and hash table
		- unappealing syntax
references:	"Programming Perl" by Larry Wall and Randal L. Schwartz,
		O'Reilly & Associates, Inc.  Sebastopol, CA.
		ISBN 0-93715-64-1
discussion:	comp.lang.perl
bugs:		comp.lang.perl; Larry Wall <lwall@netlabs.com>
ports:		almost all unix, MSDOS, Mac, Amiga, Atari, OS/2, VMS
portability:	very high for unix, not so high for others
updated:	1993/02/07

language:	perl, awk, sed, find
package:	a2p, s2p, find2perl
parts:		translators(perl)
author:		Larry Wall
how to get:	comes with perl
description:	translators to turn awk, sed, and find into perl.

language:	perl, yacc
package:	perl-byacc
version:	1.8.2
parts:		parser-generator(perl)
how to get:	ftp local/perl-byacc.tar.Z from ftp.sterling.com
author:		Rick Ohnemus <rick@IMD.Sterling.COM>
description:	A modified version of byacc that generates perl code.  Has '-p'
		switch so multiple parsers can be used in one program (C or
		perl).
portability:	Should work on most (?) UNIX systems.  Also works with 
		SAS/C 6.x on AMIGAs.
updated:	1993/01/24

language:	Postscript
package:	Ghostscript
version:	2.6
parts:		interpreter, ?
author:		L. Peter Deutsch <ghost@aladdin.com>
how to get:	ftp pub/GNU/ghostscript* from a GNU archive site
description:	A postscript interpreter with previewers for serval
		systems and many fonts.
updated:	1993/05/10

language:	Postscript, Common Lisp
package:	PLisp
version:	?
parts:		translator(Postscript), programming environment(Postscript)
description:	?
author:		John Peterson <peterson-john@cs.yale.edu>
updated:	?

language:	Prolog
package:	SB-Prolog
version:	3.1 ?
author:		interpreter
how to get:	ftp pub/sbprolog from sbcs.sunysb.edu
description:	?
contact:	? warren@sbcs.sunysb.edu ?
restriction:	GNU General Public License
updated:	?

langauge:	Prolog
package:	XSB
version:	"a Beta version"
parts:		interpreter, preprocessor(HiLog), ?
author:		XSB research group / SUNY at Stony Brook
how to get:	ftp pub/XSB/XSB.tar.Z from sbcs.sunysb.edu
description:	XSB extends the standard functionality of Prolog (being a
		descendant of PSB- and SB-Prolog) to include implementations of
		OLDT (tabling) and HiLog terms.  OLDT resolution is extremely
		useful for recursive query computation, allowing programs to
		terminate correctly in many cases where Prolog does not.  HiLog
		supports a type of higher-order programming in which predicate
		symbols can be variable or structured.  This allows unification
		to be performed on the predicate symbols themselves in addition
		to the arguments of the predicates.  Of course, Tabling and
		HiLog can be used together.
contact:	xsb-contact@cs.sunysb.edu
updated:	1993/04/13

langauge:	Prolog
package:	Modular SB-Prolog
version:	?
parts:		interpreter
how to get:	ftp pub/dts/mod-prolog.tar.Z from ftp.dcs.ed.ac.uk
description:	SB-Prolog version 3.1 plus modules
ports:		Sparc
contact:	Brian Paxton <mprolog@dcs.ed.ac.uk>
restriction:	GNU General Public License
updated:	?

language:	ALF [prolog variant]
package:	alf (Algebraic Logic Functional programming language) 
version:	?
parts:		runtime, compiler(Warren Abstract Machine)
author:		Rudolf Opalla <opalla@julien.informatik.uni-dortmund.de>
how to get:	ftp pub/programming/languages/LogicFunctional from
		ftp.germany.eu.net
description:	ALF is a language which combines functional and
		logic programming techniques.  The foundation of
		ALF is Horn clause logic with equality which consists
		of predicates and Horn clauses for logic programming,
		and functions and equations for functional programming.
		Since ALF is an integration of both programming
		paradigms, any functional expression can be used
		in a goal literal and arbitrary predicates can
		occur in conditions of equations.
updated:	1992/10/08

language:	CLP (Constraint Logic Programming language) [Prolog variant]
package:	CLP(R)
version:	1.2
parts:		runtime, compiler(byte-code), contstraint solver
author:		IBM
how to get:	mail to Joxan Jaffar <joxan@watson.ibm.com>
description:	CLP(R) is a constraint logic programming language
		with real-arithmetic constraints.  The implementation
		contains a built-in constraint solver which deals
		with linear arithmetic and contains a mechanism
		for delaying nonlinear constraints until they become
		linear.	 Since CLP(R) subsumes PROLOG, the system
		is also usable as a general-purpose logic programming
		language.  There are also powerful facilities for
		meta programming with constraints.  Significant
		CLP(R) applications have been published in diverse
		areas such as molecular biology, finance, physical
		modelling, etc.	 We are distributing CLP(R) in order 
		to help widen the use of constraint programming, and 
		to solicit feedback on the system
restriction:	free for academic and research purposes only
contact:	Roland Yap <roland@bruce.cs.monash.edu.au>, Joxan Jaffar
ports:		unix, msdos, OS/2
updated:	1992/10/14

language:	Prolog (variant)
package:	Aditi
version:	Beta Release
parts:		interpreter, database
author:		Machine Intelligence Project, Univ. of Melbourne, Australia
how to get:	send email to aditi@cs.mu.oz.au
description:	The Aditi Deductive Database System is a multi-user
		deductive database system.  It supports base relations
		defined by facts (relations in the sense of relational
		databases) and derived relations defined by rules that
		specify how to compute new information from old
		information.  Both base relations and the rules
		defining derived relations are stored on disk and are
		accessed as required during query evaluation.  The
		rules defining derived relations are expressed in a
		Prolog-like language, which is also used for expressing
		queries.  Aditi supports the full structured data
		capability of Prolog.  Base relations can store
		arbitrarily nested terms, for example arbitrary length
		lists, and rules can directly manipulate such terms.
		Base relations can be indexed with B-trees or
		multi-level signature files.  Users can access the
		system through a Motif-based query and database
		administration tool, or through a command line
		interface.  There is also in interface that allows
		NU-Prolog programs to access Aditi in a transparent
		manner.	 Proper transaction processing is not supported
		in this release.
ports:		Sparc/SunOS4.1.2 Mips/Irix4.0
contact:	<aditi@cs.mu.oz.au>
updated:	1992/12/17

language:	Lambda-Prolog
package:	Prolog/Mali (PM)
version:	? 6/23/92 ?
parts:		translator(C), linker, libraries, runtime, documentation
how to get:	ftp pm/* from ftp.irisa.fr
author:		Pascal Brisset <brisset@irisa.fr>
description:	Lambda-Prolog, a logic programming language defined by
		Miller, is an extension of Prolog where terms are
		simply typed $\lambda$terms and clauses are higher
		order hereditary Harrop formulas. The main novelties
		are universal quantification on goals and implication.
references:	+ Miller D.A. and Nadathur G. "Higher-order logic 
		programming", 3rd International Conference on Logic 
		Programming, pp 448-462, London 1986.
		+ Nadathur G. "A Higher-Order Logic as a Basis for Logic
		Programming", Thesis, University of Pennsylvania, 1987.	 
requires:	MALI-V06 abstract memory. MALI is available by anonymous ftp 
		from ftp.irisa.fr
ports:		unix
discussion:	prolog-mali-request@irisa.fr
contact:	pm@irisa.fr
updated:	1992/07/06

language:	Prolog (variant)
package:	CORAL
version:	?
parts:		interpreter, interface(C++), documentation
author:		?
how to get:	ftp ? from ftp.cs.wisc.edu
description:	The CORAL deductive database/logic programming system was
		developed at the University of Wisconsin-Madison.  The CORAL
		declarative language is based on Horn-clause rules with
		extensions like SQL's group-by and aggregation operators, and
		uses a Prolog-like syntax.  * Many evaluation techniques are
		supported, including bottom-up fixpoint evaluation and top-down
		backtracking.  * A module mechanism is available.  Modules are
		separately compiled; different evaluation methods can be used
		in different modules within a single program.  * Disk-resident
		data is supported via an interface to the Exodus storage
		manager.  * There is an on-line help facility
requires:	AT&T C++ 2.0 (G++ soon)
ports:		Decstation, Sun4
updated:	1993/01/29

language:	Prolog
package:	BinProlog
version:	1.71
parts:		interpreter?, documentation
how to get:	ftp BinProlog/* from clement.info.umoncton.ca
description:	BinProlog 1.71 is at this time probably the
		fastest freely available C-emulated Prolog.
ports:		IBM-PC/386, Sun-4, Sun-3, NeXT
contact:	Paul Tarau <tarau@info.umoncton.ca>
updated:	1993/04/03

language:	prolog
package:	SWI-Prolog
version:	1.6.12
author:		Jan Wielemaker <jan@swi.psy.uva.nl>
how to get:	ftp pub/SWI-Prolog from swi.psy.uva.nl 
    OS/2:	ftp pub/toolw/SWI/* from mpii02999.ag2.mpi-sb.mpg.de
conformance:	superset
features:	"very nice Ed. style prolog, best free one I've seen"
ports:		Sun-4, Sun-3 (complete); Linux, DEC MIPS (done but 
		incomplete, support needed); RS6000, PS2/AIX, Atari ST,
		Gould PN, NeXT, VAX, HP-UX (known problems, support needed);
		MSDOS (status unknown), OS/2
restriction:	GNU General Public License
status:		activly developed
discussion:	prolog-request@swi.psy.uva.nl
contact:	(OS/2) Andreas Toenne <atoenne@mpi-sb.mpg.de>
updated:	1993/03/05

language:	Prolog
package:	Frolic
version:	?
how to get:	ftp pub/frolic.tar.Z from cs.utah.edu
requires:	Common Lisp
contact:	?
updated:	1991/11/23

language:	Prolog
package:	? Prolog package from the University of Calgary ?
version:	?
how to get:	ftp pub/prolog1.1/prolog11.tar.Z from cpsc.ucalgary.ca
description:	+ delayed goals
		+ interval arithmetic
requires:	Scheme
portability:	relies on continuations
contact:	?
updated:	?

language:	Prolog
package:	? slog ?
version:	?
parts:		translator(Prolog->Scheme)
author:		dorai@cs.rice.edu
how to get:	ftp public/slog.sh from titan.rice.edu
description:	macros expand syntax for clauses, elations etc, into Scheme
ports:		Chez Scheme
portability:	reliese on continuations
updated:	?

language:	Prolog
package:	LM-PROLOG
version:	?
parts:		?
author:		Ken Kahn and Mats Carlsson
how to get:	ftp archives/lm-prolog.tar.Z from sics.se
requires:	ZetaLisp
contact:	?
updated:	?

language:	Prolog
package:	Open Prolog
version:	?
parts:		?
host to get:	ftp languages/open-prolog/* from grattan.cs.tcd.ie
description:	?
ports:		Macintosh
contact:	Michael Brady <brady@cs.tcd.ie>
updated:	?

language:	Prolog
package:	UPMAIL Tricia Prolog
version:	?
parts:		?
how to get:	ftp pub/Tricia/README from ftp.csd.uu.se
description:	?
contact:	<tricia-request@csd.uu.se>
updated:	?

language:	Prolog
package:	?; ? (two systems)
version:	?; ?
parts:		?; ?
how to get:	ftp ai.prolog/Contents from aisun1.ai.uga.edu
description:	?; ?
contact:	Michael Covington <mcovingt@uga.cc.uga.edu>
ports:		MSDOS, Macintosh; MSDOS
updated:	?; ?

language:	Prolog
package:	XWIP (X Window Interface for Prolog)
version:	0.6
parts:		library
how to get:	ftp contrib/xwip-0.6.tar.Z from export.lcs.mit.edu
description:	It is a package for Prologs following the Quintus foreign
		function interface (such as SICStus). It provides a (low-level)
		Xlib style interface to X. The current version was developed
		and tested on SICStus 0.7 and MIT X11 R5 under SunOS 4.1.1.
portability:	It is adaptable to many other UNIX configurations.
contact:	xwip@cs.ucla.edu
updated:	1993/02/25

language:	Prolog
package:	PI
version:	?
parts:		library
how to get:	ftp pub/prolog/ytoolkit.tar.Z from ftp.ncc.up.pt
description:	PI is a interface between Prolog applications and XWindows that
		aims to be independent from the Prolog engine, provided that it
		has a Quintus foreign function interface (such as SICStus,
		YAP).  It is mostly written in Prolog and is divided in two
		libraries: Edipo - the lower level interface to the Xlib
		functions; and Ytoolkit - the higher level user interface
		toolkit
contact:	Ze' Paulo Leal <zp@ncc.up.pt>
updated:	1993/03/02

language:	Prolog
package:	ISO draft standard
parts:		language definition
how to get:	ftp ? from ftp.th-darmstadt.de
updated:	1992/07/06

langauge:	BABYLON (Prolog variant???)
package:	BABYLON
version:	?
parts:		development environment
how to get:	ftp gmd/ai-research/Software/* from gmdzi.gmd.de
description:	BABYLON is a development environment for expert systems. It
		includes frames, constraints, a prolog-like logic formalism, 
		and a description language for diagnostic applications. 
requires:	Common Lisp
ports:		many ?
contact:	?
updated:	?
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  1 07:00:47 EDT 1993
Xref: iecc comp.compilers:4824 comp.lang.misc:10067 comp.archives.admin:972 news.answers:9491
Newsgroups: comp.compilers,comp.lang.misc,comp.archives.admin,news.answers,comp.answers
Path: iecc!compilers-sender
From: David Muir Sharnoff <muir@idiom.berkeley.ca.us>
Subject: Catalog of compilers, interpreters, and other language tools [p3of3]
Message-ID: <free3-Jul-93@comp.compilers>
Followup-To: comp.archives.admin
Summary: Monthly posting of free language tools that include source code
Keywords: tools, FTP, administrivia
Sender: compilers-sender@chico.iecc.com
Supersedes: <free3-Jun-93@comp.compilers>
Reply-To: muir@idiom.berkeley.ca.us
Organization: University of California, Berkeley
References: <free2-Jul-93@comp.compilers>
Date: Thu, 1 Jul 1993 11:00:41 GMT
Approved: compilers@iecc.cambridge.ma.us
Expires: Sun, 1 Aug 1993 23:59:00 GMT

Archive-name: free-compilers/part3
Last-modified: 1993/05/24
Version: 3.4

language:	Python
package:	Python
version:	0.9.8
parts:		interpeter, libraries, documentation, emacs macros
how to get:	ftp pub/python* from ftp.cwi.nl
    america:	ftp pub/? from wuarchive.wustl.edu
author:		Guido van Rossum <guido@cwi.nl>
description:	Python is a simple, yet powerful programming language
		that bridges the gap between C and shell programming,
		and is thus ideally suited for rapid prototyping.  Its
		syntax is put together from constructs borrowed from a
		variety of other languages; most prominent are
		influences from ABC, C, Modula-3 and Icon.  Python is
		object oriented and is suitable for fairly large programs.
		+ packages
		+ exceptions
		+ good C interface
		+ dynamic loading of C modules
		- arbitrary restrictions
discussion:	python-list-request@cwi.nl
ports:		unix and Macintosh
updated:	1993/01/09

language:	Ratfor
package:	? ratfor ?
version:	?
parts:		translator(Ratfor->Fortran IV)
author:		Brian Kernighan and P.J. Plauger (wrote the book anyway)
how to get:	comp.sources.unix archives volume 13
description:	Ratfor is a front end langauge for Fortran.  It was designed
		to give structured control structures to Fortran.  It is
		mainly of historical significance.
updated:	?

language:	Y (cross between C and Ratfor)
package:	y+po
version:	?
parts:		compiler
author:		Jack W. Davidson and Christopher W. Fraser
how to get:	ftp pub/y+po.tar.Z from ftp.cs.princeton.edu
description:	Davidson/Fraser peephole optimizer PO [1-3] [where the GCC RTL
		idea and other optimization ideas came from] along with the Y
		compiler [cross between C+ratfor] is ftpable from
		ftp.cs.princeton.edu: /pub/y+po.tar.Z.  It is a copy of the
		original distribution from the University of Arizona during the
		early 80's, totally unsupported, almost forgotten [do not bug
		the authors] old code, possibly of interest to
		compiler/language hackers.
references:	Jack W. Davidson and Christopher W. Fraser, "The Design and
		Application of a Retargetable Peephole Optimizer", TOPLAS, Apr.
		1980.
		Jack W. Davidson, "Simplifying Code Through Peephole
		Optimization" Technical Report TR81-19, The University of
		Arizona, Tucson, AZ, 1981.
		Jack W. Davidson and Christopher W. Fraser, "Register
		Allocation and Exhaustive Peephole Optimization"
		Software-Practice and Experience, Sep. 1984.
status:		history

langauge:	Relation Grammar
package:	rl
version:	?
how to get:	fto rl/* from flash.bellcore.com
author:		Kent Wittenburg <kentw@bellcore.com>
description:	The RL files contain code for defining Relational
		Grammars and using them in a bottom-up parser to
		recognize and/or parse expressions in Relational
		Languages.  The approach is a simplification of that
		described in Wittenburg, Weitzman, and Talley (1991),
		Unification-Based Grammars and Tabular Parsing for
		Graphical Languages, Journal of Visual Languages and
		Computing 2:347-370.
		This code is designed to support the definition and
		parsing of Relational Languages, which are
		characterized as sets of objects standing in
		user-defined relations.	 Correctness and completeness
		is independent of the order in which the input is given
		to the parser.	Data to be parsed can be in many forms
		as long as an interface is supported for queries and
		predicates for the relations used in grammar
		productions.  To date, this software has been used to
		parse recursive pen-based input such as math
		expressions and flowcharts; to check for data integrity
		and design conformance in databases; to automatically
		generate constraints in drag-and-drop style graphical
		interfaces; and to generate graphical displays by
		parsing relational data and generating output code.
ports:		Allegro Common Lisp 4.1, Macintosh Common Lisp 2.0
requires:	Common Lisp
updated:	1992/10/31

language:	REXX
package:	Regina ?
version:	0.03d
parts:		interpreter
author:		Anders Christensen <anders@pvv.unit.no>
how to get:	ftp andersrexx/rexx-0.03d.tar.Z from rexx.uwaterloo.ca
		or ftp ? from flipper.pvv.unit.no
ports:		unix
discussion:	comp.lang.rexx
updated:	?

language:	REXX
package:	?
version:	102
parts:		interpreter
author:		? al ? 
how to get:	ftp alrexx/rx102.tar.Z from rexx.uwaterloo.ca
		or ftp ? from tony.cat.syr.edu
requires:	C++
ports:		unix
discussion:	comp.lang.rexx
contact:	?
updated:	1992/05/13

language:	REXX
package:	imc
version:	1.3
parts:		interpreter
how to get:	ftp pub/freerexx/imc/rexx-imc-1.3.tar.Z from rexx.uwaterloo.ca
ports:		SunOS
updated:	?

language:	S/SL (Syntax Semantic Language)
package:	ssl
version:	?
author:		Rick Holt, Jim Cordy <cordy@qucis.queensu.ca> (language), 
		Rayan Zachariassen <rayan@cs.toronto.edu> (C implementation)
parts:		parser bytecode compiler, runtime
how to get:	ftp pub/ssl.tar.Z from neat.cs.toronto.edu
description:	A better characterization is that S/SL is a language 
		explicitly designed for making efficient recusive-descent 
		parsers.  Unlike most other languages, practicially the 
		LEAST expensive thing you can do in S/SL is recur.  A
		small language that defines input/output/error token
		names (& values), semantic operations (which are really
		escapes to a programming language but allow good
		abstration in the pseudo-code), and a pseudo-code
		program that defines a grammar by the token stream the
		program accepts.  Alternation, control flow, and
		1-symbol lookahead constructs are part of the
		language.  What I call an S/SL "implementation", is a
		program that compiles this S/SL pseudo-code into a
		table (think byte-codes) that is interpreted by the
		S/SL table-walker (interpreter).  I think the pseudo-code 
		language is LR(1), and that the semantic mechanisms turn it
		into LR(N) relatively easily.
		+ more powerful and cleaner than yac
		- slower than yacc
reference:	+ Cordy, J.R. and Holt, R.C. [1980] Specification of S/SL:
		Syntax/Semantic Language, Computer Systems Research
		Institute, University of Toronto.  
		+ "An Introduction to S/SL: Syntax/Semantic Language" by 
		R.C. Holt, J.R.	 Cordy, and D.B. Wortman, in ACM Transactions 
		on Programming Languages and Systems (TOPLAS), Vol 4, No.
		2, April 1982, Pages 149-178.
updated:	1989/09/25

language:	Sather
package:	Sather programming language and environment
version:	0.2i
parts:		translator(C), debugger, libraries, documentation, emacs macros
author:		International Computer Science Institute in Berkeley, CA
how to get:	ftp pub/sather/sa-0.2i.tar.Z from ftp.icsi.berkeley.edu
    europe:	ftp pub/Sather/* from ftp.gmd.de
    aus:	ftp pub/sather/* from lynx.csis.dit.csiro.au
    japan:	ftp pub/lang/sather/* from sra.co.jp
conformance:	reference implemantation
description:	Sather is a new object-oriented computer language
		developed at the International Computer Science
		Institute. It is derived from Eiffel and attempts to
		retain much of that language's theoretical cleanliness
		and simplicity while achieving the efficiency of C++.
		It has clean and simple syntax, parameterized classes,
		object-oriented dispatch, multiple inheritance, strong
		typing, and garbage collection. The compiler generates
		efficient and portable C code which is easily
		integrated with existing code.	
    package:	A variety of development tools including a debugger and browser
		based on gdb and a GNU Emacs development environment
		have also been developed. There is also a class library
		with several hundred classes that implement a variety
		of basic data structures and numerical, geometric,
		connectionist, statistical, and graphical abstractions.
		We would like to encourage contributions to the library
		and hope to build a large collection of efficient,
		well-written, well-tested classes in a variety of areas
		of computer science.
ports:		Sun-4 HP9000/300 Decstation5000 MIPS SonyNews3000 Sequent/Dynix
		SCO SysVR3.2 NeXT (from others: RS6000 SGI)
portability:	high
discussion:	sather-request@icsi.berkeley.edu
bugs:		sather-admin@icsi.berkeley.edu
status:		actively developed.
updated:	1992/07/02

language:	Scheme
package:	Schematik
version:	1.1.5.2
parts:		programming environment
author:		Chris Kane, Max Hailperin <max@nic.gac.edu>
how to get:	ftp /pub/next/scheme/* from ftp.gac.edu
    europe:	ftp /pub/next/ProgLang from ftp.informatik.uni-muenchen.de
description:	Schematik is a NeXT front-end to MIT Scheme for
		the NeXT.  It provides syntax-knowledgeable text
		editing, graphics windows, and user-interface to
		an underlying MIT Scheme process. It comes packaged
		with MIT Scheme 7.1.3 ready to install on the NeXT.
ports:		NeXT, MIT Scheme 7.1.3
portability:	requires NeXTSTEP
contact:	schematik@gac.edu
updated:	1993/03/11

language:	Scheme
package:	T
version:	3.1
parts:		compiler
author:		?
how to get:	ftp pub/systems/t3.1 from ftp.ai.mit.edu
description:	a Scheme-like language developed at Yale.  T is
		written in itself and compiles to efficient native
		code.
		(A multiprocessing version of T is available from
		masala.lcs.mit.edu:/pub/mult)
ports:		Decstation, Sparc, sun-3, Vax(unix), Encore, HP, Apollo,
		Mac (A/UX)
contact:	t-project@cs.yale.edu.
bugs:		t3-bugs@cs.yale.edu
updated:	1991/11/26

language:	Scheme
package:	scm
version:	4c0
parts:		interpreter, conformance test, documentation
author:		Aubrey Jaffer <jaffer@zurich.ai.mit.edu>
conformance:	superset of Revised^3.99 Report on the Algorithmic 
		Language Scheme and the IEEE P1178 specification.
how to get:	ftp archive/scm/* from altdorf.ai.mit.edu
    canada:	ftp pub/oz/scheme/new from nexus.yorku.ca
restriction:	GNU General Public License
contributions:	send $$$ to Aubrey Jaffer, 84 Pleasant St., Wakefield, MA 01880
status:		actively developed
ports:		unix, amiga, atari, mac, MSDOS, nos/ve, vms
updated:	1993/03/30

language:	Scheme
package:	Scheme Library (slib)
version:	1d2
parts:		library, documentation
how to get:	ftp archive/scm/slib1b*.tar.Z from altdorf.ai.mit.edu
description:	SLIB is a portable scheme library meant to provide 
		compatibiliy and utility functions for all standard scheme 
		implementations.
ports:		Scm4b, Chez, ELK 1.5, GAMBIT, MITScheme, Scheme->C, 
		Scheme48, T3.1.
status:		actively developed
contact:	Aubrey Jaffer <jaffer@zurich.ai.mit.edu>
updated:	1993/05/14

language:	Scheme
package:	Hobbit
version:	release 2
parts:		translator(->C), documentation
author:		Tanel Tammet <tammet@cs.chalmers.se>
how to get:	ftp archive/scm/hobbit2.tar.Z from altdorf.ai.mit.edu
description:	The main aim of hobbit is to produce maximally fast C programs
		which would retain most of the original Scheme program
		structure, making the output C program readable and modifiable.
		Hobbit is written in Scheme and is able to self-compile.
		Hobbit release 1 works together with the scm release scm4b3. 
		Future releases of scm and hobbit will be coordinated.
requires:	scm 4b3
updated:	1993/04/25

language:	Scheme
package:	siod (Scheme In One Day, or Scheme In One Defun)
version:	2.9
author:		George Carrette <gjc@paradigm.com>
how to get:	ftp src/lisp/siod-v2.8-shar from world.std.com
description:	Small scheme implementation in C arranged as a set of
		subroutines that can be called from any main program
		for the purpose of introducing an interpreted extension
		language.  Compiles to ~20K bytes of executable.  Lisp
		calls C and C calls Lisp transparently.
ports:		VAX/VMS, VAX UNIX, Sun3, Sun4, Amiga, Macintosh, MIPS, Cray
updated:	1992/09/01

language:	Scheme
package:	MIT Scheme (aka C-Scheme)
version:	7.2
parts:		interpreter, large runtime library, emacs macros, 
		native-code compiler, emacs-like editor, source-level debugger
author:		MIT Scheme Team (primarily Chris Hanson, Jim Miller, and
		Bill Rozas, but also many others)
how to get:	ftp archive/scheme-7.2 from altdorf.ai.mit.edu 
		DOS floppies ($95) and Unix tar tapes ($200) from 
		Scheme Team / c/o Prof. Hal Abelson / MIT AI Laboratory /
		545 Technology Sq. / Cambridge, MA 02139
description:	Scheme implementation with rich set of utilities.
conformance:	full compatibility with Revised^4 Report on Scheme, 
		one known incompatibility with IEEE Scheme standard
ports:		68k (hp9000, sun3, NeXT), MIPS (Decstation, Sony, SGI), 
		HP-PA (600, 700, 800), Vax (Ultrix, BSD), Alpha (OSF), 
		i386 (DOS/Windows, various Unix)
bugs:		bug-cscheme@zurich.ai.mit.edu
discussion:	info-cscheme@zurich.ai.mit.edu 
		(cross-posted to comp.lang.scheme.c)
status:		activly developed
updated:	1992/08/24

language:	Scheme
package:	Scheme->C
version:	15mar93
parts:		translator(C)
author:		Digital Western Research Laboratory; Joel Bartlett
how to get:	ftp pub/DEC/Scheme-to-C/* from gatekeeper.dec.com
description:	Translates Revised**4 Scheme to C that is then compiled
		by the native C compiler for the target machine.  This
		design results in a portable system that allows either
		stand-alone Scheme programs or programs written in both
		compiled and interpreted Scheme and other languages.
documentation:	send Subject "help" to WRL-Techreports@decwrl.dec.com
		for technical report.  Other documentation in
		Scheme-to-C directory on gatekeeper.
conformance:	superset of Revised**4
		+ "expansion passing style" macros
		+ foreign function call capability
		+ interfaces to Xlib (Ezd & Scix)
		+ records
ports:		VAX/ULTRIX, DECstation ULTRIX, Alpha AXP OSF/1,
		Microsoft Windows 3.1, Apple Macintosh 7.1,
		HP 9000/300, HP 9000/700, Sony News, SGI Iris and
		Harris Nighthawk and other UNIX-like m88k systems.
		The 01nov91 version is also available on Amiga, SunOS,
		NeXT, and Apollo systems.
status:		actively developed, contributed ports welcomed
updated:	1993/03/15

language:	Scheme
package:	PC-Scheme
version:	3.03
parts:		compiler, debugger, profiler, editor, libraries
author:		Texas Instruments
how to get:	ftp archive/pc-scheme/* from altdorf.ai.mit.edu
description:	Written by Texas Instruments. Runs on MS-DOS 286/386 IBM PCs
		and compatibles.  Includes an optimizing compiler, an
		emacs-like editor, inspector, debugger, performance testing,
		foreign function interface, window system and an
		object-oriented subsystem.  Also supports the dialect used in
		Abelson and Sussman's SICP.  
conformance:	Revised^3 Report, also supports dialect used in SICP.
ports:		MSDOS
restriction:	official version is $95, contact rww@ibuki.com
updated:	1992/02/23

language:	Scheme
package:	PCS/Geneva
version;	?
parts:		compiler, debugger, profiler, editor, libraries
how to get:	send email to schemege@uni2a.unige.ch
description:	PCS/Geneva is a cleaned-up version of Texas Instrument's PC
		Scheme developed at the University of Geneva. The main
		extensions to PC Scheme are 486 support, BGI graphics, LIM-EMS
		pagination support, line editing, and assmebly-level
		interfacing.
contact:	schemege@uni2a.unige.ch
updated:	?

language:	Scheme
package:	Gambit Scheme System
version:	2.0
parts:		interpreter, compiler, linker
author:		Marc Feeley <feeley@iro.umontreal.ca>
how to get:	ftp pub/gambit1.7.1/* from trex.iro.umontreal.ca
description:	Gambit is an optimizing Scheme compiler/system.
conformance:	IEEE Scheme standard and `future' construct.
restriction:	Mac version of compiler & source costs $40.
ports:		68k: unix, sun3, hp300, bbn gp100, NeXT, Macintosh
updated:	?

language:	Scheme
package:	Elk (Extension Language Kit)
version:	2.0
parts:		interpreter
how to get:	ftp pub/elk/elk-2.0.tar.Z from tub.cs.tu-berlin.de
    usa:	ftp contrib/elk-2.0.tar.Z from export.lcs.mit.edu
author:		Oliver Laumann <net@cs.tu-berlin.de>, Carsten Bormann
		<cabo@cs.tu-berlin.de> ?
description:	Elk is a Scheme interpreter designed to be used as a 
		general extension language.
		+ interfaces to Xlib, Xt, and various widget sets.
		+ dynamic loading of extensions
		+ almost all artificial limitations removed
conformance:	Mostly R3RS compatable.
ports:		unix, ultrix, vax, sun3, sun4, 68k, i386, mips, ibm rt, 
		rs6000, hp700, sgi, sony
updated:	1992/11/30

language:	Scheme
package:	ezd - easy drawing for programs on X displays
version:	15mar93
parts:		interpreter/server
how to get:	ftp pub/DEC/ezd/* from gatekeeper.dec.com
description:	Ezd is a graphics server that sits between an application
		program and the X server and allows both existing and new
		programs easy access to structured graphics.  Ezd users have
		been able to have their programs produce interactive drawings
		within hours of reading the man page.  Structured graphics:
		application defined graphical objects are ordered into drawings
		by the application.  Loose coupling to the application
		program:  unlike most X tools, ezd does not require any event
		handling by the application.  The ezd server mantains window
		contents.  When an event occurs on such an object, an
		application supplied Scheme expression is evaluated.
contact:	Joel Bartlett <bartlett@decwrl.dec.com> ?
updated:	1993/03/10

language:	Scheme
package:	XScheme
version:	0.28
parts:		?
author:		David Betz <dbetz@apple.com>
how to get:	ftp pub/scheme/* from nexus.yorku.ca
description:	?
discussion:	comp.lang.lisp.x
contact:	?
updated:	1992/02/02

language:	Scheme
package:	Fools' Lisp
version:	1.3.2
author:		Jonathan Lee <jonathan@scam.berkeley.edu>
how to get:	ftp src/local/fools.tar.Z from scam.berkeley.edu
description:	a small Scheme interpreter that is R4RS conformant.
ports:		Sun-3, Sun-4, Decstation, Vax (ultrix), Sequent, Apollo
updated:	1991/10/31

language:	Scheme
package:	Scheme84
version:	?
parts:		?
how to get:	Send a tape w/return postage to: Scheme84 Distribution /
		Nancy Garrett / c/o Dan Friedman / Department of Computer
		Science / Indiana University / Bloomington, Indiana.  Call
		1-812-335-9770.
description:	?
requires:	VAX, Franz Lisp, VMS or BSD
contact:	nlg@indiana.edu
updated:	?

language:	Scheme
package:	Scheme88
version:	?
parts:		?
how to get:	ftp pub/scheme/* from nexus.yorku.ca
contact:	?
updated:	?

language:	Scheme
package:	UMB Scheme
version:	?
parts:		?, editor, debugger
author:		William Campbell <bill@cs.umb.edu>
how to get:	ftp pub/scheme/* from nexus.yorku.ca
conformance:	R4RS Scheme
ports:		?
updated:	?

language:	Scheme
package:	PseudoScheme
version:	2.8
parts:		translator(Common Lisp)
author:		Jonathan Rees <jar@cs.cornell.edu>
conformance:	R3RS except call/cc.
requires:	Common Lisp
ports:		Lucid, Symbolics CL, VAX Lisp, Explorer CL
announcements:	info-clscheme-request@mc.lcs.mit.edu
updated:	?

language:	Scheme
package:	Similix
version:	5.0
parts:		partial evaulator, debugger
how to get:	ftp pub/diku/dists/Similix.tar.Z from ftp.diku.dk
description:	Similix is an autoprojector (self-applicable partial 
		evaluator) for a higher order subset of the strict functional 
		language Scheme.  Similix handles programs with user defined 
		primitive abstract data type operators which may process 
		global variables (such as input/output operators).
conformance:	superset of R4RS understood, subset acted upon; R3RS groked too
contact:	Anders Bondorf <anders@diku.dk>
requires:	Scheme
portability:	high
ports:		Scm, Chez Scheme
updated:	1993/05/18

language:	Scheme
package:	? syntax-case ?
version:	2.1
parts:		macro system, documentation
how to get:	ftp pub/scheme/syntax-case.tar.Z from iuvax.cs.indiana.edu
author:		R. Kent Dybvig <dyb@cs.indiana.edu>
description:	We have designed and implemented a macro system that is
		vastly superior to the low-level system described in
		the Revised^4 Report; in fact, it essentially
		eliminates the low level altogether.  We also believe
		it to be superior to the other proposed low-level
		systems as well, but each of you can judge that for
		yourself.  We have accomplished this by "lowering the
		level" of the high-level system slightly, making
		pattern variables ordinary identifiers with essentially
		the same status as lexical variable names and macro
		keywords, and by making "syntax" recognize and handle
		references to pattern variables.
references:	+ Robert Hieb, R. Kent Dybvig, and Carl Bruggeman "Syntactic
		Abstraction in Scheme", IUCS TR #355, 6/92 (revised 7/3/92)
		+ R. Kent Dybvig, "Writing Hygienic Macros in Scheme with
		Syntax-Case", IUCS TR #356, 6/92 (revised 7/3/92).
ports:		Chez Scheme
updated:	1992/07/06

language:	Scheme
package:	x-scm
version:	?
parts:		?
author:		Larry Campbell <campbell@redsox.bsw.com>
how to get:	alt.sources archive
description:	x-scm is a bolt-on accessory for the "scm" Scheme interpreter 
		that provides a handy environment for building Motif and 
		OpenLook applications.	(There is some support as well for raw 
		Xlib applications, but not enough yet to be useful.)
requires:	scm, X
ports:		?
updated:	1992/08/10

language:	Scheme, Prolog
package:	"Paradigms of AI Programming"
version:	?
parts:		book with interpreters and compilers in Common Lisp
author:		Peter Norvig
how to get:	bookstore, and ftp pub/norvig/* from unix.sri.com
updated:	?

language:	Scheme
package:	PSD (Portable Scheme Debugger)
version:	1.0
parts:		debugger
author:		Kellom{ki Pertti <pk@cs.tut.fi>
how to get:	ftp /pub/src/languages/schemes/psd.tar.Z from cs.tut.fi
description:	source code debugging from emacs
requires:	R4RS compliant Scheme, GNU Emacs.
restriction:	GNU GPL
updated:	1992/07/10

language:	Scheme
package:	Tiny Clos
version:	first release
how to get:	ftp pub/mops/* from parcftp.xerox.com
description:	A core part of CLOS (Common Lisp Object System) ported to
		Scheme and rebuilt using a MOP (Metaobject Protocol).
		This should be interesting to those who want to use MOPs
		without using a full Common Lisp or Dylan.
ports:		MIT Scheme 11.74
discussion:	mailing list: mops, administered by gregor@parc.xerox.com
contact:	Gregor Kiczales <gregor@parc.xerox.com>
updated:	1992/12/14

langauge:	Scheme
package:	VSCM II
version:	93Apr12
parts:		runtime, bytecode compiler
author:		Matthias Blume <blume@cs.princeton.edu>
how to get:	ftp pub/scheme/imp/vscm*.tar.Z from nexus.yorku.ca
description:	VSCM is an implementation of Scheme based on a virtual machine
		written in ANSI C.
conformance:	conforms to the R4RS report 
portability:	very high
udated:		1993/04/12

language:	Scheme
package:	PSI
version:	pre-release
parts:		interpreter, virtual machine
author:		Ozan Yigit <oz@ursa.sis.yorku.ca>, David Keldsen, Pontus Hedman
how to get:	from author
description:	I am looking for a few interested language hackers to play with
		and comment on a scheme interpreter. I would prefer those who
		have been hacking portable [non-scheme] interpreters for many
		years.	The interpreter is PSI, a portable scheme interpreter
		that includes a simple dag compiler and a virtual machine.  It
		can be used as an integrated extension interpreter in other
		systems, allows for easy addition of new primitives, and it
		embodies some other interesting ideas. There are some unique[2]
		code debug/trace facilities, as well, acceptable performance
		resulting from a fairly straight-forward implementation.
		Continuations are fully and portably supported, and perform
		well.  PSI is based on the simple compilers/vm in Kent 
		Dbyvig's thesis.
compliance:	R^4RS compatible with a number of useful extensions.
updated:	1993/02/19

language:	Scheme
package:	Bigloo
version:	initial
parts:		interpreter, translator(ANSI C), runtime
author:		Manuel Serrano <Manuel.Serrano@inria.fr>
how to get:	ftp pub/local/icsla/* from ftp.inria.fr
description:	The main goal of Bigloo is to deliver small and fast stand 
		alone applications.
conformance:	IEEE Scheme standard with some extensions for regex handling
portability:	very high for unix systems
ports:		sun, sony news, sgi, linux, hp-ux
updated:	1993/05/13

language:	sed
package:	GNU sed
version:	1.16
parts:		interpreter, ?
author:		?
how to get:	ftp sed-1.11.tar.z from a GNU archive site
contact:	?
bugs:		bug-gnu-utils@ai.mit.edu
updated:	1992/05/31

language:	Self
package:	Self
version:	2.0
parts:		?, compiler?, debugger, browser
author:		The Self Group at Sun Microsystems & Stanford University
how to get:	ftp ? from self.stanford.edu
		The Self Group at Sun Microsystems Laboratories,
		Inc., and Stanford University is pleased to announce
		Release 2.0 of the experimental object-oriented
		exploratory programming language Self.
		Release 2.0 introduces full source-level debugging
		of optimized code, adaptive optimization to shorten
		compile pauses, lightweight threads within Self,
		support for dynamically linking foreign functions,
		changing programs within Self, and the ability to
		run the experimental Self graphical browser under
		OpenWindows.
		Designed for expressive power and malleability,
		Self combines a pure, prototype-based object model
		with uniform access to state and behavior. Unlike
		other languages, Self allows objects to inherit
		state and to change their patterns of inheritance
		dynamically. Self's customizing compiler can generate
		very efficient code compared to other dynamically-typed
		object-oriented languages.
discussion:	self-request@self.stanford.edu
ports:		Sun-3 (no optimizer), Sun-4
contact:	?
updated:	1992/08/13

language:	SGML (Standardized Generalized Markup Language)
package:	sgmls
version:	1.1
parts:		parser
author:		James Clark <jjc@jclark.com> and Charles Goldfarb
how to get:	ftp pub/text-processing/sgml/sgmls-1.0.tar.Z from ftp.uu.net
    uk:		ftp sgmls/sgmls-1.1.tar.Z from ftp.jclark.com
description:	SGML is a markup language standardized in ISO 8879.
		Sgmls is an SGML parser derived from the ARCSGML
		parser materials which were written by Charles
		Goldfarb.  It outputs a simple, easily parsed, line
		oriented, ASCII representation of an SGML document's
		Element Structure Information Set (see pp 588-593
		of ``The SGML Handbook'').  It is intended to be
		used as the front end for structure-controlled SGML
		applications.  SGML is an important move in the
		direction of separating information from its
		presentation, i.e. making different presentations
		possible for the same information.
bugs:		James Clark <jjc@jclark.com>
ports:		unix, msdos
updated:	1993/02/22

language:	Korn Shell
package:	SKsh
version:	2.1
author:		Steve Koren <koren@hpfcogv.fc.hp.com>
parts:		interpreter, utilities
how to get:	ftp pub/amiga/incom*/utils/SKsh021.lzh from hubcap.clemson.edu
description:	SKsh is a Unix ksh-like shell which runs under AmigaDos.
		it provides a Unix like environment but supports many
		AmigaDos features such as resident commands, ARexx, etc.
		Scripts can be written to run under either ksh or SKsh,
		and many of the useful Unix commands such as xargs, grep,
		find, etc. are provided.
ports:		Amiga
updated:	1992/12/16

language:	Korn Shell 
package:	bash (Bourne Again SHell)
version:	1.12
parts:		parser(yacc), interpreter, documentation
how to get:	ftp bash-1.12.tar.Z from a GNU archive site
author:		Brian Fox <bfox@vision.ucsb.edu>
description: 	Bash is a Posix compatable shell with full Bourne shell syntax,
		and some C-shell commands built in.  The Bourne Again Shell
		supports emacs-style command-line editing, job control,
		functions, and on-line help.  
restriction:	GNU General Public License
bugs:		gnu.bash.bug
updated:	1992/01/28

language:	Korn Shell
package:	pd-ksh
version:	4.8
author:		Simon J. Gerraty <sjg@zen.void.oz.au>
how to get:	?
description:	?
contact:	Simon J Gerraty <sjg@melb.bull.oz.au> (zen.void.oz.au is down)
updated:	?

language:	csh (C-Shell)
package:	tcsh
version:	6.03
parts:		interpreter
author:		Christos Zoulas <christos@ee.cornell.edu>
how to get:	ftp ? from ftp.spc.edu
description:	a modified C-Shell with history editing
ports:		unix, OpenVMS
updated:	1992/12/16

language:	rc (Plan 9 shell)
package:	rc
version:	1.4
parts:		interpretor
author:		Byron Rakitzis <byron@netapp.com>
how to get:	comp.sources.misc volume 30; or ftp pub/shells/* from 
		ftp.white.toronto.edu
description:	a free implementation of the Plan 9 shell.
discussion:	rc-request@hawkwind.utcs.toronto.edu
updated:	1992/05/26

language:	es (a functional shell)
package:	es
version:	0.84
parts:		interpreter
author:		Byron Rakitzis <byron@netapp.com>, Paul Haahr <haahr@adobe.com>
how to get:	ftp pub/es/es-0.84.tar.Z from ftp.sys.utoronto.ca
description:	shell with higher order functions
		+ builtin features implemented as redefineable functions
updated:	1993/04/30

language:	Z-shell
package:	zsh
version:	2.3.1 (2.4 in beta)
parts:		interpreter
author:		Paul Falstad <pf@ttisms.com>
how to get:	ftp pub/bas/zsh/zsh-*.tar.z from carlo.phys.uva.nl
description:	zsh is most similar to ksh, while many of the additions are to
		please csh users.  Some features: multi-line commands editable
		as a single buffer, variable editing (vared), command buffer
		stack, recursive globbing, manipulation of arrays, spelling
		correction.
ports:		Berkeley-based UNIX, SVR4-based UNIX 
contact:	zsh-list@cs.uow.edu.au
discussion:	zsh-request@cs.uow.edu.au
updated:	1993/03/23

language:	ssh (Steve's Shell)
package:	ssh
version:	1.7
parts:		interpreter
author:		Steve Baker <ice@judy.indstate.edu> with help from Thomas Moore
how to get:	comp.sources.unix volume 26
description:	A unix shell with a lot of csh/ksh-like features.
ports:		sequent, sun, next, ultrix, bsdi
updated:	1993/04/15

language:	Simula
package:	Lund Simula
version:	4.07
author:		?
how to get:	ftp misc/mac/programming/+_Simula/* from rascal.ics.utexas.edu
description:	?
contact:	Lund Software House AB / Box 7056 / S-22007 Lund, Sweden
updated:	1992/05/22

language:	Simula
package:	Cim
version:	1.10
parts:		translator(->C), ?
author:		Sverre Johansen, Stenk Krogdahl and Terje Mjos
how to get:	ftp cim/* from ftp.ifi.uio.no 
description:	Cim is a compiler for the programming language Simula. 
		from Department of informatics, University of Oslo 
		It offers a class concept, separate compilation with 
		full type checking, interface to external C-routines,
		an application package for process simulation
		and a coroutine concept. 
		Cim is a Simula compiler whose portability is based on
		the C programming language. The compiler and the
		run-time system is written in C, and the compiler
		produces C-code, that is passed to a C-compiler for
		further processing towards machine code.
conformance:	except unspecified parameters to formal or virtual procedures
ports:          Vax (Ultrix,VMS), 68020/30 (SunOS,Next,HPUX), sparc (Sunos), 
		mips (SGI,Dec,CD), 9000s705 (HPUX), alpha (OSF/1), 
		m88k (Triton,Aviion), Apollo, Cray (YMP), Encore Multimax,
		9000s800 (HPUX), 386/486 (LINUX,SCO,Interactive),
		Atari (MINIX) and Comodore Amiga (AmigaDos), 
contact:	cim@ifi.uio.no
updated:	1993/02/25

language:	SISAL 1.2
package:	The Optimizing SISAL Compiler
version:	12.0
parts:		compiler?, manuals, documentation, examples, debugger,...
author:		David C. Cann <cann@sisal.llnl.gov>
how to get:	ftp pub/sisal from sisal.llnl.gov
description:	Sisal is a functional language designed to be competitive with
		Fortran, and other imperative languages for scientific jobs.  
		In particualar, OSC uses advanced optimizing techniques to 
		achieve fast speeds for computation intensive programs.  
		It also features routines for making efficient use
		of parallel processors, such as that on the Cray.
ports:		?
updated:	?

language:	Smalltalk
package:	Little Smalltalk
version:	3
author:		Tim Budd <budd@cs.orst.edu> ?
how to get:	ftp pub/budd/? from cs.orst.edu
ports:		unix, pc, atari, vms
status:		?
updated:	?

language:	Smalltalk
package:	GNU Smalltalk
version:	1.1.1
parts:		?
author:		Steven Byrne <sbb@eng.sun.com>
how to get:	ftp smalltalk-1.1.1.tar.Z from a GNU archive site
description:	?
discussion:	?
bugs:		gnu.smalltalk.bug
contact:	?
updated:	1991/09/15

language:	Smalltalk
package:	msgGUI
version:	1.0
parts:		library
author:		Mark Bush <bush@ecs.ox.ac.uk>
how to get:	ftp pub/Packages/mst/mstGUI-1.0.tar.Z from ftp.comlab.ox.ac.uk
description:	GUI for GNU Smalltalk.	This this package contains the basics 
		for creating window applications in the manner available in 
		other graphical based Smalltalk implementations.
updated:	1992/12/14

language:	Smalltalk
package:	Mei
version:	0.50
parts:		interpreters(Lisp,Prolog), examples, libraries, tools, editor,
		browser
author:		Atsushi Aoki <aoki@sra.co.jp> and others
how to get:	ftp pub/goodies/misc/Mei.tar.Z from mushroom.cs.man.ac.uk
    us:		ftp pub/MANCHESTER/misc/Mei from st.cs.uiuc.edu
    jp:		ftp pub/lang/smalltalk/mei/Mei0.50.tar.Z from srawgw.sra.co.jp
description:	Mei is a set of class libraries for Objectworks Smalltalk
		Release 4.1.  it includes:   1.	 Grapher Library (useful for
		drawing diagrams);  2. Meta Grapher Library (grapher to develop
		grapher);  3. Drawing tools and painting tools (structured
		diagram editors and drawing editors);  4. GUI editor (graphical
		user interface builder);  5. Lisp interpreter;	6. Prolog
		interpreter;  7. Pluggable gauges;  8. Extended browser;
		(package, history, recover, etc.)
restriction:	GNU General Public License
requires:	Objectworks Smalltalk Release 4.1
contact:	Watanabe Katsuhiro <katsu@sran14.sra.co.jp>
updated:	1993/01/20

language:	Snobol4
package:	SIL (Macro Implementation of SNOBOL4)
version:	3.11
how to get:	ftp snobol4/* from cs.arizona.edu
contact:	snobol4@arizona.edu
updated:	1986/07/29

language:	Snobol4
package:	vinilla
version:	?
author:		Catspaw, Inc.
how to get:	ftp snobol4/vanilla.arc from cs.arizona.edu
contact:	?
ports:		MSDOS
updated:	1992/02/05

language:	SR (Synchronizing Resources)
package:	sr
version:	2.0 
parts:		?, documentation, tests
how to get:	ftp sr/sr.tar.Z from cs.arizona.edu
description:	SR is a language for writing concurrent programs.
		The main language constructs are resources and
		operations.  Resources encapsulate processes and
		variables they share; operations provide the primary
		mechanism for process interaction.  SR provides a novel
		integration of the mechanisms for invoking and
		servicing operations.  Consequently, all of local and
		remote procedure call, rendezvous, message passing,
		dynamic process creation, multicast, and semaphores are
		supported.
reference:	"The SR Programming Language: Concurrency in Practice", 
		by Gregory R. Andrews and Ronald A. Olsson, Benjamin/Cummings 
		Publishing Company, 1993, ISBN 0-8053-0088-0
contact:	sr-project@cs.arizona.edu
discussion:	info-sr-request@cs.arizona.edu
ports:		Sun-4, Sun-3, Decstation, SGI Iris, HP PA, HP 9000/300,
		NeXT, Sequent Symmetry, DG AViiON, RS/6000, Multimax,
		Apollo, and others.
updated:	1992/09/01

language:	Standard ML
package:	SML/NJ (Standard ML of New Jersey)
version:	0.93
parts:		compiler, libraries, extensions, interfaces, documentation,
		build facility
author:		D. B. MacQueen <dbm@research.att.com>, Lal George 
		<george@research.att.com>, AJ. H. Reppy <jhr@research.att.com>,
		A. W. Appel <appel@princeton.edu>
how to get:	ftp dist/ml/* from research.att.com
description:	Standard ML is a modern, polymorphically typed, (impure)
		functional language with a module system that supports flexible
		yet secure large-scale programming.  Standard ML of New Jersey
		is an optimizing native-code compiler for Standard ML that is
		written in Standard ML.	 It runs on a wide range of
		architectures.	The distribution also contains:
		+ an extensive library - The Standard ML of New Jersey Library,
		including detailed documentation.
		+ CML - Concurrent ML
		+ eXene - an elegant interface to X11 (based on CML)
		+ SourceGroup - a separate compilation and "make" facility
ports:		M68K, SPARC, MIPS, HPPA, RS/6000, I386/486
updated:	1993/02/18

language:	Concurrent ML
package:	Concurrent ML
version:	0.9.8
parts:		extension
how to get:	ftp pub/CML* from ftp.cs.cornell.edu or get SML/NJ
description:	Concurrent ML is a concurrent extension of SML/NJ, supporting
		dynamic thread creation, synchronous message passing on
		synchronous channels, and first-class synchronous operations.
		First-class synchronous operations allow users to tailor their
		synchronization abstractions for their application.  CML also
		supports both stream I/O and low-level I/O in an integrated
		fashion.
bugs:		sml-bugs@research.att.com
requires:	SML/NJ 0.75 (or later)
updated:	1993/02/18

language:	Standard ML
package:	sml2c
version:	?
parts:		translator(C), documentation, tests
how to get:	ftp /usr/nemo/sml2c/sml2c.tar.Z from dravido.soar.cs.cmu.edu
    linux:	ftp pub/linux/smlnj-0.82-linux.tar.Z from ftp.dcs.glasgow.ac.uk
author:		School of Computer Science, Carnegie Mellon University 
conformance:	superset
		+ first-class continuations,
		+ asynchronous signal handling
		+ separate compilation 
		+ freeze and restart programs
history:	based on SML/NJ version 0.67 and shares front end and
		most of its runtime system.
description:	sml2c is a Standard ML to C compiler.  sml2c is a batch
		compiler and compiles only module-level declarations,
		i.e. signatures, structures and functors.  It provides
		the same pervasive environment for the compilation of
		these programs as SML/NJ.  As a result, module-level
		programs that run on SML/NJ can be compiled by sml2c
		without any changes.  It does not support SML/NJ style
		debugging and profiling.
ports:		IBM-RT Decstation3100 Omron-Luna-88k Sun-3 Sun-4 386(Mach)
portability:	easy, easier than SML/NJ
contact:	david.tarditi@cs.cmu.edu anurag.acharya@cs.cmu.edu 
		peter.lee@cs.cmu.edu
updated:	1991/06/27

langauge:	Standard ML
package:	The ML Kit
version:	1
parts:		interprter, documentation
author:		Nick Rothwell, David N. Turner, Mads Tofte <tofte@diku.dk>,
		and Lars Birkedal at Edinburgh and Copenhagen Universities.
how to get:	ftp diku/users/birkedal/* from ftp.diku.dk
    uk:		ftp export/ml/mlkit/* from lfcs.ed.ac.uk
description:	The ML Kit is a straight translation of the Definition of
		Standard ML into a collection of Standard ML modules.  For
		example, every inference rule in the Definition is translated
		into a small piece of Standard ML code which implements it. The
		translation has been done with as little originality as
		possible - even variable conventions from the Definition are
		carried straight over to the Kit.  The Kit is intended as a
		tool box for those people in the programming language community
		who may want a self-contained parser or type checker for full
		Standard ML but do not want to understand the clever bits of a
		high-performance compiler. We have tried to write simple code
		and modular interfaces.
updated:	1993/03/12

language:	TCL (Tool Command Language)
package:	TCL
version:	6.6
parts:		interpreter, libraries, tests, documentation
how to get:	ftp tcl/tcl6.6.tar.Z from sprite.berkeley.edu
    msdos:	ftp ? from cajal.uoregon.edu
    macintosh:	ftp pub/ticl from bric-a-brac.apple.com
    examples:	ftp tcl/* from barkley.berkeley.edu
author:		John Ousterhout <ouster@cs.berkeley.edu>
description:	TCL started out as a small language that could be
		embedded in applications.  It has now been extended
		into more of a general purpose shell type programming
		language.  TCL is like a text-oriented Lisp, but lets
		you write algebraic expressions for simplicity and to
		avoid scaring people away.
		+ may be used as an embedded interpreter
		+ exceptions, packages (called libraries)
		- only a single name-space
		+ provide/require
		- no dynamic loading ability
		+ 8-bit clean
		- only three variable types: strings, lists, associative arrays
bugs:		?
discussion:	comp.lang.tcl
ports:		?
updated:	1993/02/23

language:	TCL
package:	BOS - The Basic Object System
version:	1.31
parts:		library
author:		Sean Levy <Sean.Levy@cs.cmu.edu>
how to get:	ftp tcl/? from barkley.berkeley.edu
description:	BOS is a C-callable library that implements the
		notion of object and which uses Tcl as its interpreter
		for interpreted methods (you can have "compiled"
		methods in C, and mix compiled and interpreted
		methods in the same object, plus lots more stuff).
		I regularly (a) subclass and (b) mixin existing
		objects using BOS to extend, among other things,
		the set of tk widgets (I have all tk widgets wrapped
		with BOS "classes"). BOS is a class-free object
		system, also called a prototype-based object system;
		it is modeled loosely on the Self system from
		Stanford.
updated:	1992/08/21

language:	TCL
package:	Wafe
version:	0.94
parts:		interface
author:		Gustaf Neumann <neumann@dec4.wu-wien.ac.at>
how to get:	ftp pub/src/X11/wafe/wafe-0.94.tar.Z from ftp.wu-wien.ac.at
description:	Wafe (Widget[Athena]front end) is a package that implements
		a symbolic interface to the Athena widgets (X11R5) and
		OSF/Motif.  A typical Wafe application consists of two
		parts: a front-end (Wafe) and an application program which
		runs typically as a separate process.  The distribution
		contains sample application programs in Perl, GAWK, Prolog,
		TCL, C and Ada talking to the same Wafe binary.
discussion:	send "subscribe Wafe <Your Name>" to listserv@wu-wien.ac.at
updated:	1993/02/13

language:	TCL
package:	Cygnus Tcl Tools
version:	Release-930124
author:		david d 'zoo' zuhn <zoo@cygnus.com>
how to get:	ftp pub/tcltools-* from cygnus.com
description:	A rebundling of Tcl and Tk into the Cyngus GNU build 
		framework with 'configure'.
updated:	1993/01/24

language:	Tiny
package:	Omega test, Extended Tiny
version:	3.0.0
parts:		translator(fortran->tiny), tiny interpreter?, analysis tools
author:		William Pugh <pugh@cs.umd.edu> and others
how to get:	ftp pub/omega from ftp.cs.umd.edu
description:	The Omega test is implemented in an extended version of
		Michael Wolfe's tiny tool, a research/educational tool
		for examining array data dependence algorithms and
		program transformations for scientific computations.
		The extended version of tiny can be used as a
		educational or research tool.  The Omega test: A system
		for performing symbolic manipulations of conjunctions
		of linear constraints over integer variables.  The
		Omega test dependence analyzer: A system built on top
		of the Omega test to analyze array data dependences.
contact:	omega@cs.umd.edu
updated:	1992/12/14

Language:	Extended Tiny
Package:	Extended Tiny
Version:	3.0 (Dec 12th, 1992)
parts:		programming environment, dependence tester, tests
		translator(Fortran->tiny), documentation, tech. reports
author:		original author: Michael Wolfe <cse.ogi.edu>,
		extended by William Pugh et al. <pugh@cs.umd.edu>
how to get:	ftp pub/omega from cs.umd.edu
description:	A research/educational tool for experimenting with
		array data dependence tests and reordering transformations.
		It works with a language tiny, which does not have procedures,
		goto's, pointers, or other features that complicate dependence
		testing. The original version of tiny was written by Michael
		Wolfe, and has been extended substantially by a research group
		at the University of Maryland. Michael Wolfe has made further
		extensions to his version of tiny.
contact:	Omega test research group <omega@cs.umd.edu>
ports:		Any unix system (xterm helpful but not required)
updated:	1993/01/23

language:	troff, nroff, eqn, tbl, pic, refer, Postscript, dvi
package:	groff
version:	1.07
parts:		document formatter, documentation
author:		James Clark <jjc@jclark.com>
how to get:	ftp groff-1.07.tar.z from a GNU archive site
description:	[An absolutely fabulous troff --muir]
restriction:	GNU General Public License
requires:	C++
updated:	1993/03/03

language:	UNITY
package:	MasPar Unity
version:	1.0
parts:		translator(UNITY->MPL), documentation
author:		Martin Huber, University of Karlsruhe, Germany
how to get:	ftp pub/maspar/maspar_unity* from SanFrancisco.ira.uka.de
contact:	Lutz Prechelt <prechelt@ira.uka.de>
updated:	?

language:	UNITY
package:	HOL-UNITY
version:	2.1
parts:		verification tool
how to get:	?
contact:	Flemming Andersen <fa@tfl.dk> ?

language:	Verilog, XNF
package:	XNF to Verilog Translator
version:	?
parts:		translator(XNF->Verilog)
author:		M J Colley <martin@essex.ac.uk>
how to get:	ftp pub/dank/xnf2ver.tar.Z from punisher.caltech.edu
description:	This program was written by a postgraduate student as part
		of his M.Sc course, it was designed to form part a larger
		system operating with the Cadence Edge 2.1 framework. This
		should be bourne in mind when considering the construction
		and/or operation of the program.
updated:	?

language:	VHDL
package:	ALLIANCE
version:	1.1
parts:		compiler, simulator, tools and environment, documentation
how to get:	ftp pub/cao-vlsi/alliance from ftp-masi.ibp.fr
description:	ALLIANCE 1.1 is a complete set of CAD tools for teaching
		Digital CMOS VLSI Design in Universities. It includes VHDL
		compiler and simulator, logic synthesis tools, automatic place
		and route, etc...  ALLIANCE is the result of a ten years effort
		at University Pierre et Marie Curie (PARIS VI, France).
ports:		Sun4, also not well supported: Mips/Ultrix, 386/SystemV
discussion:	alliance-request@masi.ibp.fr
contact:	cao-vlsi@masi.ibp.fr
updated:	1993/02/16

language:	Web
package:	web2c
version:	5-851d
parts:		translator(C)
how to get:	ftp TeX/web2c.tar.Z from ics.uci.edu
    de:		ftp pub/tex/src/web2c/web2c.tar.Z from ftp.th-darmstadt.de
description:	
contact:	Karl Berry <karl@claude.cs.umb.edu>
updated:	1993/02/22

language:	Web
package:	Web
version:	?
parts:		translator(Pascal)
author:		Donald Knuth
how to get:	ftp ? from labrea.stanford.edu
description:	Donald Knuth's programming language where you
		write the source and documentation together.
requires:	Pascal
contact:	?
updated:	?

langauge:	Web
package:	FunnelWeb
version:	?
parts:		macro preprocessor, documentation, tests, ?
author:		Ross Williams <ross@spam.adelaide.edu.au>
how to get:	comp.sources.unix volume 26
description:	FunnelWeb is a production-quality literate-programming tool
		that emphasises simplicity and reliability. It provides a macro
		facility, and assists in the production of typeset
		documentation.  Input-programming-language independent
restriction:	CopyLeft
ports:		Sun, Vax, Mac, PC
updated:	1993/04/11

-------------------------------------------------------------------------------
------------------------------ archives ---------------------------------------
-------------------------------------------------------------------------------

language:	Ada
package:	AdaX
description:	an archive of X libraries for Ada.  Includes Motif
		[note, I chose this server out of many somewhat randomly.
		Use archie to find others --muir]
how to get:	ftp pub/AdaX/* from falcon.stars.rosslyn.unisys.com
contact:	?

language:	APL, J
package:	APL, J, and other APL Software at Waterloo
how to get:	ftp languages/apl/index from watserv1.waterloo.edu
contact:	Leroy J. (Lee) Dickey <ljdickey@math.waterloo.edu>

language:	C, C++, Objective C, yacc, lex, postscript, 
		sh, awk, smalltalk, sed
package:	the GNU archive sites
description:	There are many sites which mirror the master gnu archives
		which live on prep.ai.mit.edu.	Please do not use 
		the master archive without good reason.
how to get:	ftp pub/gnu/* from prep.ai.mit.edu
    USA:	ftp mirrors4/gnu/* from wuarchive.wustl.edu
		ftp pub/src/gnu/* from ftp.cs.widener.edu
		ftp gnu/* from uxc.cso.uiuc.edu
		ftp mirrors/gnu/* from col.hp.com
		ftp pub/GNU/* from gatekeeper.dec.com
		ftp packages/gnu/* from ftp.uu.net
    Japan:	ftp ? from ftp.cs.titech.ac.jp
		ftp ftpsync/prep/* from utsun.s.u-tokyo.ac.jp
    Australia:	ftp gnu/* from archie.au
    Europe:	ftp gnu/* from src.doc.ic.ac.uk
		ftp pub/GNU/*/* from ftp.informatik.tu-muenchen.de [re-org'ed]
		ftp pub/gnu/* from ftp.informatik.rwth-aachen.de
		ftp pub/gnu/* from nic.funet.fi
		ftp pub/gnu/* from ugle.unit.no
		ftp pub/gnu/* from isy.liu.se
		ftp pub/gnu/* from ftp.stacken.kth.se
		ftp pub/gnu/* from sunic.sunet.se [re-org'ed]
		ftp pub/gnu/* from ftp.win.tue.nl
		ftp pub/gnu/* from ftp.diku.dk
		ftp software/gnu/* from ftp.eunet.ch
		ftp gnu/* from archive.eu.net [re-org'ed]
note:		Many gnu files are now compressed with gzip.  You can
		tell a gzip'ed file because it has a lower-case .z rather
		than the capital .Z that compress uses.  Gzip is available
		from these same archives
restriction:    Most GNU programs are CopyLeft'ed.  That means that they 
		are distributed under the terms of the GNU General
		Public License or GNU Library General Public License.
		The CopyLeft is only a concern if you want to use
		actual GNU code in your program.  Using Gcc or any of
		the other tools is completely safe from a copyright
		point-of-view with the sole exception of bison which
		includes GNU code in its output.  If you use a GNU
		library, you must supply an unlinked version of your
		program.

language:	lisp
package:	MIT AI Lab archives
description:	archive of lisp extensions, utilities, and libraries
how to get:	ftp pub/* from ftp.ai.mit.edu
contact:	?

language:	lisp
package:	Lisp Utilities collection
how to get:	ftp /afs/cs.cmu.edu/user/mkant/Public/Lisp from ftp.cs.cmu.edu
contact:	cl-utilities-request@cs.cmu.edu

language:	Scheme
package:	The Scheme Repository
description:	an archive of scheme material including a bibliography, 
		the R4RS report, sample code, utilities, and implementations.
how to get:	ftp pub/scheme/* from nexus.yorku.ca
contact:	Ozan S. Yigit <scheme@nexus.yorku.ca>

language:	Smalltalk
package:	Manchester Smalltalk Goodies Library
description:	a large collection of libraries for smalltalk.
		Created by Alan Wills, administered by Mario Wolczko.
how to get:	ftp uiuc/st*/* from st.cs.uiuc.edu
    uk:		ftp uiuc/st*/* from mushroom.cs.man.ac.uk
contact:	goodies-lib@cs.man.ac.uk

language:	Tcl
package:	Tcl/Tk Contrib Archive
description:	An archive of Tcl/tk things.  
how to get:	ftp tcl/* from barkley.berkeley.edu
contact:	Jack Hsu <tcl-archive@barkley.berkeley.edu>

-------------------------------------------------------------------------------
----------------------------- references --------------------------------------
-------------------------------------------------------------------------------

name:		Catalog of embeddable Languages.
author:		Colas Nahaboo <colas@bagheera.inria.fr>
how to get:	posted to comp.lang.misc,comp.lang.tcl; 
		ftp pub/EmbeddedInterpretersCatalog.txt from avahi.inria.fr
description:	Descriptions of languages from the point of view of 
		embedding them.
version:	2
updated:	1992/07/09

name:		Compilers bibliography
author:		Cheryl Lins <lins@apple.com>
how to get:	ftp pub/oberon/comp_bib_1.4.Z from ftp.apple.com
description:	It includes all the POPLs, PLDIs, Compiler Construction, 
		TOPLAS, and LOPAS.  Plus various articles and papers from 
		other sources on compilers and related topics
version:	1.4
updated:	1992/10/31

name:		Language List
author:		Bill Kinnersley <billk@hawk.cs.ukans.edu>
how to get:	posted regularly to comp.lang.misc; 
		ftp pub/comp.compilers/LanguageList* from primost.cs.wisc.edu;
		ftp pub/compilers-list/LanguageList* from idiom.berkeley.ca.us
description:	Descriptions of almost every computer langauge there is.
		Many references to available source code.
version:	1.9
updated:	1993/01/13

name:		The Lisp FAQs
author:		Mark Kantrowitz <mkant+@cs.cmu.edu>
how to get:	posted regularly to comp.lang.lisp,news.answers,comp.answers
description:	details of many lisps and systems written in lisps 
		including many languages not elsewhere.
version:	1.30
updated:	1993/02/08

name:		Survey of Interpreted Languages
author:		Terrence Monroe Brannon <tb06@CS1.CC.Lehigh.ED>
how to get:	Posted to comp.lang.tcl,comp.lang.misc,comp.lang.perl,
		gnu.emacs.help,news.answers; or ftp 
		pub/gnu/emacs/elisp-ar*/pack*/Hy*Act*F*/survey-inter*-languages
		from archive.cis.ohio-state.edu.
description:	Detailed comparision of a few interpreters: Emacs Lisp, 
		Perl, Python, and Tcl.
version:	?
updated:	?

name:		The Apple II Programmer's Catalog of Languages and Toolkits
author:		Larry W. Virden <lvirden@cas.org>
description:	a survey of language tools available for the Apple ][.
how to get:	posted to comp.sys.apple2, comp.lang.misc; ftp from
		idiom.berkeley.ca.us
version:	2.2
updated:	1993/04/28
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  1 21:58:36 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: michi@km21.zfe.siemens.de (Michael Klug)
Subject: Re: Complexity of compilation
Message-ID: <93-07-006@comp.compilers>
Keywords: theory
Sender: compilers-sender@chico.iecc.com
Organization: Siemens AG, Munich, Germany
References: <93-06-092@comp.compilers>
Date: Thu, 1 Jul 1993 06:50:42 GMT
Approved: compilers@chico.iecc.com

>What is the inherent complexity of compilation?  I figure that an
>assembler would be nearly O(n) time for n lines of code (assuming that
>symbol table lookup is not a problem--say, an O(1) hashing method would be
>used that assumes a average number of lines of source).  For C++ or
>optimization, this gets far more complex.  O(n*Log(n)) seems likely for
>C++ (an intuitive guess), but the graph problems that optimizers must work
>on are probably more complex (certainly they seems to use lots of space,
>like O(n^2)).

... there is no 'inherent complexity of compilation', and you can't
give any figures for a whole compiler.  The complexity of compilation
depends on the parsing method (LL, LR, LALR, Early, ...) needed, and on
the semantic structure of the language.  If you can parse a language
without semantic information, then you are lucky.  This means parsing is
(relatively) cheap.  The complexity of compilation depends also on the
method necessary for semantic analysis.  A *cheap* language will allow you
to perform semantic analysis while parsing, a *heavy* language requires an
extra intermediate representation and complex semantic actions.  A lot of
compilers are based on (sort of) attribute grammars.  If you manage to
write down a sort of single-sweep AG (this means, you need only one pass
through the tree), then you can use efficient algorithms.  If not, then
you need inefficient algorithms dealing with multiple passes and
circularity.  It is always time consuming if you have lots of non-local
information to deal with which has not been computed when you need it.
The complexity of compilation depends also on the quality of the code
generated.  Some real fast compilers don't bother about efficient
programs, they produce bad code.  Compilers with a good code optimizer
can't be fast.  In fact you need an extra phase with techniques like 'term
rewriting' to detect common subexpressions and code pieces which can be
translated to very efficient machine code.  If someone says "my compiler
is faster than ...", just look at the code produced ...

Bye
Michael
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  1 22:01:17 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Peter Sestoft <sestoft@id.dth.dk>
Subject: Book on Partial Evaluation
Message-ID: <93-07-007@comp.compilers>
Keywords: books, optimize
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Thu, 1 Jul 1993 09:27:42 GMT
Approved: compilers@chico.iecc.com

NEW BOOK ON PARTIAL EVALUATION

The following book is now available:

N.D. Jones, C.K. Gomard, and P. Sestoft,
PARTIAL EVALUATION AND AUTOMATIC PROGRAM GENERATION.
With chapters by L.O. Andersen and T. Mogensen.
Prentice Hall International 1993.  xii + 415 pages.  ISBN 0-13-020249-5.
List price: 44.95 US dollars.


The preface and table of contents can be obtained via anonymous ftp from

	Node: ftp.diku.dk (Internet 130.225.96.221)
	File: pub/diku/dists/jones-book/about-book

or by sending an email request to me (sestoft@id.dth.dk).


Partial Evaluation in a Nutshell

Let p be a program which takes two inputs d1 and d2.  Ordinarily,
p (d1,d2) would be evaluated in one step:

	    Evaluate p with input (d1, d2), to produce the result res.

However, it may also be evaluated in two steps:

	(1) Partially evaluate p with input d1, to produce a new program r.
	(2) Evaluate r with input d2, to produce the result res.

The program r is a specialized version of p (for the particular value
d1 of the first input), and is called a *residual program*.  The
process of producing r in step 1 is called *partial evaluation*, or
*program specialization*.

The benefit of partial evaluation is speed of execution: the
specialized program r is often much faster than the general program p.

Partial evaluation has strong links to (the non-syntactical aspects
of) interpretation, compilation, and compiler generation:

	* Partial evaluation of an interpreter with respect to a
	  source program produces a target program.
	* Partial evaluation of a partial evaluator with respect to an
	  interpreter produces a compiler.
	* Partial evaluation of a partial evaluator with respect to a
	  partial evaluator produces a compiler generator (or a currying
	  transformation on programs, which is the same).

The book describes principles, techniques, and applications of partial
evaluation, as well as several partial evaluation systems (for Scheme,
Prolog, and C) constructed by other researchers.
--
Peter Sestoft   *   sestoft@id.dth.dk   *   Department of Computer Science
Technical University of Denmark, Building 344      DK-2800 Lyngby, Denmark
Tel: +45 45 93 33 32 * Direct: +45 45 93 12 22/3749 * Fax: +45 42 88 45 30
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  1 22:02:35 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: simonh@swidev.demon.co.uk (Simon Huntington)
Subject: lint/C code checks
Message-ID: <93-07-008@comp.compilers>
Keywords: C, lint, question
Sender: compilers-sender@chico.iecc.com
Organization: SoftWare Interrupt Developments
Date: Thu, 1 Jul 1993 10:05:54 GMT
Approved: compilers@chico.iecc.com

Is there a copy of lint available via anonymous FTP? I'm looking for checks
to perform in a C/C++ compiler; lint seems like a good start.

What other warnings do C compilers generally issue for dodgy expressions? I
know of the following sort of things:

	if (x = 1)		// probably should be ==
	if (x==1 & y==1)    // probably should be &&, not & (same for |/||)
	if (x<<y + 2)		// is x << (y+2), not (x<<y) + 2

Any suggestions via email or details of FTP'able documents/sources would be
very much appreciated.
--
Simon Huntington
Software Interrupt Developments. Leeds, UK.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 00:58:00 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: David_Wheeler_P26179@email.mot.com
Subject: RE: Representation of grammars
Message-ID: <93-07-009@comp.compilers>
Keywords: parse, bibliography
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Thu, 1 Jul 1993 15:32:47 GMT
Approved: compilers@chico.iecc.com

Trevor Jenkins writes:

> I believe that there was a similar book by Frank Pagan which also
> considered two-level grammars but I don't have a copy of that book
> in my library.

The book is:
  Formal Specification of Programing Languages: A Panoramic Primer
  by Frank G. Pagan
  New Jersey, Prentice Hall 1981
  ISBN 0-13-329052-2
  QA76.7.P33    001.64'24

The book has a chapter (about 65 pages) which covers BNF, attribute grammars
and two-level grammars, then later goes into formal semantics covering
operational, denotational and axiomatic.

The book is littered with examples ALL of which cover two "toy" languages
called Pam and Eva.

The book is very good and readable, however Pagan himself notes that to get
the full flavor of how to use two-level grammars one should look at the
material done by van Wijngaarden:
     van Wijngaarden, A., et al.,
     Revised Report on the Algorithmic Language ALGOL 68.
     Berlin: Springer-Verlang, 1976

Dave Wheeler
Motorola, GEG
DAVID_WHEELER_P26179@email.mot.com
(602) 441-7660
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 01:01:25 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: macrakis@osf.org (Stavros Macrakis)
Subject: Re: Representations of grammars
Message-ID: <93-07-010@comp.compilers>
Keywords: parse, theory
Sender: compilers-sender@chico.iecc.com
Organization: OSF Research Institute
References: <93-06-063@comp.compilers> <93-06-076@comp.compilers>
Date: Thu, 1 Jul 1993 17:22:31 GMT
Approved: compilers@chico.iecc.com

davidm@questor.rational.com (David Moore) writes:

  Was BNF originally considered to be a normal form in the mathematical sense?
  [The N in BNF used to stand for Normal.  But I don't know why. -John]

Noam Chomsky introduced context-free grammars in 1956.  His normal form
(now called Chomsky Normal Form) restricts grammars to productions of the
form X -> a or X -> YZ.  Backus Normal Form is a different presentation.

	-s
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 01:05:46 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: serrano@savigny.inria.fr (Manuel Serrano)
Subject: bigloo 1.3
Message-ID: <93-07-011@comp.compilers>
Keywords: tools
Sender: compilers-sender@chico.iecc.com
Organization: INRIA * Rocquencourt BP 105 * F-78153 LE CHESNAY CEDEX* France
Date: Thu, 1 Jul 1993 14:08:49 GMT
Approved: compilers@chico.iecc.com

The new release (1.3) of the Bigloo Scheme system is now available by ftp
at the address `ftp.inria.fr:/INRIA/Projects/icsla/bigloo1.3.tar.Z'

This new release was successfully compiled on:

        - SPARC (1, 2, 10)
        - SONY-NEWS (mips r3000)
        - IRIS indigo (mips r3000)
        - SUN 3/60
        - DEC Station 3100 (mips r3000)
        - HP-PA (730)

The main modifications are:

        - Bugs have been fixed.
        - The interpreter is much faster.
        - The pattern matching has been extended to vectors.
--
Manuel SERRANO (equipe ICSLA, Bat 8)
INRIA-Rocquencourt, BP 105, 78153
Le Chesnay CEDEX, FRANCE      
tel: (work) 39-63-57-32       
email: Manuel.Serrano@inria.fr
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 01:08:17 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: nokie@ruacad.ac.runet.edu (Edward G. Okie)
Subject: Re: Representations of grammars
Message-ID: <93-07-012@comp.compilers>
Keywords: parse, EBNF
Sender: compilers-sender@chico.iecc.com
Organization: Radford University
References: <93-06-063@comp.compilers> <93-06-076@comp.compilers>
Date: Thu, 1 Jul 1993 18:18:39 GMT
Approved: compilers@chico.iecc.com

davidm@questor.rational.com (David Moore) writes:

>Was BNF originally considered to be a normal form in the mathematical sense?

A useful reference concerning Backus, Naur, and BNF is

[Backus 1980] "Programming in America in the 1950s",
  in "A History of Computing in the Twentieth Century" (Academic Press).

In section 9 of this paper Backus briefly describes his motivation for
developing what came to be called BNF as well as Naur's interest in and
contributions to its development.

"A History of Computing in the Twentieth Century" also contains a paper by
Knuth and Pardo entitled "The Early Development of Programming Languages"
which mentions that Backus's FORTRAN 0 definition contains BNF "in
embryonic form".  It also mentions the following as a reference for BNF:

[Knuth 1964] "Backus Normal Form vs. Backus Naur Form", CACM 7, 735-736.

If I correctly remember a description of this reference that I read
somewhere else (I can't remember where), this is a letter in which Knuth
argues for the use of the latter name.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 01:13:31 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: johnl (John R. Levine)
Subject: Re: Catalog of compilers, interpreters, and other language tools
Message-ID: <93-07-013@comp.compilers>
Keywords: tools, administrivia
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Thu, 1 Jul 1993 21:06:19 GMT
Approved: compilers@chico.iecc.com

Due to some fairly dumb moves on my part, I accidentally posted last
month's free compiler tools list rather than the current one.

Below is the beginning of the current list, including a list of
significant changes.  Note the new maintainer of the list is
markh@csd4.csd.uwm.edu.

If you want the full list, you can FTP it from primost.cs.wisc.edu as
pub/comp.compilers/free-comp.Z, from iecc.com as pub/file/free-comp.gz, or
from the compilers mail server by mailing these lines to
compilers-server@iecc.com:

send free1
send free2
send free3

Sorry about that, next month it should be posted correctly.
--
Regards,
John Levine, comp.compilers moderator

		Catalog of Free Compilers and Interpreters.

This list catalogues freely available software for language tools, which
includes the following: compilers, compiler generators, interpreters, and
assemblers -- things whose user interface is a language.  Natural language
processing tools may also be included.  Even editors have been included upon
reaching the rarified level of Turing Universality.

This is still a draft document: it may have an error or two, it is not yet
complete, and is being standardized.  A copy of this document may be found via
anonymous FTP on csd4.csd.uwm.edu in the directory /pub/compilers/list.

This list is primarily aimed at developers rather than researchers, and
consists mainly of citations for production quality systems.  There is some
overlap of coverage between this document and other lists and catalogs.  See
the references section for a list...

All the listed items should be free and come with source code, exceptions have
generally been deleted from the list in the past.  If you find any such items
in the list let me know and I'll remove them.

Not all entries have complete citations.  Some fields are filled with question
marks (?).  Fields with both the ? and an entry are implicit requests for
confirmation.  You're welcome to send me additions, revisions, and even new
entries.  The first entry in the tools section of this list is the Reference
Entry containing all the fields used in that section, along with descriptions
of what they mean, use that as the basis of your entry.  Subsidary fields can
be appended, but be sparing and try and group everything under the main topics
(the #-fields)

This list has changed "listkeeper" from the previous month.  The only major
change to date is that the "how to get" field is now known as "location".  I
do not keep in regular contact with every possible outlet for source code
releases.  If you want to make the list more complete, you may want to compile
your own sublists of items not included in here, and send them to me.

Mark Hopkins <markh@csd4.csd.uwm.edu>, June 24, 1993

-------------------------------------------------------------------------------
------------------------- selected major changes ------------------------------
-------------------------------------------------------------------------------

	Selected changes section

	language		package
	--------		-------
new listings:
	a1 (Address 1 code)	a1 code interpreter
	ASA			Adaptive Simulated Annealing (ASA) 1.26
	Assembler (various)	fas: Frankenstein Cross Assemblers
	Assembler (8051)	as31 - An 8031/8051 assembler.
	BNF			lalr.ss - An LALR(1) parser generator 0.9
	C			GNU C Library 1.06
				[Will do the same with libg++
				 if someone can provide a good citation]
	C++			cppp 1.14 (C++ parser)
	? Calc			? Arbitrary precision calculator 1.26.4
	Glish			glish 2.2.2
	Maisie			Maisie-parallel-language 2.1
	micro-C++		uC++ 3.7 (a concurrent C++)
	nat. lang. (Pleuk)	Pleuk grammar development system
	Q			Q
	Perl			bigperl 4.0pl36
	Perl			perl profiler.
	shell			ERGO shell 2.1
	S-Lang			slang
new versions:
	sed			GNU sed 1.17
	elisp - Emacs Lisp	GNU Emacs 19.15
	C, C++			GNU CC (gcc) 2.4.5
				djgpp: Windows 3.*, OS/2 support added
	Postscript		Ghostscript 2.6.1
edits:
	Increased standardization of the document.
	Reference Entry added in Tools section.
deleted (no source):
seeking:
	Assemblers and other microprocessor tools --
		All the multitudes of 8-bit assemblers free with source
		Disassemblers
		Microprocessor Simulators
	Natural Language Processing Tools --
		NL parsers and compilers
		NL language development tools
	Logic --
		Theorem provers with language interfaces.
	More EBNF parser tools

-------------------------------------------------------------------------------
-------------------------------- tools ----------------------------------------
-------------------------------------------------------------------------------

language:	(#) Reference Entry (all (#) fields are obligatory)
		    Language: what the software compiles/interprets...
package:	(#) The name of the package
version:	(#) Its current version
parts:		(#) compiler, assembler, interpreter, translator,
		    grammar(yacc, lex), library, documentation, examples,
		    assembler, simulator, tutorial, test suite, ...
author:		(#) the creator of the package, or contributor, if
		    this is a document (such as a language grammar).
		    Publisher alco included, if applicable.
location:	(#) where to get the source, how to get it -- usually an FTP
		    site or two.  May have subheaders for specific areas or
		    different ports of the software (don't overdo this!):
    N.America:	Sites for North Americans.
    Europe:	Sites Europeans should use
    Japan:	Sites for people in Japan
    OS/2:	Sites with OS/2 ports.
description:	(#) what the package is, possibly including some history
		    A short review encouraged, but no propaganda please.
conformance:	how well does it conform to the existing Standard, if one exists
reference:	research references and other external documentation.
features:	salient features not listed in the description.
bugs:		known bugs (also: where to go to find/report bugs)
restriction:	restrictions using the software will place on the user.
requires:	what is needed to install it.
ports:		where it has been installed
portability:	how system-independent is it, system dependencies.
status:		development status
discussion:	where discussion about the package takes place
help:		where help may be gotten from
support:	where support may be gotten from
contributions:	possible requests for money constributions (but no shareware)
announcements:	where new releases are announced
contact:	who to reach concerning the package
updated:	(#) last known update on the package

-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 01:17:11 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: johnl@iecc.com (John R. Levine)
Subject: Compilers archive is moving
Message-ID: <93-07-014@comp.compilers>
Keywords: administrivia
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Thu, 1 Jul 1993 21:16:05 GMT
Approved: compilers@chico.iecc.com

Since I recently got a direct Internet link for the machine where
comp.compilers is moderated, I'm in the process of moving the archives
back here from primost.cs.wisc.edu, where Jim Larus has graciously
provided space for several years.

You can FTP to iecc.com, login anonymous, password your e-mail address.
The back messages are in pub/articles, one file per month, the index files
are in pub/index, and the other random files are in pub/file.  The index
and article files should be updated every morning at about 0630 Eastern
time.

The articles and most of the files are compressed with gzip.  (Politics
aside, it compresses a lot better than compress does.)  Eventually I'll
put in a smarter FTP daemon which will give you your favorite compression
depending on whether you ask for foo, foo.Z, or foo.gz.

The link here is a 64K leased line shared with a lot of other sites, so
throughput at busy times is not very good.  If possible, please do your
FTPing at off-hours, 2100-0900 Eastern time.  The mail server remains
available for people without FTP access.

Regards,
John Levine, comp.compilers moderator
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 01:43:42 EDT 1993
Xref: iecc comp.compilers:4834 comp.lang.pascal:18681
Newsgroups: comp.compilers,comp.lang.pascal
Path: iecc!compilers-sender
From: "Jon Trantham, 319-395-8892" <SAAB_JDT@%GEN@HOBBES.CCA.CR.ROCKWELL.COM>
Subject: Pascal compiler for PC-UNIX needed
Message-ID: <93-07-015@comp.compilers>
Keywords: Pascal, question
Sender: compilers-sender@chico.iecc.com
Organization: Collins Avionics
Date: Thu, 1 Jul 1993 19:57:00 GMT
Approved: compilers@chico.iecc.com

I need a good Pascal compiler for Solaris(preferably) Unix for the PC.  If
anybody is aware of any good ones please let me know.

Thanks,

Jon Trantham
saab_jdt@genb.cca.cr.rockwell.com
Collins Avionics
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 16:30:37 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: dpoole@hydrogen.oscs.montana.edu (David Poole)
Subject: Lex/Yacc for Turbo Pascal uploaded
Message-ID: <93-07-016@comp.compilers>
Keywords: lex, yacc, Pascal, FTP
Sender: compilers-sender@chico.iecc.com
Organization: Montana State University
Date: Fri, 2 Jul 1993 02:42:28 GMT
Approved: compilers@chico.iecc.com

  I've uploaded a set of lex/yacc tools written in and producing Turbo
Pascal output to the ftp site

  iecc.com (140.186.81.1)

where it's in pub/file/lyprg.zip.
[Remember to copy it in binary mode.  It can be unzipped with either unzip
or pkunzip. -John]

  Please note that I didn't write this software.  I downloaded it from the
Borland area of GEnie.

Dav(e|id)
---------------------------------------------------------------------------
David Poole                        dpoole@hydrogen.oscs.montana.edu
Montana State University
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 16:33:34 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Kelly Morrison <morrison@eng.auburn.edu>
Subject: Backus Normal Form vs. Backus Naur Form (long)
Message-ID: <93-07-017@comp.compilers>
Keywords: history, parse, algol60
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
References: <93-06-063@comp.compilers>
Date: Fri, 2 Jul 1993 05:04:18 GMT
Full-Name: Kelly Morrison
Approved: compilers@chico.iecc.com

   Since I brought up the topic, I thought I'd clear it up. :)

   The book "History of Programming Languages", edited by Richard L.
Wexelblat, contains papers and transcripts of talks given by Alan J.
Perlis and Peter Naur about the development of ALGOL {58-60} language.

Here are some brief and relevant quotes:

{Naur is describing his participation in the December 1959 meeting of the
European part of the ALGOL committee}

	"The use of Backus's notation could only be mentioned
	in passing; my recommendation to that effect appears as
	one of 55 brief notes on revisions of the Zurich report
	as follows: '15) Change the syntactical description'"

	"The decisive action concerning the development of the
	new style of description was taken during the weeks
	following the Mainz meeting, when I worked out the
	results of the meeting according to the notions of
	language description that I had formed. In order to
	press the matter forward as much as possible, on January
	2 I sent all other committee members a document...
	[which] contains the first appearance of my slightly
	revised form of Backus's notation."

{In an appendix, Naur discusses how he modified Backus's notation by
giving a brief example. Personally, I was stunned at how trivial the
changes were: basically, he modified the language so that it included only
symbols you could type at a standard keyboard. Naur concludes with this
comment:}

	"Thus the modified notation uses ::= instead of [can't type
	this symbol: it's a colon followed by an equals sign with
	a third line above it] and | instead of [another symbol
	that can't be typed: it's the keyword or with a line above
	it]. In addition, in the modified form the designations of
	the syntactic constituents, such as 'basic statement,' are
	chosen to be exactly the same as those used for the same
	items in describing the semantics, without abbreviation."

{In a later appendix, F. L. Bauer responds to Naur's statements:}

	"It is amusing to see how Peter Naur looks at the use of
	the Backus notation from his personal point of view.
	Among [other members of the committee] there was no
	question that we would like... a form similar to the one
	Backus had used for its ICIP paper... If Peter Naur had
	seen this a result of his "plan" to make an appeal to the
	members of the ALGOL committee concerning the style of
	the language description, he was running into open doors."

	"... Peter Naur speaks of 'my slightly revised form of
	Backus's notation' and 'my slightly modified form of
	Backus's notation.' I think the minor notation difference
	is not worth mentioning. If some people speak of Backus-
	Naur form instead of the original Backus Normal Form,
	then they indicate that Peter Naur, as the editor of the
	ALGOL 60 report, brought this notation to a wide attention.
	Backus-ALGOL Form would be more appropriate anyhow."

{Here are K. Samuelson's comments on Naur's statements:}

	"On the subject of BNF (which to me has always meant Backus
	Normal Form, since John Backus quite alone introduced it in
	his Paris '59 paper) for the ALGOL 60 report, I can only
	contradict him. As far as I, or even the entire GAMM group,
	is concerned no persuasion whatsoever was necessary to use
	it. Rather, BNF just needed to be presented by John to be
	accepted as a superior means of syntax description."

{The following exchange comes from a transcript given at the 1978
conference which the book documents:}

	CHEATHAM: The next question is from Bernie Galler of the
	University of Michigan, and he asks: "BNF is sometimes
	pronounced Backus-Naur-Form and sometimes Backus-Normal-
	Form. What was the original intention?

	NAUR: I don't know where BNF came from in the first
	place. I don't know -- surely BNF originally meant Backus
	Normal Form. I don't know who suggested it. Perhaps
	Ingerman. [This is denied by Peter Z. Ingerman.] I don't
	know.

	CHEATHAM: It was a suggestion that Peter Ingerman proposed
	then?

	NAUR: ... Then the suggestion to change that I think was
	made by Don Knuth in a letter to the Communications of the
	ACM, and the justification -- well, he has the justification
	there. I think I made reference to it, so there you'll find
	whatever justification was originally made. That's all I
	would like to say.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 16:37:38 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: thiemann@modas.informatik.uni-tuebingen.de (Peter Thiemann)
Subject: Re: Optimization in compilers for functional languages
Message-ID: <93-07-018@comp.compilers>
Keywords: optimize, functional, bibliography
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
References: <93-06-041@comp.compilers>
Date: Fri, 2 Jul 1993 12:17:03 GMT
Approved: compilers@chico.iecc.com

You should have a look at
@BOOK{Appel1992,
	AUTHOR = {Andrew W. Appel},
	TITLE = {Compiling with Continuations},
	PUBLISHER = {Cambridge University Press},
	YEAR = 1992
}
which deals with the optimized compilation of standard ML.

Also the two following phd theses deal with program analyses applicable to
strict and non-strict functional languages.

@PHDTHESIS{Gomard1991,
	AUTHOR = {Carsten K. Gomard},
	TITLE = {Program Analysis Matters},
	SCHOOL = {DIKU, University of Copenhagen},
	YEAR = 1991,
	ADDRESS = {Denmark},
	NOTE = {also DIKU Rapport 91/17}
}

@PHDTHESIS{Sestoft1991,
	AUTHOR = {Peter Sestoft},
	TITLE = {Analysis and Efficient Implementation of
		Functional Programs},
	SCHOOL = {DIKU, University of Copenhagen},
	YEAR = 1991,
	ADDRESS = {Denmark},
	NOTE = {also DIKU Rapport }
}


--
Peter Thiemann, Wilhelm-Schickard-Institut,	| Phone:x49 7071 29 5467
Sand 13, D-72076 Tuebingen, Germany		| Fax:	x49 7071 29 5958
Email: thiemann@informatik.uni-tuebingen.de
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  2 16:38:56 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Dave Gillespie <synaptx!thymus!daveg@uunet.UU.NET>
Subject: Re: Pascal compiler for PC-UNIX needed
Message-ID: <93-07-019@comp.compilers>
Keywords: Pascal, tools, C
Sender: compilers-sender@chico.iecc.com
Reply-To: synaptx!daveg@uunet.UU.NET
Organization: Compilers Central
References: <93-07-015@comp.compilers>
Date: Fri, 2 Jul 1993 18:31:37 GMT
Approved: compilers@chico.iecc.com

Jon Trantham writes:
> I need a good Pascal compiler for Solaris(preferably) Unix for the PC.  If
> anybody is aware of any good ones please let me know.

Some people have used my Pascal to C translator, p2c, along with a C
compiler as a quick-and-easy substitute.  P2c is designed mainly to create
readable, maintainable code, but it also works pretty well as a black-box
compiler.  It understands a variety of Pascal dialects.

You can get p2c by FTP from csvax.cs.caltech.edu.  The GNU project also
now includes it on their Languages tape.

								-- Dave
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sun Jul  4 10:44:05 EDT 1993
Xref: iecc comp.compilers:4839 misc.jobs.offered:31900
Newsgroups: comp.compilers,misc.jobs.offered
Path: iecc!compilers-sender
From: compilers-jobs@iecc.com
Subject: Compiler positions available for week ending July 4
Message-ID: <93-07-020@comp.compilers>
Keywords: jobs
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Sun, 4 Jul 1993 12:00:00 GMT
Approved: compilers@chico.iecc.com

This is a digest of ``help wanted'' and ``position available'' messages
received at comp.compilers during the preceding week.  Messages must
advertise a position having something to do with compilers and must also
conform to the guidelines periodically posted in misc.jobs.offered.
Positions that remain open may be re-advertised once a month.  To respond
to a job offer, send mail to the author of the message.  To submit a
message, mail it to compilers@iecc.com.


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

From: joanie@metaware.com (Joanie)
Subject: Compiler Developers Wanted at Metaware
Organization: Metaware Incorporated, Santa Cruz, CA
Date: Tue, 29 Jun 1993 18:52:42 GMT

Requires a Master's degree in a related field (computer science, math,
etc) 3+ years industrial compiler experience and a strong programming
background, especially with C, C++, DOS, UNIX, and Windows.

      *i860 Compiler Engineer--RISC architecture essential
      *Compiler Engineer--DOS, Windows, NT and OS/2 development

Send your resume !!

These are HANDS-ON PROGRAMMING positions.  Aspiring managers need not
apply at this time.

Come join us at the Beach!

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

From: ryer@dsd.camb.inmet.com (Mike Ryer)
Subject: Positions Available at Intermetrics, Cambridge Mass.
Reply-To: joyce@inmet.com
Organization: Intermetrics Inc, Cambridge MA
Date: Fri, 2 Jul 1993 18:04:43 GMT

COMPILER DEVELOPMENT POSITIONS AVAILABLE

Intermetrics, Inc. has multiple opportunities for compiler writers in our
Software Technology Division (STD).  STD develops languages, compilers,
tools, and environments.  We market Ada, C, Modula, and other compilers,
employing over one hundred developers.  We implement compilers in Ada, C,
LISP, and other languages.  We have about ten compilers currently under
development.

We are looking for both experienced developers of production-quality
compilers, and entry level people with a strong academic background in
compilers and related technology.  A knowledge of optimization, memory
management, instruction scheduling, and compiler-construction tools is
expected.  Familiarity with any of the following is a plus: Ada, C, C++,
LISP; Unix, NT, POSIX; PCTE, SoftBench, ToolTalk;
vectorizing/parallelizing, CORBA, realtime executives, related DOD process
and product standards, related IEEE, ANSI, and ISO standardization
efforts, GNU internals, GUIs, X window systems, Very High Level Languages,
and CASE tools.

Developers generally work in teams of five to ten people, producing,
testing, and delivering one compiler system (or a family of similar
compiler systems).  An ability to work in teams is essential; experience
using automated configuration management tools and participating in design
reviews is desirable.

Founded in 1969, Intermetrics is a publicly-traded company with 500 people
in ten US offices and annual revenues of about $60M.  Most of the
compiler, language, and tools work is done in our Cambridge, Mass office.

Intermetrics is an equal opportunity employer, M/F/H/V.

U.S. Citizenship or permananent residency is required.

For more information, contact:

   Intermetrics, Inc.
   Attn: Joyce Linardy
   733 Concord Avenue
   Cambridge, Mass  02138

   joyce@inmet.com

   No phone calls please.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Mon Jul  5 17:38:57 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: simons@zaphod.cs.tu-berlin.de (Martin Simons)
Subject: Lex/Yacc Grammar for Objective-C?
Message-ID: <93-07-021@comp.compilers>
Keywords: C, parse, question, comment
Sender: compilers-sender@chico.iecc.com
Organization: TU Berlin
Date: Mon, 5 Jul 1993 12:18:40 GMT
Approved: compilers@chico.iecc.com

Hi,

I want to build a compiler for a simulation language which is a variant of
Objective C. First thing will be to build the parser. In order not to have
to start from scratch, I am looking for a Lex/Yacc or a Flex/Bison Grammar
for Objective-C. I have looked at the GNU C sources, but I wonder whether
there are any others around. I'd appreciate any help.

Martin
-------------------------------------------------------------------------
Martin Simons                            Internet: simons@cs.tu-berlin.de
Dept. of Applied Computing Science (Sekr. FR5-6)    Tel: +49 30 314 25213
                                                    Fax: +49 30 314 73488
Technical University Berlin - Franklinstr. 28/29 - 10587 Berlin - Germany
[The original Stepstone implementation objc is a preprocessor which turns
the objc stuff into plain C and passes everything else through.  The syntax
of the extensions is extremely simple, barely enough to be worth using lex
and yacc. -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Tue Jul  6 17:51:43 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: markh@csd4.csd.uwm.edu (Mark)
Subject: Desciption of a new BC implementation
Message-ID: <93-07-022@comp.compilers>
Keywords: arithmetic, tools
Sender: compilers-sender@chico.iecc.com
Organization: Computing Services Division, University of Wisconsin - Milwaukee
Date: Tue, 6 Jul 1993 04:20:43 GMT
Approved: compilers@chico.iecc.com

   This is a preliminary description of a new implementation of the BC
language currently undergoing testing and soon to be released into the
public domain.

   The standard BC language is a stack-based typeless calculator language
that works only with arbitrary precision numbers and one-dimensional
arrays of numbers and a very limited subset of C's syntax.  The revised
language, which I call GC (which does NOT stand for GNU BC), is a superset
of BC that includes a type system for (among other things) arbitrary
precision numbers and complex numbers.  With the type-building operations
added, you will also be able to build up types involving pointers and
arrays of arbitrary dimension, with virtually the same semantics as in C,
but yet still compatible with BC (in particular, BC's idiosyncratic
handling of name spaces).

   But this is sort of an aside.  What I really want to describe is how
control flow is handled.  The GC language is significantly larger than BC
in that it includes virtually all the C control statements, including the
goto.  The method is largely unique.  Basically I stumbled onto it very
early on while trying to implement another method.

   The basis of the interpreter is the "continuation string", denoted like
so:

                                 (x E y z)

The letter x is the string's label (or address).  The letters y and z are
labels denoting other continuation strings, and E is a pointer to the
byte-code sequence to be executed.

   The way the interpreter works is as follows:

            (1) The sequence E is executed, usually this is an
                expression to be evaluated.  This sequence can involve
                function calls, which will recursively start up another level
                of execution.  But there's no jumps or returns or any other
                kind of break in execution in the string E itself, besides
                this.
            (2) After the end of the byte-sequence E is reached, a
                "continuation" is made based on the labels y and z as follows:

                   if y == z, execution continues with the string labeled y
                   if y != z, the topmost item is popped off the stack
                      if it is 0, execution continues with string z
                      if it is not 0, execution continues with string y
		      with the following "return" conditions:

            (3) If y or z is the null pointer, the current execution
	        sequence is 
                ended, and control resumes one level back (this is basically
                the "return" statement).  At the top level, the interpreter
                goes idle and waits for more commands or declarations.
            (4) If E is the null pointer, the interpreter halts and
                returns to the system (this is the "halt" statement).

   Using this method, you can translate arbitrary C-like statements,
including even the goto.  For instance, you can form the following
translation rules:

           while (E) S   <--->   ... c c) (c E x b) (x S c c) (b ...

Inside this while-loop, breaks and continues are translated as follows:

           break;        <--->   ... b b) (y ...     where y is a new label
           continue;     <--->   ... c c) (z ...     where z is a new label

   Labeled statements are translated as follows:

           L: S          <---->  ... L L) (L S ...

and goto's referring to this label, as follows:

           goto L;       <---->   .. L L) (x S ...   where x is a new label

   A function definition is translated like in the following example:

      define f(...) {    <---->   (1
         E                        E
         while (A) S              2 2) (2 A 3 4) (3 S 2 2) (4
         if (B) T                 B 5 6) (5 T 6 6) (6
         return C                 C 0 0)
      }

which, when taken together forms the following set:

                      (1 E 2 2)
                      (2 A 3 4)
                      (3 S 2 2)
                      (4 B 5 6)
                      (5 T 6 6)
                      (6 C 0 0)

When the function is called, execution starts at continuation 1.  One
thing to note about this, is that all the continuations are completely
decoupled from one another.  They can be reordered arbitrarily without
affecting the underlying control flow at all (except that continuation 1
must remain 1).

   The significance of all this is that now it's possible to set up a
purely expression based interpreter, involving no control flow statements
at all -- because control flow is all handled by the continuations.  So
the actual interpreter language has relatively few operators (basically
just the numeric, stack, pointer, and array operators).  This separates
out control from evaluation.

   Other parts of this implementation: the parser (a bottom-up
hand-written parser), the byte-code language, the arbitrary precision
numeric algorithms, and the formal semantics, all use equally novel
methods and may be described in future notes here and in the future
release.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Tue Jul  6 17:52:36 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: "Ann Roddy, U.L." <roddya@ul.ie>
Subject: Wanted: Language Indep. Descriptions
Message-ID: <93-07-023@comp.compilers>
Keywords: parse, question
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Tue, 6 Jul 1993 09:13:46 GMT
Approved: compilers@chico.iecc.com

Hi...

I am working in the area of parser development, with a view to
systematizing and improving the quality/reusability of common features of
the many parsers developed within our research group.

I am currently defining a 'language description database'.  This is
intended as storing the syntax of the language for semantic objects that
have been identified in a 'Language Independent Repository Structure'.

>From this I intend to produce a BNF (Yacc) description of the language
being described.

I realise that a 'language independent BNF' is a tall order but prehaps
someone would have a generialised BNF covering even a few languages. I
need some BNF descriptions to test the results of my application.

Any references on the whole area of 'language independent' descriptions
would be greatly appreciated.

Please reply via email, (I will summarize to comp.compilers )

thanks in advance,

Ann.

Ann Roddy,        email : roddya@ul.ie
C.S.I.S,   University of Limerick,  Ireland.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Tue Jul  6 18:05:34 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: cm@cavsys.demon.co.uk (Colin Manning)
Subject: Recommendation wanted: good book on data flow analysis + optimisation
Message-ID: <93-07-024@comp.compilers>
Keywords: optimize, books, question, comment
Sender: compilers-sender@chico.iecc.com
Organization: Cavendish Systems
Date: Tue, 6 Jul 1993 12:38:40 GMT
Approved: compilers@chico.iecc.com

Subject says it all really: I am after good recommendations for books
covering advanced optimisation strategies, data flow analysis, and
related topics in detail.

I am already familiar with standard texts such as Aho/Sethi/Ullman etc.

Regards,
Colin Manning
[I don't know of any compiler texts significantly better on optimization than
the now somewhat aged red dragon book, but would love to hear of some. -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Tue Jul  6 18:34:42 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: johnl (John R. Levine)
Subject: Flex and bison for C++
Message-ID: <93-07-025@comp.compilers>
Keywords: tools, flex, yacc, C++, FTP
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Tue, 6 Jul 1993 21:46:41 GMT
Approved: compilers@chico.iecc.com

Alain Coetmeur <coetmeur@icdc.fr> has sent along versions of flex and bison
modified to create C++ classes for the lexers and parsers it generates.
The documentation is fairly complete.  (The doc is in English, the comments
in the new or changed code are in French.)

The files are in gzip format for FTP at iecc.com:pub/file.

  -rw-rw-rw-    1  256102 Jul  6 17:39 bison++.tar.gz
  -rw-rw-rw-    1  223701 Jul  6 17:39 flex++.tar.gz
  -rw-rw-rw-    1   25718 Jul  6 17:39 misc++.tar.gz

The misc file contains some sample code and the source to a program called
dman used to create the man pages.  These are too big for the mail server.
If someone wanted to create diffs from the standard versions of flex and
bison, those would probably be small enough to mail.
--
Regards,
John Levine, comp.compilers moderator

-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul  7 12:10:06 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: holmer@rose.eecs.nwu.edu (Bruce Holmer)
Subject: Request for more info on trampolines
Message-ID: <93-07-026@comp.compilers>
Keywords: code, question
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Wed, 7 Jul 1993 06:37:57 GMT
Approved: compilers@chico.iecc.com

I'm wondering if there is a good article on trampoline code which
describes when it is needed and what exactly needs to be done.

The GNU document "Using and Porting GNU CC" has a couple of pages,
but I'm looking for more detail.

Thanks,
--Bruce
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul  7 15:28:56 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From:  Mayan Moudgill <moudgill@cs.cornell.EDU>
Subject: Are there public domain disassemblers available....
Message-ID: <93-07-027@comp.compilers>
Keywords: assembler, question, comment
Sender: compilers-sender@chico.iecc.com
Organization: Cornell Univ. CS Dept, Ithaca NY 14853
Date: Wed, 7 Jul 1993 19:13:17 GMT
Approved: compilers@chico.iecc.com

for workstations like the Sparcs, DECstations, RS/6000s etc.?
Thanks...
:)
Mayan
[I'd expect that if nothing else you could extract the code from GDB, which
isn't p.d. but is free. -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul  7 20:28:41 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Warner Losh <imp@Boulder.ParcPlace.COM>
Subject: UIL grammar + description
Message-ID: <93-07-028@comp.compilers>
Keywords: parse, question, comment
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Wed, 7 Jul 1993 22:29:42 GMT
Approved: compilers@chico.iecc.com

I'm looking for a UIL grammar and description of the language.  Can
some one point me in the right direction?

Warner
[The description is in the Motif documentation which is available from most
Motif vendors.  I haven't seen any formal grammars.  Does anyone actually
use UIL?  I get the impression that the implementation is not well-liked.
-John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul  7 20:29:49 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Trevor Jenkins <tfj@apusapus.demon.co.uk>
Subject: Recommendation wanted: good book on data flow analysis +
Message-ID: <93-07-029@comp.compilers>
Keywords: optimize, books, comment
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
References: <93-07-024@comp.compilers>
Date: Wed, 7 Jul 1993 20:28:50 GMT
Approved: compilers@chico.iecc.com

cm@cavsys.demon.co.uk writes:
> ...recommendations for books covering advanced optimisation strategies,
> data flow analysis, and related topics in detail.

You could try

@book{Hecht77,
author="Matthew S Hecht",
title="Flow Analysis of Computer Programs",
publisher="Elsevier North-Holland",
series="The Computer Science Library: Programming Language Series",
year="1977",
isbn="0-444-00210-3",
notes="VERY mathematical; if some of the exercises in ``The Art of Computer
Programming'' are rated M then the whole of this book ought to be rated
M^2"
}

> I am already familiar with standard texts such as Aho/Sethi/Ullman etc.

(From the references of the ``Red'' Dragon Book) you could also try

@book{MuchnickJones81,
author="S S Muchnick \and N D Jones",
title="Program Flow Analysis: Theory and Applications",
publisher="Prentice-Hall, Englewood Cliffs, NJ",
year="1981",
notes="Sorry I dont have a copy of this book in my collection so can quote the
ISBN for. The opening chapter by Kennedy it particularly useful."}

@book{Arklametal82,
author="Patrica Arklam, David Cutler, {Roger Heinen, Jr} \and M Donald
MacLaren",
title="engineering a compiler: VAX-11 Code Generation and Optimisation",
publisher="Digital Press",
year=1982,
isbn="0-932376-19-3",
notes="Discussed the development of two production compilers (VAX PL/I-G
and VAX C) including discussions on object format and global optimisations.
Despite the year of publication the references are to the ``Green'' Dragon
Book rather than the ``Red'' one."
}
>[I don't know of any compiler texts significantly better on optimization than
>the now somewhat aged red dragon book, but would love to hear of some. -John]

Maybe the above three (which are of similar vintage) will fill in the gatps
for some people. :-)

Regards, Trevor.

---------------------------------------------------------------------------
Trevor Jenkins
134 Frankland Rd, Croxley Green, RICKMANSWORTH, WD3 3AU, England
email: tfj@apusapus.demon.co.uk   phone: +44 (0)923 776436     radio: G6AJG
[Isn't there anything less than 15 years old? -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul  7 20:30:20 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: eb@kaleida.com (Eric Benson)
Subject: Re: Request for more info on trampolines
Message-ID: <93-07-030@comp.compilers>
Keywords: GCC, code
Sender: compilers-sender@chico.iecc.com
Organization: Kaleida Labs, Inc., Mountain View, CA
References: <93-07-026@comp.compilers>
Date: Wed, 7 Jul 1993 22:42:24 GMT
Approved: compilers@chico.iecc.com

The term "trampoline" has been used in the Lisp world for years to
describe a small piece of code that is called, performs some small amount
of work, usually picking up some extra arguments, then jumps to the real
target of the call.  For example, interpreted functions are often
represented as very small compiled functions that do nothing more than
pick up the expression to be interpreted and pass it along to the main
interpreter routine.  This allows compiled code to call interpreted code
directly, without the caller knowing whether the function is interpreted
or compiled.  More generally, the term is often used to refer to one way
of representing closures in Lisp.  A closure is a function with state, and
there may be several closures created from the same "code" with different
state.  A separate trampoline can be created for each closure made from
the same code, each one of which loads a reference to its state and jumps
to the "real" code.

In GNU CC, trampolines are used for nested functions having references to
the local variables of the functions in which they are nested.  Nested
functions are provided as an extension to C in GNU CC, but the facility
was added to the compiler to support languages such as Pascal and Ada,
which include them normally.  Section 7.4 of the Red Dragon book describes
the problem and a variety of solutions.  The most common solution is some
form of "display", essentially and extra argument that points to the outer
stack frame.  This is fine when a function is called directly by name, but
when the address of a function is taken it must be callable in the same
way as any other function.  This is why the trampoline is used.  The
trampoline is callable as an ordinary C function, but it just picks up the
display and calls the "real" code.

Non-C-based systems, e.g. those whose standard system programming language
is something more Pascal-like, often represent function parameters as two
words, a pointer to code and a pointer to "state", the latter of which
could be used for a display.  It is of course much easier to represent a
function without state as one with state than the other way around!

Eric Benson
Kaleida Labs, Inc.
eb@kaleida.com
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul  7 20:31:14 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: norman@flaubert.bellcore.com (Norman Ramsey)
Subject: Re: Are there public domain disassemblers available....
Message-ID: <93-07-031@comp.compilers>
Keywords: assembler
Sender: compilers-sender@chico.iecc.com
Organization: Bellcore
References: <93-07-027@comp.compilers>
Date: Wed, 7 Jul 1993 22:43:48 GMT
Approved: compilers@chico.iecc.com

Mayan Moudgill <moudgill@cs.cornell.EDU> writes:
>disassemblers for workstations like the Sparcs, DECstations, RS/6000s etc.?

The debugger I built for my dissertation contains disassemblers for the
SPARC and DECstations.  It is not in the public domain but it is free.
Mary Fernandez and I are generalizing the toolkit I used to build the
disassemblers; it should be available late this year.  The new toolkit
should make it easy to build disassemblers for more targets.

Norman Ramsey
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  8 09:24:16 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Mark Charney <charney@cs.cornell.EDU>
Subject: Re: Are there public domain disassemblers available....
Message-ID: <93-07-032@comp.compilers>
Keywords: assembler
Sender: compilers-sender@chico.iecc.com
Organization: Cornell Univ. CS Dept, Ithaca NY 14853
References: <93-07-027@comp.compilers>
Date: Thu, 8 Jul 1993 11:25:11 GMT
Approved: compilers@chico.iecc.com

Mayan Moudgill <moudgill@cs.cornell.EDU> writes:
>Are there public domain disassemblers available....
>for workstations like the Sparcs, DECstations, RS/6000s etc.?

Here is a little script I found a long time ago when searching with
archie for "dis"

    echo "${2-main},-1?ai" | adb $1 | sed "s/:.*:^I/:^I/;s/^I^I/^I/"

I can't take credit for it but it is quite handy for quick disassemblies.
It takes one or two arguments. The first is the file name, the optional
second is the procedure name where dissassembly should begin. On the RS/6000
one has to prefix procedure names with a period ('.').

Mark
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  8 12:12:49 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: johnl (John R. Levine)
Subject: No compilers next week
Message-ID: <93-07-033@comp.compilers>
Keywords: administrivia
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Thu, 8 Jul 1993 16:10:37 GMT
Approved: compilers@chico.iecc.com

I'll be off for my annual vacation next week on a small island with 240
Unitarians and one telephone, so I won't be doing any compilers moderation
between 10 and 17 July.  Traffic is usually pretty slow in the middle of
the summer*, so any messages that arrive will just wait here until I get
back.

I'll be leaving the computer running unattended.  It's usually pretty
reliable, but as always it's a good idea to hold onto copies of anything
you send until you get an acknowledgement.

Regards,
John Levine, comp.compilers moderator

* - OK, I know it's winter in Australia, New Zealand, Chile, South
Africa, etc. but it's still the slow season.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  8 12:50:39 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: u90jl@ecs.oxford.ac.uk (Jamie Lokier)
Subject: Re: Are there public domain disassemblers available....
Message-ID: <93-07-034@comp.compilers>
Keywords: assembler
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
References: <93-07-027@comp.compilers>
Date: Thu, 8 Jul 1993 16:47:36 GMT
Approved: compilers@chico.iecc.com

Although it is not public domain, a free program for disassembly is in
the GNU binutils-2.2.1 distribution.  It is called `objdump', invoked
with the -d flag.

-- Jamie
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  8 21:14:19 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: max@nic.gac.edu (Max Hailperin)
Subject: Re: Request for more info on trampolines
Message-ID: <93-07-035@comp.compilers>
Keywords: code, optimize
Sender: compilers-sender@chico.iecc.com
Reply-To: Max Hailperin <max@nic.gac.edu>
Organization: Gustavus Adolphus College, St. Peter, MN
References: <93-07-026@comp.compilers> <93-07-030@comp.compilers>
Date: Thu, 8 Jul 1993 16:52:47 GMT
Approved: compilers@chico.iecc.com

eb@kaleida.com (Eric Benson) writes:

   [discussion of trampolines] ...
   Non-C-based systems, e.g. those whose standard system programming language
   is something more Pascal-like, often represent function parameters as two
   words, a pointer to code and a pointer to "state", the latter of which
   could be used for a display.  It is of course much easier to represent a
   function without state as one with state than the other way around!

One additional point is that even in some systems where procedures are in
general closures and which needn't stay compatable with C calling
conventions, it is still advantageous to use the trampoline representation
rather than the pair of pointers representation. This happens because
empirical analysis shows that many procedures in langauges with closures
in fact don't have any free non-global variables -- that is, the only
variables they use are from the innermost and outermost scopes.  Since
global variables can be handled specially, these procedures don't actually
need a closure at all -- they can be treated just like normal C
procedures. If these procedures dominate, then performance is improved by
tailering the representation to them and using trampolines for the rare
procedures that actually need access to intermediate scopes.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  8 21:15:23 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: tmh@well.sf.ca.us (Todd M. Hoff)
Subject: OO approach to compilers?
Message-ID: <93-07-036@comp.compilers>
Keywords: OOP, question
Sender: compilers-sender@chico.iecc.com
Organization: The Whole Earth 'Lectronic Link, Sausalito, CA
Distribution: all
Date: Thu, 8 Jul 1993 20:41:54 GMT
Approved: compilers@chico.iecc.com

Can anyone point me to any references and resources for compiler
design using OO techniques? What would be the advantages or
disadvantages?

Thanx for any help
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  8 21:28:49 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: pardo@cs.washington.edu (David Keppel)
Subject: Re: Request for more info on trampolines
Message-ID: <93-07-037@comp.compilers>
Keywords: GCC, code, comment
Sender: compilers-sender@chico.iecc.com
Organization: Computer Science & Engineering, U. of Washington, Seattle
References: <93-07-026@comp.compilers> <93-07-030@comp.compilers>
Date: Thu, 8 Jul 1993 21:23:44 GMT
Approved: compilers@chico.iecc.com

>>[Information on "trampoline" code?]
>[Often used to represent closures.]

I know the term from operating systems, where it means (more or less)
code that "bounces" control to where it should go, even when control
can't go there directly.

A standard OS example is code that runs when a signal handler returns.
Control "should" go to the code that was interrupted by the signal, but
the normal return sequence won't restore caller-save registers,
condition codes, and so on.  Thus, the signal handler is set up to
"return" to trampoline code that cleans up and then restarts the normal
code.

The GNU CC documentation says that trampolines are described in a paper
`pub/tmb/usenix88-lexic.ps.Z' on `maya.idiap.ch'; I haven't looked at
it.

	;-D on  ( Tram Po Line Of Reasoning )  Pardo
[I looked at the paper, which is about adding nested functions and hence
closures to C++, doing a little run time code munging to create trampolines
for nested functions. -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul  8 21:33:35 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: pd@complex.Eng.Sun.COM (Peter C. Damron)
Subject: Re: Recommendation wanted: good book on data flow analysis +
Message-ID: <93-07-038@comp.compilers>
Keywords: optimize, books
Sender: compilers-sender@chico.iecc.com
Organization: Sun
References: <93-07-024@comp.compilers> <93-07-029@comp.compilers>
Date: Thu, 8 Jul 1993 22:06:39 GMT
Approved: compilers@chico.iecc.com

cm@cavsys.demon.co.uk writes:
> ...recommendations for books covering advanced optimisation strategies,
> data flow analysis, and related topics in detail.

>[Isn't there anything less than 15 years old? -John]

I don't know if these are what cm@cavsys.demon.co.uk wants, these are not
compiler textbooks in the traditional sense, but you could try:

%B Optimizing Supercompilers for Supercomputers
%A Michael Wolfe
%I MIT Press
%C Cambridge, MA
%D 1989
%K book
%X ISBN 0-273-08801-7
%X series Research Monographs in Parallel and Distributed Computing
%X updated version of his dissertation (?)

%B Dependence Analysis for Supercomputing
%A Uptal Banerjee
%I Kluwer Academic Publishers
%C Norwell, MA
%D 1988
%K book
%X series Parallel Processing and Fifth Generation Computing
%X ISBN 0-89838-289-0

%B Languages and Compilers for Parallel Computing
%E Padua
%E Nicolau
%E et. al.
%I MIT Press
%D 1990 (?)

%B Partitioning and Scheduling Parallel Programs for Multiprocessors
%A Vivek Sarkar
%I MIT Press
%C Cambridge, MA
%D 1989
%K book
%X ISBN 0-273-08802-5
%X series Research Monographs in Parallel and Distributed Computing
%X updated version of his dissertation (?)

%B Parallel Programming and Compilers
%A Constantine D. Polychronopoulos
%I Kluwer Academic Publishers
%C Norwell, MA
%K book
%X series Parallel Processing and Fifth Generation Computing
%X ISBN 0-89838-288-2


Hope this helps,
Peter.

----------------------------
Peter C. Damron
SunPro, a Sun Microsystems, Inc. Company
Advanced Languages, UMTV 12-40
2550 Garcia Ave.
Mtn. View, CA  94043

pdamron@eng.sun.com
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  9 13:36:33 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: unilwh@wuli.uni-c.dk (Lars Ulrik Wacher Hansen)
Subject: Re: UIL grammar + description
Message-ID: <93-07-039@comp.compilers>
Keywords: tools
Sender: compilers-sender@chico.iecc.com
Reply-To: unilwh@uts.uni-c.dk
Organization: UNI-C.
References: <93-07-028@comp.compilers>
Date: Fri, 9 Jul 1993 20:10:41 GMT
Approved: compilers@chico.iecc.com

> Does anyone actually use UIL?  I get the impression that the implementation
> is not well-liked. -John]

Sure! It's actually used quite heavily by some companies, since GUI-builders
like BuilderXcessory can generate UIL files.

---------------------------------------------------------------------------
Lars-Ulrik Wacher Hansen
UNI*C - The Danish Computing Center for Research and Education
Scientific Computing Group, The Technical University of Denmark
Building 305, DK 2800, Lyngby, Denmark
Phone +45 42.88.39.99 ext. 2444, Fax +45 45.93.02.20
unilwh@wuli.uni-c.dk
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul  9 15:02:42 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: eb@kaleida.com (Eric Benson)
Subject: Re: Request for more info on trampolines
Message-ID: <93-07-040@comp.compilers>
Keywords: code, optimize, architecture, comment
Sender: compilers-sender@chico.iecc.com
Organization: Kaleida Labs, Inc., Mountain View, CA
References: <93-07-026@comp.compilers> <93-07-035@comp.compilers>
Date: Fri, 9 Jul 1993 17:41:35 GMT
Approved: compilers@chico.iecc.com


eb@kaleida.com (Eric Benson) writes:
   [discussion of trampolines] ...
   Non-C-based systems, e.g. those whose standard system programming language
   is something more Pascal-like, often represent function parameters as two
   words, a pointer to code and a pointer to "state", the latter of which
   could be used for a display.

max@nic.gac.edu (Max Hailperin) writes:
   One additional point is that even in some systems where procedures are in
   general closures and which needn't stay compatable with C calling
   conventions, it is still advantageous to use the trampoline representation
   rather than the pair of pointers representation [becase in many cases
   you can optimize away the state pointer and only need the trampoline for
   the routines where you can't].

Yes, it's almost certainly true that most functions in most applications
do not have state.  The major problem arises on machines with instruction
caches, or worse, those with separate instruction and data spaces.  It can
be catastrophically expensive to create a trampoline on such systems.

Eric Benson
Kaleida Labs, Inc.
eb@kaleida.com
[The paper mentioned in article 93-07-037 suggests a way to handle runtime
trampolines on such systems.  Basically you have a a stack of statically
created trampoline routines each of which indirects through values in an
entry in a parallel stack of data pointers which can be patched at runtime.
-John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:09:28 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: pardo@cs.washington.edu (David Keppel)
Subject: Re: Request for more info on trampolines
Message-ID: <93-07-041@comp.compilers>
Keywords: code, optimize, architecture, FTP
Sender: compilers-sender@chico.iecc.com
Organization: Computer Science & Engineering, U. of Washington, Seattle
References: <93-07-026@comp.compilers> <93-07-040@comp.compilers>
Date: Sat, 10 Jul 1993 17:57:23 GMT
Approved: compilers@chico.iecc.com

eb@kaleida.com (Eric Benson) writes:
>[It can be expensive to create code fragments on machines with
> separate I and D spaces.]

For each system architecture, often there are techniques that allow
creation of new code fragments, though modifying existing fragments may be
slow.  For example, you can generate code in to a buffer shared between I
and D.  The whole buffer is initially flushed from the I cache.  When a
fragment is written to the buffer it can be executed directly without
cache flushing operations, since, by construction, a part of the buffer
that has just been written is also uncached.  Cache coherence is needed
only when the buffer is exhausted and (code) space is reused.

Although machines with separate I and D spaces are, in principle, a
problem, there is an (almost surprising) lack of real machines where this
turns out to be a problem.

Blowing my own horn:

%A David Keppel
%T A Portable Interface for On-The-Fly Instruction Space Modification
%J Proceedings of the Fourth International Conference on
Architectural Support for Programming Languages and Operating Systems
(ASPLOS-IV)
%D April 1991
%P 86-95

This paper is also included with the `fly' distribution available from
`cs.washington.edu' in `pub/pardo/fly-1.0.tar.Z'.

	;-D on  ( A cache of berried treasure )  Pardo
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:11:18 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: ttaylor@scs.carleton.ca (Tim Taylor)
Subject: PL/1 to C cross compiler
Message-ID: <93-07-042@comp.compilers>
Keywords: PL/I, C, translator, question
Sender: compilers-sender@chico.iecc.com
Organization: School of Computer Science, Carleton University, Ottawa, Canada
Date: Sat, 10 Jul 1993 21:51:11 GMT
Approved: compilers@chico.iecc.com

Does anyone out there know of a PL/1 to C cross compiler?  It doesn't have
to be too fancy - semi-automatic conversion would be fine.

Please email me if you know of such a package

Thanks in advance

Tim
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:12:56 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: jle9162@tamsun.tamu.edu (Jason Lee Eckhardt)
Subject: code generation for i860?
Message-ID: <93-07-043@comp.compilers>
Keywords: optimize, question
Sender: compilers-sender@chico.iecc.com
Organization: Texas A&M University, College Station
Date: Sat, 10 Jul 1993 22:01:13 GMT
Approved: compilers@chico.iecc.com

I have been writing a compiler and now am working on its code generator,
which emits for the i860. I'm looking for any papers, info., or comments
for i860 code generatioN. Especially info. on generating code that is able
to take advantage of the dual-op instructions and dual instruction mode.

Also, does anyone know how I can get a copy of "High performance compiler
back ends" (I think it's a thesis?) or other good codegen papers.

thanks, jason.

jle9162@tamsun.tamu.edu
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:13:50 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: winters@access.digex.net (Michael Winters)
Subject: Language to bootstrap compiler?
Message-ID: <93-07-044@comp.compilers>
Keywords: forth, question
Sender: compilers-sender@chico.iecc.com
Organization: Peace Corps of the United States, Washington, DC
Date: Sun, 11 Jul 1993 03:57:37 GMT
Approved: compilers@chico.iecc.com

I have come up with the idea, although I doubt it is very original, to try
and bootstrap a language using FORTH.  For example, it would be nice to
have some software tools that can be used with Oracle and Rexx.  Oracle is
not a very extensible environment to work in, although you can use Pro*C,
Pro*Fortran, Pro*Ada etc... to write embedded SQL using 3GL languages.  An
old Byte Book called "Threaded Interpreted Languages" seemed to hint at
some interesting possiblities for using threaded intrepreted languages.
Has anyone had experience with implementing compilers or interpreters in
FORTH, instead of writing, for example, a PASCAL compiler, in C?  Charles
Moore, the inventor of Forth, stated some time ago in an article that a
BASIC interpreter could be written in far fewer lines of FORTH, than using
another language to implement BASIC in.  If anyone has any opinion or
ideas on this stuff, I would be interested in your views.  Thanks!

--------- Michael Winters          U.S. Peace Corps
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:14:28 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: rhl@astro.princeton.edu (Robert Lupton the Good)
Subject: Recursive version of byacc?
Message-ID: <93-07-045@comp.compilers>
Keywords: yacc, question
Sender: compilers-sender@chico.iecc.com
Organization: Princeton University
Date: Sun, 11 Jul 1993 22:18:35 GMT
Approved: compilers@chico.iecc.com

I'm not too happy using bison, and have been meaning to switch to byacc,
so when a new version appeared I became all excited. Unfortunately, it
seems to produce a parser that cannot be called recursively, and there is
no option like bison's %pure-parser directive. Has anyone got a set of
patches to byacc that allow this?

			Robert
--
Robert Lupton                                          rhl@astro.princeton.edu
(609) 683 8252 (Home)					(609) 258 3811 (Work)
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:15:09 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Stephen Gilmore <stg@dcs.ed.ac.uk>
Subject: CFP: Compiler Construction '94 --- Edinburgh, Scotland
Message-ID: <93-07-046@comp.compilers>
Keywords: CFP, conference
Sender: compilers-sender@chico.iecc.com
Organization: Department of Computer Science, University of Edinburgh
Date: Mon, 12 Jul 1993 09:59:38 GMT
Approved: compilers@chico.iecc.com

   CALL FOR PAPERS



   CAAP/ESOP/CC '94   ---   Edinburgh, Scotland



   CAAP'94  Colloquium on Trees in Algebra and Programming     11-13 Apr 94
   ESOP'94  European Symposium on Programming                  11-13 Apr 94
   CC'94    International Conference on Compiler Construction  7-9   Apr 94


   In cooperation with ACM SIGPLAN



   COLLOQUIUM on TREES in ALGEBRA and PROGRAMMING

   Programme Committee

   S. Tison (Lille, chair)
   J. Almeida (Porto)
   A. Arnold (Bordeaux)
   V. Bruyere (Mons)
   H. Comon (Orsay)
   B. Courcelle (Bordeaux)
   A. De Luca (Naples)
   V. Diekert (Stuttgart)
   J. Karhumaki (Turku)
   G. Mauri (Milan)
   M. Nivat (Paris)
   D. Niwinski (Warsaw)
   A. Restivo (Palermo)
   H. Seidl (Passau)
   C. Stirling (Edinburgh)
   W. Thomas (Kiel)

   This colloquium series was originally devoted to the algebraic and
combinatorial properties of trees, and their role in various fields of
Computer Science.  The importance of trees in Computer Science is now
firmly established, and the study of their algebraic, logical, and
combinatorial properties has made significant progress.  Many other
structures such as graphs are playing similar roles and deserve similar
theoretical studies.  In keeping with CAAP's traditions while accounting
for these new trends, CAAP '94 will focus on algebraic, logical, and
combinatorial properties of discrete structures such as strings, trees,
graphs, combinatorial configurations on grids, and tilings, just to list
the main notions.  A central topic is the theory of formal languages
considered in this broad sense, i.e. the study of automata, grammars,
systems of equations, logic, rewriting systems, etc. as descriptive
formalisms.  The topics include also applications to Computer Science
provided that algebraic or syntactic methods are involved.



   EUROPEAN SYMPOSIUM on PROGRAMMING

   Programme Committee

   D. Sannella (Edinburgh, chair)
   R. Back (Turku)
   G. Berry (Sophia-Antipolis)
   G. Cousineau (Paris)
   R. De Nicola (Rome)
   P. Dybjer (Gothenburg)
   P. Klint (Amsterdam)
   B. Krieg-Bruckner (Bremen)
   A. Mycroft (Cambridge)
   F. Nielson (Aarhus)
   A. Sernadas (Lisbon)
   A. Tarlecki (Warsaw)
   D. Warren (Bristol)
   R. Wilhelm (Saarbrucken)
   M. Wirsing (Munich)

   This conference is devoted to fundamental issues in the specification,
design and implementation of programming languages and systems.  The
emphasis is on research that bridges the gap between theory and practice,
for example an implemented system that embodies an important concept or
method, or a formal framework for design that usefully addresses issues
arising in practical system development.  The scope of the conference
includes work on: software analysis, specification, transformation,
development and verification/certification; programming paradigms
(functional, logic, object-oriented, concurrent, etc.) and their
combinations; programming language concepts, implementation techniques and
semantics; software design methodologies; typing disciplines and
typechecking algorithms; and programming support tools (this is not an
exhaustive list).



   INTERNATIONAL CONFERENCE on COMPILER CONSTRUCTION

   Programme Committee

   P. Fritzson (Linkoping, chair)
   A. Goldberg (Palo Alto)
   R. Gupta (Pittsburgh)
   T. Gyimothy (Szeged)
   S. Haridi (Stockholm)
   L. Hendren (Montreal)
   N. Horspool (Victoria)
   F. Irigoin (Paris)
   T. Johnsson (Gothenburg)
   M. Jourdan (Paris)
   U. Kastens (Paderborn)
   K. Koskimies (Tampere)
   M. Lam (Stanford)
   O. Lehrmann-Madsen (Aalborg)
   D. Padua (Urbana-Champaign)
   G. Riedewald (Rostock)
   S. Romanenko (Moscow)

   The International Conference on Compiler Construction provides a forum
for presentation and discussion of recent developments in the area of
compiler construction, language implementation and language design.  Its
scope ranges from compilation methods and tools to implementation
techniques for specific requirements of languages and target architectures.
It also includes language design and programming environments issues which
are related to language translation.  There is an emphasis on practical and
efficient techniques. Topics include, but are not restricted to: tools for
any phase of compilation; methods and techniques for code generation and
optimization; compilation for parallel architectures; programming
environments; translation of computer languages (imperative, functional,
logic, object-oriented, parallel, etc.); translation of application and
specification languages; other tools closely related to compiler
construction, e.g.  debuggers, data flow analyzers, etc.



SUBMISSION

Original papers on topics relevant to CAAP '94, ESOP '94 and CC '94 are
sought.  Prospective authors are invited to submit five copies of a full
draft paper (about 15 pages) to the appropriate programme committee
chairperson:

   Sophie Tison, CAAP '94
   University of Lille 1
   LIFL
   Bat. M3
   F-59655 Villeneuve d'Ascq  Cedex
   France
   Telephone: +33-20434309
   Telefax: +33-20436566
   E-mail:    tison@lifl.fr

   Don Sannella, ESOP '94
   LFCS, Department of Computer Science
   The King's Buildings
   University of Edinburgh
   Edinburgh EH9 3JZ
   Scotland
   Telephone: +44-31-6505184
   Telefax: +44-31-6677209
   E-mail:    dts@dcs.ed.ac.uk

   Peter Fritzson, CC '94
   Department of Computer
     and Information Science
   Linkoping University
   S-581 83 Linkoping
   Sweden
   Telephone: +46-13-281484
   Telefax: +46-13-282666
   Email:    petfr@ida.liu.se

Papers must be unpublished and not submitted for publication elsewhere.
Each submission should include a short abstract, and should clearly
indicate an address for correspondence, with e-mail address if available.
Authors who have no access to photocopying facilities may submit a single
copy. Electronically submitted papers will not be considered. Papers that
attempt to establish links between different approaches and/or include
expository or survey material, as well as presenting original results,
will be welcomed. Papers will be carefully refereed and will be judged on
the basis of relevance, originality, significance, correctness, and
clarity.



DATES

   Deadline for submission:      15th October 1993
   Notification of acceptance:   6th December 1993
   Final version due:            28th January 1994

The conferences will be held at the University of Edinburgh, Scotland.
The proceedings will be published by Springer-Verlag in the Lecture Notes
in Computer Science series.



INVITED SPEAKERS

   CAAP '94:  H. Comon (Orsay)
   CAAP '94:  J. Engelfriet (Amsterdam)
   ESOP '94:  L. Cardelli (Palo Alto)
   ESOP '94:  R. Milner (Edinburgh)
   CC '94:    K. Nygaard (Oslo)



SYSTEMS EXHIBITION

Non-commercial software systems may be demonstrated in parallel with the
conferences.  Authors are invited to make a proposal for demonstration to
the chairman of the local arrangements committee:

   George Cleland, CAAP/ESOP/CC '94
   LFCS, Department of Computer Science
   The King's Buildings
   University of Edinburgh
   Edinburgh EH9 3JZ
   Scotland
   Telephone: +44-31-6505199
   Telefax: +44-31-6677209
   E-mail:    glc@dcs.ed.ac.uk



SATELLITE MEETINGS

Facilities will be provided for holding short specialized workshops and
other meetings (e.g. meetings of ESPRIT Basic Research Projects and
Working Groups) in conjunction with CAAP/ESOP/CC '94.  Organizers are
invited to make arrangements with the chairman of the local arrangements
committee (deadline: 15th October 1993).
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:16:25 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: eppler@bordeaux.informatik.uni-kl.de (Reinhard Eppler)
Subject: Garbage Collector for C Wanted
Message-ID: <93-07-047@comp.compilers>
Keywords: C, GC, question, comment
Sender: compilers-sender@chico.iecc.com
Organization: University of Kaiserslautern (Germany)
Date: Mon, 12 Jul 1993 13:53:28 GMT
Approved: compilers@chico.iecc.com

I need a garbage collector with reference counting written in C(++).
Is anyone out there who can help me?

Thanx, Reinhard Eppler
[I wrote one for my thesis in about 1982, but I'm not sure I can still
find it. -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:18:20 EDT 1993
Xref: iecc comp.compilers:4867 comp.lang.misc:10182
Newsgroups: comp.compilers,comp.lang.misc
Path: iecc!compilers-sender
From: luebke@cs.unc.edu (David Luebke)
Subject: REQUEST: info on attribute inheritance language/protocol
Message-ID: <93-07-048@comp.compilers>
Keywords: attribute, design
Sender: compilers-sender@chico.iecc.com
Organization: The University of North Carolina at Chapel Hill
Date: Mon, 12 Jul 1993 20:59:54 GMT
Approved: compilers@chico.iecc.com

Our group here at UNC is working on applications of immersive (virtual
reality) interfaces to architectual applications. My current project is
developing an external file to describe the 3D models we create. We would
like to be able to assign every object we make a name, which will have an
associated entry in the table. In that entry we would like to store
information about the object, in the form of attributes. Simple attributes
include color, texture, and rendering style; each of these attributes
might in turn imply another collection of attributes such as textureFile,
textureType, textureScale and so on. Eventually we will want to allow more
complex attributes such as interactivity (collision off/on, gravity
off/on, containment, etc). We want the whole affair to be hierarchical by
name, so that, say, chair3.seat.cushion will inherit attributes set in
chair3.seat, which in turn inherits from chair3.

I'd put a lot of thought into this, and was struggling to develop a good
form for the entries in the object description table, when I realized that
what I really needed was a language. This isn't a graphics problem--it's a
general attribute inheritance problem. If I could implement this objdesc
table using a language or protocol that someone else has spent hundreds of
man-hours hammering out, it'd save me and the people (future modelers) who
eventually have to use my format a lot of grief.

SO...I'm hoping that the folks on comp.compilers and comp.lang.misc
can give me some pointers. Where has this type of work been done before?
My first thought was to pattern the objdesc langauge after C++, which just
about everybody here knows and uses, but after looking into it I decided
that there wasn't enough structural similarity between C++ and what I'd
like to do to make the effort worthwhile. Here are the features I'd like to
see for an attribute inheritance language/protocol to use:
	- Attributes should possess a functional hierarchy. For example, the
	base attribute 'Material' might be set to 'solid'. 'Solid', in turn,
	would expand into several secondary attributes such as 'specular',
	'diffuse','shininess', and 'transparency'. If 'chair3' defines
	'Material' this way but 'chair3.seat' sets 'Material' to 'texture',
	then the slots associated with 'solid' would automatically be
	invalidated, replaced with slots like 'textureFile', etc.
	- It should be hierarchical in the strict sense that attributes
	specified in one name (such as 'chair3') are inherited by objects
	associated with that name (such as 'chair3.seat').
	- Multiple inheritance would be nice. For example, in our current
	modeling software it is possible to group objects and assign a name
	to the group rather than to each individual polyhedron. I'd like to
	assign priorities, so that if a polyhedron doesn't have its own name
	it will inherit the attributes of the group it is assigned to. The
	flexibility to implement several such layers of inheritance would
	help.
	- It would be nice to be able to pull in entire blocks of attributes.
	For example if chair3.casters is brass, I'd like to be able to
	inherit a global METAL.BRASS attribute group (attGroup). As the name
	METAL.BRASS implies, it would also be nice if attGroups themselves
	could inherit attributes, though this is less crucial.
	- It should be flexible. I don't want to have to specify a complete
	list of ALL possible attributes because our needs might (will) change.
	For example, right now our textures are procedural. When we implement
	image textures a whole new set of texture-specific attributes will
	come into play. At the very least a list of possible attributes should
	be separate from the parser, rather than hard-coded into it.

This is such a general problem that I can't believe someone hasn't already
worked out a solution, better and more general than I'm likely to come up
with, that fits our needs. Any pointers to literature, more appropriate
newgroups, in fact any advice at all, would be greatly apprecatied. Thanks
for your time and bandwidth,

David Luebke
luebke@cs.unc.edu
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:19:11 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: tartaris@hsi.com (Bob Tartaris)
Subject: C Compilers for IBM Mainframe
Message-ID: <93-07-049@comp.compilers>
Keywords: C, question, IBM
Sender: compilers-sender@chico.iecc.com
Organization: 3M Health Information Systems, Wallingford CT
Date: Tue, 13 Jul 1993 15:00:14 GMT
Approved: compilers@chico.iecc.com

Is there a FAQ or can someone recommend any manufacturers of C compilers
for the IBM mainframe?  Prefer compiler that will run under VM or VSE/ESA;
however, any recommendations for MVS/ESA are also welcome.  Manufacturer's
name, address, phone and any experiences using their compiler would be
greatly appreciated.

Thanks,
Bob
tartaris@hsi.com
--
Robert P. Tartaris                          email: tartaris@hsi.com
3M Health Information Systems               vmail: (203) 949-6411
100 Barnes Road
Wallingford, CT 06492
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:19:48 EDT 1993
Xref: iecc comp.compilers:4869 comp.lang.c++:41460
Newsgroups: comp.compilers,comp.lang.c++
Path: iecc!compilers-sender
From: humesdg1@aplcomm.jhuapl.edu (Dave Humes)
Subject: Software Metrics Tools for C++/SunOS ???
Message-ID: <93-07-050@comp.compilers>
Keywords: C++, tools, question
Sender: compilers-sender@chico.iecc.com
Organization: JHU/Applied Physics Laboratory
Date: Tue, 13 Jul 1993 20:32:43 GMT
Approved: compilers@chico.iecc.com

Help!  We need this as soon as possible.

We are looking for a software metrics package for the SunOS environment
which is capable of analyzing complex C++ applications and generating
organizational diagrams, function interdependencies and symbol cross
reference listings.

Thanks in advance.

--
--------------------------------------------------------------------------
Dave Humes        |    Johns Hopkins University Applied Physics Laboratory
(410) 792-6651    |    humesdg1@aplcomm.jhuapl.edu
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 18:41:47 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Will Partain <partain@dcs.gla.ac.uk>
Subject: Glasgow Haskell compiler, version 0.16, available
Message-ID: <93-07-051@comp.compilers>
Keywords: Haskell, functional, available, FTP
Sender: compilers-sender@chico.iecc.com
Organization: Glasgow University Computing Science Dept.
Date: Wed, 14 Jul 1993 17:36:49 GMT
Approved: compilers@chico.iecc.com

	     The Glasgow Haskell Compiler -- version 0.16
	     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The second public release of the Glasgow Haskell Compiler is now
available (GHC, version 0.16). Binaries (recommended) and source are
freely available by FTP; details appear below.

GHC 0.16 is still alpha-quality software.  This release in an interim
measure, not as solid as I would prefer.  However, a lot has gone in
since December.  The profiling system is Way Cool.  The compiler now
has a strictness analyser and an update analyser.  Compiled programs
tend to run faster.  Compilation speed is worse.  Bugs remain, but
they tend to be work-around-able.

To run this release, you need a Sun4 or Sun3, probably with 16+MB
memory, and GNU C (gcc), version 2.1 or greater, and "perl".

This system can be built from source using: itself (most likely to
succeed), the previous GHC release (0.10) [least likely], or the
Chalmers HBC compiler [in-between].  Please see the appropriate
documentation for details.

Please report bugs to glasgow-haskell-bugs@dcs.glasgow.ac.uk and
direct general queries to glasgow-haskell-request@<same>.

Will Partain
(typist for the AQUA [formerly GRASP] project)

....................................................................

Why a Haskell programmer might want to use GHC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* GHC provides an extensible I/O system, based on a "monad" [1]. (The
  standard Haskell I/O system is built on this foundation.)

* A number of significant language extensions are implemented:
	- Fully fledged unboxed data types [2].
	- Ability to write arbitrary in-line C-language code, using
	  the I/O monad to retain referential transparency.
	- Incrementally-updatable arrays, also embedded in a monad.
	- Mutable reference types.

* A new profiling system is supplied, which enables you to find out
  which bits of your program are eating both *time* and the *space* [3].

* By default, the system uses a generational garbage collector which
  lets you run programs whose live data is significantly larger than
  the physical memory size before thrashing occurs.  (Conventional
  2-space GC starts thrashing when the live data gets to about half
  the physical memory size.)

* Good error messages.  Well, fairly good error messages.  Line
  numbers are pretty accurate, and during type checking you get
  several (accurate) error reports rather than just one.

* Performance: programs compiled with GHC "often" beat
  Chalmers-HBC-compiled ones.  If you find programs where HBC wins,
  please report it to us, as a bug :-).

Why a functional-language implementor might want to use GHC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* We have tried very hard to write the compiler in a modular and
  well-documented way, so that other researchers can modify and extend
  it.  One of our goals is specifically to provide a framework to
  support others' work.  Several people are already using it in this
  way.

* Highly configurable runtime system.  Heavy use of C macros means
  that you can modify much of the storage representation without
  telling the compiler.  For example, the system comes with 4
  different garbage collectors! (all working)

* Internals: extensive use of the second-order lambda calculus as an
  intermediate code; the Spineless Tagless G-machine as evaluation
  model [4].

* Various performance-measurement hooks.

Main shortcomings
~~~~~~~~~~~~~~~~
* No interactive system.  This is a batch compiler only.  (Any
  volunteers?)

* Compiler is greedy on resources.  Going via C doesn't help here.

* This system should run on any Unix box.  We haven't had time to do
  any non-Sun ports.  Help or prodding welcome.

References
~~~~~~~~~
All these papers come with the distribution [in ghc/docs/papers].

[1] "Imperative functional programming", Peyton Jones & Wadler, POPL '93

[2] "Unboxed data types as first-class citizens", Peyton Jones &
    Launchbury, FPCA '91

[3] "Profiling lazy functional languages", Sansom & Peyton Jones,
    Glasgow workshop '92

[4] "Implementing lazy functional languages on stock hardware", Peyton
    Jones, Journal of Functional Programming, Apr 1992

How to get it
~~~~~~~~~~~~
This release is available, in whole or in part, from the usual Haskell
anonymous FTP sites, in the directory pub/haskell/glasgow:

	ftp.dcs.glasgow.ac.uk  (130.209.240.50)
	ftp.cs.chalmers.se     (129.16.225.66)
	nebula.cs.yale.edu     (128.36.13.1)

[but it may take a little time to propagate the files... -wdp]

We are mirrored by src.doc.ic.ac.uk, in
computing/programming/languages/haskell/glasgow, and you can get files
from there by every means known to humanity.

These are the available files (.Z for compressed, .gz for gzipped) --
some are `on demand', ask if you don't see them:

ghc-0.16-bin-sun4.tar.{Z,gz} A binary distribution -- avoid compiling
			altogether!  For SunOS 4.1.x; assumes you have
			GNU C (gcc) version 2.x around...

ghc-0.16-src.tar.gz	The basic source distribution; about 3MB.

ghc-0.16-hi-files-{hbc,ghc-0.10}.tar.gz
			Interface files for the compiler proper
			(ghc/compiler/*/*.hi), to be used if booting
			with either HBC or GHC version 0.10.  (The
			distributed .hi files assume GHC version
			0.16.)

ghc-0.16-hc-files.tar.gz The intermediate C files for the compiler
			 proper, the prelude, and `Hello, world'.
			 Used when porting.

ghc-0.16-patch-*	Patches to the original distribution.  There
			are none to start with, of course, but there
			might be by the time you grab the files.
			Please check for them.

There are no diffs from version 0.10, as they would be laughably huge.

Once you have the distribution, please follow the pointers in the
ghc/README file to find all of the documentation in and about this
release.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 19:23:49 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: jk@cs.man.ac.uk (John Kewley)
Subject: yacc error clauses
Message-ID: <93-07-052@comp.compilers>
Keywords: yacc, errors, question, comment
Sender: compilers-sender@chico.iecc.com
Reply-To: jk@fiveg.icl.co.uk
Organization: ICL Computers Limited, EDS Project
Date: Thu, 15 Jul 1993 14:23:31 GMT
Approved: compilers@chico.iecc.com

I have the following aims with my compiler (C++ + yacc):

1. Don't stop at first syntax error, keep going and try and find more
   (ie recover).
2. When errors are detected, or I am recovering, release all dynamically
   allocated store to reduce memory leaks (compiler can be run standalone
   or as part of larger system which makes repeated calls to the compiler).

Are there any suggestions for conventions on how to sort this out,
avoiding any extra conflicts. yyerrok seems OK for me, but my placement of
the error rules seems a bit haphazard.

Comments on the following please?

item_list
	: item
	{ $$= $1; }

	| item_list COMMA item
	{ $3->add_item($1);
	  $$= $3; }

	| item_list COMMA error
	{ delete $1;
	  $$= 0; }

What other error productions would you expect in the above?
How would it be used:

item_list_use
	: item_list EQ item_list
	{ $$= new item_list_use($1, $3); }

What error productions do we need for item_list_use?

One of my problems is that I allocate store to contain identifiers when
they are lexed. If they are not parsed due to an earlier error, the store
is never reclaimed.

Any help would be gratefully received, thanks,
--
        John M Kewley

ICL Computers Limited, Wenlock Way, West Gorton, Manchester. M12 5DR
Tel: (+44) 61 223 1301 X2138  Email: jk@fiveg.icl.co.uk or jk@cs.man.ac.uk
[Looks like a reasonable place for an error rule to me, since after a comma
is the only obvious place to resynchronize.  For storage management, I
usually make a little private allocator that chains together chunks gotten
from malloc, so I can then release an entire chain when I need to. -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 19:59:31 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: chased@rbbb.Eng.Sun.COM (David Chase)
Subject: Re: Request for more info on trampolines
Message-ID: <93-07-053@comp.compilers>
Keywords: code
Sender: compilers-sender@chico.iecc.com
Organization: Sun
References: <93-07-026@comp.compilers>
Date: Fri, 16 Jul 1993 00:13:55 GMT
Approved: compilers@chico.iecc.com

holmer@rose.eecs.nwu.edu (Bruce Holmer) writes:
>I'm wondering if there is a good article on trampoline code which
>describes when it is needed and what exactly needs to be done.

>The GNU document "Using and Porting GNU CC" has a couple of pages,
>but I'm looking for more detail.

Here's an implementation, for Sparc, running Solaris 2.*, using a compiler
capable of reading .il files.  This implementation uses separate paired
code and data pages to reduce the need to flush the cache.  That is, there
is a trampoline allocator and a trampoline deallocator.  You could use
this code to (for instance) implement nested scope in a Pascal or Modula
to C translator.  The fact that the trampolines are not allocated on the
stack means that you could do more than that, if you were ambitious.

The code below contains horrible non-portable casts, but it also contains
hex constants encoding Sparc machine instructions, so I can't make too
many claims to portability anyway.

IMPORTANT NOTICE:

  SUN MICROSYSTEMS HAS NOTHING TO DO WITH THIS CODE, AND IT PROBABLY
  DOESN'T WORK ANYWAY.  THIS IS FOR DEMONSTRATION/EDUCATIONAL
  PURPOSES ONLY.

================================================================
#define TEST_TRAMP

/*
 * Prototype code demonstrating the use of trampolines
 * on Sparc under SVR4.  It is not seriously tested, and
 * contains random exits that make it unsafe for general
 * use.
 *
 * Types used:
 *
 * PFoIrI -- Pointer to function of int returning int.
 *
 * Procedures exported:
 *
 * PFoIrI tramp_alloc(PFoIrI f, int data1, int data2, char * name)
 *
 *  This returns a "trampoline", with C type "pointer to function
 *  of int returning int".  When the trampoline is called with one
 *  parameter "x", the trampoline will load data1 and data2 into
 *  global registers %g2 and %g3 respectively, then calls "f",
 *  passing it the parameter "x".  If 0 is passed in for "name",
 *  "anonymous" is used as the trampoline's name.
 *
 *  In practice, (let's not have any pretensions to portability
 *  here) as many parameters as are desired may be passed to the
 *  trampoline, and they will ALL be passed to "f".  However,
 *  this might be an unportable practice, in that it may be difficult
 *  to implement on other architectures (the use of the side door
 *  for passing the hidden arguments, instead of adding them to the
 *  parameter list, should make this less of a problem).
 *
 * PFoIrI tramp_alloc1(PFoIrI f, int i1, char * name)
 *  equivalent to tramp_alloc(f,i1,0,name)
 *
 * void tramp_free(PFoIrI f)
 *
 *  This frees the trampoline for later use.  Things recognized to
 *  be non-trampolines (in practice, almost any non-trampoline)
 *  are quietly ignored.
 *
 * int tramp_valid(PFoIrI f)
 *
 *  Returns 1 if and only if f is an allocated trampoline.
 *
 * int tramp_data(PFoIrI f, PFoIriI *pfunc, int * pdata1,
 *                          int * pdata2, char ** pname)
 *
 *  Retrieves information from an allocated trampoline.
 *  Returns 1 if this was successful, or 0 if the first parameter
 *  was not an allocated trampoline.  Values are returned through
 *  those pointers that are not zero.
 *
 * void tramp_dump(FILE * f)
 *
 *  Dump out information about all allocated trampolines.
 *
 * For writing trampolines, compile with the inline file "get_g2.il"
 * and call "get_g2()" and "get_g3()" to read the hidden parameters.
 * This is the entire contents of the expected inline file:
 *
 *****************************
	.inline get_g2,0
	mov	%g2,%o0
	.end

	.inline get_g3,0
	mov	%g3,%o0
	.end

	.inline  flush,1
	iflush %o0
	.end
 *****************************
 *
 * For testing and illustration, compile this code with -DTEST_TRAMP.
 *
 */

typedef int (*PFoIrI)(int);

#include <sys/types.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdio.h>

#define BLOBSIZE 8192

/*
  sethi  %hi(loc),%g1
  add    %g1,%lo(loc),%g1
  ldd    [%g1],%g2
  ld     [%g1+8],%g1
  jmp    %g1
  nop
  nop
  nop
*/

#define SETHILOC(loc) (0x03000000 + ((unsigned int)(loc)>>10))
#define ADDLOLOC(loc) (0x82006000 + ((unsigned int)(loc)&0x3FF))
#define NOP 0x01000123 /* Tagged NOP. */
#define LD1 0xc4184000
#define LD2 0xc2006008
#define JMP 0x81c04000

struct code_blob {
  unsigned int sethi,add,ld1,ld2,jmp,nop;
  struct data_blob * data_ptr;
  int pad[1];
};

struct data_blob {
  unsigned int data1;
  unsigned int data2;
  unsigned int function;
  struct data_blob * next_free;
  char * name;
  struct code_blob * code_ptr;
  struct data_blob * next;
  struct data_blob * prev;
};

/* Helper routine to get a page. */
static void * a_page() {
static int zfd = 0;
      int memory_at;

      if (zfd == 0)
	{
	  zfd = open("/dev/zero", O_RDONLY, 0);
	}

      memory_at = (int) mmap(0, BLOBSIZE,
			     PROT_READ|PROT_WRITE|PROT_EXEC,
			     MAP_PRIVATE, zfd, 0);

      if (memory_at == -1)
	exit(-1);

       return (void *) memory_at;
}

struct data_blob * init_a_bunch() {
  struct code_blob * cp = (struct code_blob *) a_page();
  struct data_blob * dp = (struct data_blob *) a_page();
  int i;
  int cl = BLOBSIZE/sizeof(struct code_blob);
  /* Note -- dl must be a multiple of 8, because ldd is applied
     to it. */
  int dl = BLOBSIZE/((sizeof(struct data_blob)+7)&~7);
  int rc;

  if (cl > dl) cl = dl;

  for (i = 0; i < cl; i++)    {
	cp[i].sethi = SETHILOC(dp+i);
	cp[i].add = ADDLOLOC(dp+i);
        cp[i].ld1 = LD1;
        cp[i].ld2 = LD2;
        cp[i].jmp = JMP;
        cp[i].nop = NOP;
	cp[i].data_ptr = dp+i;
    }

  for (i = 0; i < cl; i++)    {
      flush(cp+i);
    }

  for (i = 0; i < cl; i++)    {
	dp[i].code_ptr = cp+i;
	dp[i].next = dp+i+1;
	dp[i].next_free = dp+i+1;
	dp[i].prev = dp+i-1;
	dp[i].name = 0;
    }

  dp[0].prev = dp+i-1;
  dp[i-1].next = dp+0;
  dp[i-1].next_free = 0;

  /* Change the page protection on the code to forbid writes.
     The code has to be readable, because it is necessary
     to read pointers written there to verify that a trampoline
     is a trampoline, and to get to the data pointer when it
     is freed. */

  rc = mprotect((char *) cp, BLOBSIZE, PROT_EXEC|PROT_READ);
  if (rc) {
    perror("Mprotect failed: ");
  }
  return dp;
}

int tramp_valid(PFoIrI f) {
   struct code_blob * cb = (struct code_blob *) f;

   /* Verify thoroughly that this is our data.
      Postpone indirection through potentially bogus
      addresses as long as possible. */
   return (
	   cb -> ld1 == LD1 &&
	   cb -> ld2 == LD2 &&
	   cb -> jmp == JMP &&
	   cb -> nop == NOP &&
	   cb -> sethi == SETHILOC(cb -> data_ptr) &&
	   cb -> add == ADDLOLOC(cb -> data_ptr) &&
	   cb -> data_ptr -> code_ptr == cb &&
	   cb -> data_ptr -> name != 0);
}

static struct data_blob * tramp_list = 0;
static struct data_blob * tramp_free_list = 0;

PFoIrI tramp_alloc(PFoIrI f, int i1, int i2, char * name) {
   struct data_blob * this;

   /* Name is used as the is-allocated flag, so it cannot
      be zero. */
   if (name == 0) name = "anonymous";

   if (tramp_list == 0) {
     /* The first time, the default circular list is what is needed. */

     tramp_free_list = init_a_bunch();
     tramp_list = tramp_free_list;
   }

   if (tramp_free_list == 0) {
	tramp_free_list = init_a_bunch();

	/* update the circular list. */

	tramp_free_list -> prev -> next = tramp_list;
	tramp_list -> prev -> next = tramp_free_list;
	this = tramp_list -> prev;
	tramp_list -> prev = tramp_free_list -> prev;
	tramp_free_list -> prev = this;
   }

   this = tramp_free_list;
   tramp_free_list = this -> next_free;

   this -> name = name;
   this -> data1 = (unsigned int) i1;
   this -> data2 = (unsigned int) i2;
   this -> function = (unsigned int) f;
   return (PFoIrI) (this -> code_ptr);
}

PFoIrI tramp_alloc1(PFoIrI f, int i1, char * name) {
  return tramp_alloc(f,i1,0,name);
}

void tramp_free(PFoIrI f) {
   if (tramp_valid(f)) {
     struct code_blob * cb = (struct code_blob *) f;
     struct data_blob * db = (struct data_blob *) cb -> data_ptr;
     db -> next_free = tramp_free_list;
     db -> name = 0;
     tramp_free_list = db;
   }
   return;
 }

int tramp_data(PFoIrI f, PFoIrI *pfunc, int * pdata1,
                          int * pdata2, char ** pname)
{
  if (tramp_valid(f)) {
    struct code_blob * cb = (struct code_blob *) f;
    struct data_blob * db = (struct data_blob *) cb -> data_ptr;

    if (pfunc != 0) *pfunc = db -> function;
    if (pdata1 != 0) *pdata1 = db -> data1;
    if (pdata2 != 0) *pdata2 = db -> data2;
    if (pname != 0) *pname = db -> name;
    return 1;
  } else return 0;
}

void tramp_dump(FILE * f) {
  struct data_blob * start = tramp_list;
  struct data_blob * next = start;

  if (next != 0) do {
    if (next -> name) {
      fprintf(f, "data_p = %x, code_p = %x, func = %x, "
      	"data1 = %x, data2 = %x, name = %s\n",
	      next, next -> code_ptr, next -> function, next -> data1,
	      next -> data2, next -> name);
    }
    next = next -> next;
  } while (next != start);
}

#ifdef TEST_TRAMP
int compose_helper(int x) {
  PFoIrI f = (PFoIrI) get_g2(),
         g = (PFoIrI) get_g3();
  printf("Compose_helper (%x)(%x)(%d)\n", f, g, x);
  return f(g(x));
}

int plus_helper(int x) {
  PFoIrI f = (PFoIrI) get_g2(),
         g = (PFoIrI) get_g3();
  printf("Plus_helper ((%x)+(%x))(%d)\n", f, g, x);
  return f(x)+g(x);
}

PFoIrI compose(PFoIrI f, PFoIrI g) {
  int i_f = (int) f, i_g = (int) g;
  return tramp_alloc(compose_helper, i_f, i_g, "compose");
}

PFoIrI plus_func(PFoIrI f, PFoIrI g) {
  int i_f = (int) f, i_g = (int) g;
  return tramp_alloc(plus_helper, i_f, i_g, "plus_func");
}

int zero(int i) {
  return 0;
}

int one(int i) {
  return 1;
}

int plus_one(int i) {
  return i+1;
}

int plus_two(int i) {
  return i+2;
}

int print_hidden_int(int i_f) {
  FILE * f = (FILE *) i_f;
  int x = get_g2();
  fprintf(f, "Get_g2() returned %d\n", x);
  return x;
}

#define MANY 6

main() {
  PFoIrI e,f,g,h;
  PFoIrI F[MANY];
  int i;
  int er, fr, gr, hr;

  e = tramp_alloc1(print_hidden_int, 0, "phi");
  f = tramp_alloc1(print_hidden_int, 1, "phi");
  g = tramp_alloc1(print_hidden_int, 2, "phi");
  h = tramp_alloc1(print_hidden_int, 3, "phi");

  tramp_dump(stdout);

  er = e((int)stdout);
  fr = f((int)stdout);
  gr = g((int)stdout);
  hr = h((int)stdout);

  fprintf(stdout, "e returned %d\n", er);
  fprintf(stdout, "f returned %d\n", fr);
  fprintf(stdout, "g returned %d\n", gr);
  fprintf(stdout, "h returned %d\n", hr);

  tramp_free(e);
  tramp_free(f);
  tramp_free(g);
  tramp_free(h);

  tramp_dump(stdout);

  F[0] = zero;
  F[1] = one;
  for (i = 2; i < MANY; i++) {
    F[i] = plus_func(F[i-1],F[i-2]);
  }

  tramp_dump(stdout);
  for (i = 0; i < MANY; i++) {
    fprintf(stdout, "%x(0) = %d\n", F[i], F[i](0));
  }
}
#endif
================================================================
! get_g2.il
	.inline get_g2,0
	mov	%g2,%o0
	.end

	.inline get_g3,0
	mov	%g3,%o0
	.end

	.inline  flush,1
	iflush %o0
	.end
================================================================
! get_g2.s
	.section ".text"
	.global get_g2
 get_g2:
	retl
	mov	%g2,%o0

	.global get_g3
 get_g3:
	retl
	mov	%g3,%o0

	.global flush
 flush:
	retl
	iflush %o0
================================================================

David Chase
Sun (speaking for myself)
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 17 20:09:23 EDT 1993
Xref: iecc comp.sys.super:2370 comp.lang.misc:10186 comp.lang.ada:9789 comp.compilers:4873
Newsgroups: comp.sys.super,comp.lang.misc,comp.lang.ada,comp.compilers
Path: iecc!compilers-sender
From: sanjeev@cs.uiuc.edu (Sanjeev Krishnan)
Subject: OOPSLA `93 Concurrent Objects Workshop
Message-ID: <93-07-054@comp.compilers>
Summary: Reminder for OOPSLA `93 concurrent objects workshop
Keywords: OOP, CFP, parallel, Ada
Sender: compilers-sender@chico.iecc.com
Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
Date: Fri, 16 Jul 1993 16:39:19 GMT
Approved: compilers@chico.iecc.com

                           *** REMINDER ***
                            Call for Papers
Workshop on Efficient Implementation of Concurrent Object-Oriented Languages
at OOPSLA '93.

The deadline is July 30, 1993, less than two weeks away. Participants
who wish to make a presentation need to submit a 2-5  page paper,
while other participants must submit a one-page statement. See the
full call for papers reproduced below for details. To help us estimate
the number of potential participants, please send us a short email if
you are planning on submitting (for presentation or participation),
but haven't done so yet.

-------------------------------------------------------------------------
Call for Papers						Call for Papers

			     Workshop on

Efficient Implementation of Concurrent Object-Oriented Languages

			    at OOPSLA '93

September 27, 1993 	(Monday, One day)

Concurrent object oriented approaches have many advantages for
programming parallel systems.  However, a major impediment to their widespread
acceptance for parallel programming is the perception that concurrent
object-oriented languages are inefficient (particularly compared to C
and Fortran).

The purpose of the workshop is to examine the efficiency of existing
concurrent object-oriented language implementations, discuss
techniques for improving the efficiency of such implementations, and
identify the challenges in reaching parity in efficiency.  An
important goal of the workshop to facilitate communication amongst
researchers and practitioners working in distinct communities, particularly
those building applications using concurrent object-oriented languages and
those building implementations of concurrent object-oriented languages.

The workshop will focus on all aspects of efficient implementation of
concurrent object-oriented programs.  An incomplete list of these
topics include:


	o Fine and Coarse-grained systems
	o Compilation techniques (static analysis and optimization)
	o Supporting data parallel computations
	o Run time issues (load balancing, scheduling, and message
		driven execution)
	o Experience identifying efficiency problems
	o Large-scale concurrent object-oriented programming experience

The workshop will last one day and be held in Washington, D.C. at the
site  of OOPSLA '93. Participants who wish to make a presentation are
required to submit a short position paper (2-5 pages) and should
specify if they would like to  give a 20-minute or 10-minute
presentation.  Other participants must also submit a position statement
(1 page).  Papers will be accepted by the organizers on the basis of
technical quality and the  availability of space.  All submissions
should be clearly marked with the author's name and electronic (or
regular) mail address and sent to the workshop coordinator.
Submissions must  be received by JULY 30, 1993.  Participants will be
notified of acceptance by August 20, 1993.

All the papers will be made available to the participants of the
workshop. If there is sufficient interest, we will consider a wider
distribution of the papers in the appropriate format.

Workshop Organizers:

L. V. Kale, University of Illinois (Co-ordinator, kale@cs.uiuc.edu)
Ian Angus, Boeing Computer Services
Andrew Chien, University of Illinois
Akinori Yonezawa, University of Tokyo

Submission and Contact Address:

Professor L. V. Kale
Department of Computer Science
University of Illinois at Urbana Champaign
1304 W. Springfield Ave.
Urbana, IL  61801
Email: oopsla-concobjs@cs.uiuc.edu
FAX: (217) 333-3501
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sun Jul 18 21:37:59 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: jfc@athena.mit.edu (John F Carr)
Subject: Re: Request for more info on trampolines
Message-ID: <93-07-055@comp.compilers>
Keywords: code, optimize, architecture
Sender: compilers-sender@chico.iecc.com
Organization: Massachusetts Institute of Technology
References: <93-07-026@comp.compilers> <93-07-041@comp.compilers>
Date: Sun, 18 Jul 1993 10:24:14 GMT
Approved: compilers@chico.iecc.com

pardo@cs.washington.edu (David Keppel) writes:
>For each system architecture, often there are techniques that allow
>creation of new code fragments, though modifying existing fragments may be
>slow.  For example, you can generate code in to a buffer shared between I
>and D.  The whole buffer is initially flushed from the I cache.  When a
>fragment is written to the buffer it can be executed directly without
>cache flushing operations, since, by construction, a part of the buffer
>that has just been written is also uncached.  Cache coherence is needed
>only when the buffer is exhausted and (code) space is reused.

This doesn't work on the RS/6000 models with split cache and write back
data cache.  On these systems the I cache is reloaded from main memory,
but the newly generated code may only be valid in the data cache.

It happens that this is not a problem on the RS/6000 because the standard
calling sequence loads a context pointer, so instead of trapoline code a
runtime generated function pointer can be used.  If you don't want to use
this software convention, the hardware has an unprivileged cache flush
instruction which invalidates a line in the I cache and stores back the
corresponding line in the D cache if it is dirty.

--
    John Carr (jfc@athena.mit.edu)
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sun Jul 18 21:40:11 EDT 1993
Xref: iecc comp.compilers:4875 misc.jobs.offered:32848
Newsgroups: comp.compilers,misc.jobs.offered
Path: iecc!compilers-sender
From: compilers-jobs@iecc.com
Subject: Compiler positions available for week ending July 18
Message-ID: <93-07-056@comp.compilers>
Keywords: jobs
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Sun, 18 Jul 1993 12:00:00 GMT
Approved: compilers@chico.iecc.com

This is a digest of ``help wanted'' and ``position available'' messages
received at comp.compilers during the preceding week.  Messages must
advertise a position having something to do with compilers and must also
conform to the guidelines periodically posted in misc.jobs.offered.
Positions that remain open may be re-advertised once a month.  To respond
to a job offer, send mail to the author of the message.  To submit a
message, mail it to compilers@iecc.com.


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

From: rjg@SSD.intel.com (Richard Greco)
Subject: Program Development Tools Engineer, Intel, Beaverton, Oregon, USA
Organization: Supercomputer Systems Division (SSD), Intel
Date: Thu, 8 Jul 1993 23:27:24 GMT

The Supercomputing Systems Division of Intel has a  position available now
in Beaverton, Oregon for a Software Engineer to work in sustaining program
development tools.

A more detailed description is attached.

Please mail resumes (please ABSOLUTELY no FAXes, no phone calls, no e-mail):

  Richard J. Greco
  Intel Corporation
  Supercomputer Systems Division
  Mail Stop CO1-01
  15201 N.W. Greenbrier Parkway
  Beaverton, OR   97006

==============================================================================
Software Engineer, Program Development Tools
Sustaining Engineer

Qualifications/Experience and Education:

Must have a BS and two years experience with program development tools
(debuggers / performance analysis tools), preferably in the UNIX
environment using the C language.  Ability to clearly communicate verbally
and in writing required.  Knowledge of parallel programming tools,
software evaluation, C++, and/or graphical user interfaces will be
beneficial.  Experience with supercomputer environments and requirements a
plus.

Duties specific to this job only:

As a part of a small team, you will sustain and improve the various
components created for an integrated set of program development tools for
a massively parallel supercomputer (debugger, graphic packages,
performance analyzer, etc.).  Initial responsibilities would include
sustaining the recently released tools.  This would involve interacting
with customer support, the evaluation team, and possibly customers.  The
responsibilities will grow as the individual shows the ability to handle
more.


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

From: rjg@SSD.intel.com (Richard Greco)
Subject: Program Development Tools Engineer, Intel, Beaverton, Oregon, USA
Organization: Supercomputer Systems Division (SSD), Intel
Date: Thu, 8 Jul 1993 23:26:29 GMT

The Supercomputing Systems Division of Intel has a position available now
in Beaverton, Oregon for a Senior Software Engineer, Programming Tools.

A more detailed description is attached.

Please mail resumes (please ABSOLUTELY no FAXes, no phone calls, no e-mail):

  Don Breazeal
  Intel Corporation
  Supercomputer Systems Division
  Mail Stop CO1-01
  15201 N.W. Greenbrier Parkway
  Beaverton, OR   97006

--Don

==============================================================================

Senior Software Engineer, Programming Toolset Architecture

Qualifications/Experience and Education

Must have a B.S. in computer science or related field and significant
(approximately 6 years) experience with program development tool
construction in the Unix environment using the C language. Knowledge of
parallel programming and/or graphical user interfaces is a must.  Ability
to clearly communicate verbally and in writing is required. Knowledge of
parallel and high-performance computer systems and requirements is also
required.  Knowledge of parallel languages, Fortran, and/or C++ is
required.  Experience with project scheduling, project management, and
collaboration with 3rd-party software vendors is desirable.  Experience
specifying the architecture and design of large software systems is also
desirable.

Duties Specific to the Job:

As a part of a small team, you will help define plans and architecture for
an integrated set of program development tools for a massively parallel
supercomputer (debugger, performance monitor, etc.). Responsibilities
include helping set directions for other groups within Intel so as to
benefit the tools environment. Other duties include specifying toolset
architecture and design, managing collaborations with researchers and
3rd-party software vendors, and integrating externally developed software
into a prototype integrated toolset.


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

From: rjg@SSD.intel.com (Richard Greco)
Subject: Program Development Tools Engineer, Intel, Beaverton, Oregon, USA
Organization: Supercomputer Systems Division (SSD), Intel
Date: Thu, 8 Jul 1993 23:25:48 GMT

The Supercomputing Systems Division of Intel has a position available now
in Beaverton, Oregon for Senior Software Engineer, (Program Development
Tools).

A more detailed description is attached.

Please mail resumes (please ABSOLUTELY no FAXes, no phone calls, no e-mail):

  William Auld
  Intel Corporation
  Supercomputer Systems Division
  Mail Stop CO1-01
  15201 N.W. Greenbrier Parkway
  Beaverton, OR   97006

==============================================================================
Senior Software Engineer, Program Development Tools,
Debug / Performance Analysis

Qualification/Experience and Education:

Must have a BS and four years experience with program development tools
(debuggers / performance analysis tools), preferably in the UNIX
environment using the C/C++ languages. Knowledge of parallel programming
issues and/or graphical user interfaces will be beneficial.  Ability to
clearly communicate verbally and in writing required. Experience with
supercomputer environments and requirements a plus.

Duties Specific to the Job:

As part of a small development team, you will work on a number of program
development tools, including parallel debugging and performance analysis
tools for a massively parallel UNIX system. Your responsibilities will
include maintaining and extending these tools as they cycle through each
product release.

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

Organization: Scientific Placement, Inc.
From: Karl_Skadowski@spi.com (Karl Skadowski)
Date: Thu, 15 Jul 1993 15:17:58 CST
Subject: Compiler Cowboys for Texas

 From Karl Skadowski @ Scientific
 Placement, Inc. Box 19949, Houston,
 TX 77224
 713-496-6100   (fax 496-6802)

North Texas client needs an HPF (high performance fortran) compiler
developer for the next generation parallel computers.  Send me your resume
showing you have the experience necessary to move into that (new standard)
area, and I'll try to get you an interview.

REQUIRED: SEVERAL YEARS OF RECENT PRACTICAL DEVELOPMENT EXPERIENCE IN
COMPILERS.
DESIRED: Actual recent experience with FORTRAN compiler development.
Actual recent experience with parallel processor compilers.
TO DIE FOR: Actual HPF parallel FORTRAN compiler development.

Please send a resume in plain text format via email to:

Karl Skadowski
Scientific Placement, Inc., Box 19949, Houston, TX 77224
713-496-6100  Fax: 713-496-6802
Internet: kjs@scientific.com;
Compuserve: 71250,3001;
AppleLink: D1580
Formats: Ascii text via Email preferred. Macintosh or PC Word processor
formats are OK via Email (binhex). Please do not send LaTex or Postscript.
Fax is discouraged unless Fine or Detail Setting on your fax machine is
used (to enable OCR scanning). US Mail on 3.5 inch diskette is OK too.
Immigration status: You must be a U.S. or Canadian Citizen or have a
Permanent Residence Visa. New graduates: NO.  This position requires years
of practical experience.

Karl Skadowski, Scientific Placement, Inc.
Box 19949 Houston, TX 77079
713-496-6100 (voice)    713-496-6802 (fax)
KJS@Scientific.com -or- D1580@APPLELINK.APPLE.COM
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sun Jul 18 21:40:59 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Richard Chapman <chapman@cs.cornell.EDU>
Subject: Cross-compiler needed: generate MIPS code on a Sparc
Message-ID: <93-07-057@comp.compilers>
Keywords: C, GCC, question, sparc
Sender: compilers-sender@chico.iecc.com
Organization: Cornell Univ. CS Dept, Ithaca NY 14853
Date: Sun, 18 Jul 1993 21:08:50 GMT
Approved: compilers@chico.iecc.com

Does anyone know of a cross-compiler to generate MIPS binaries on a
Sparcstation?  I thought of using gcc, but in the gcc documentation I
found the following:

   * Cross-compilers for the Mips as target do not work because the
     auxiliary programs `mips-tdump.c' and `mips-tfile.c' can't be
     compiled on anything but a Mips.

Any other ideas?

Thanks,
Richard Chapman
chapman@cs.cornell.edu
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Mon Jul 19 10:00:09 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Eric Muller <muller@src.dec.com>
Subject: Re: Cross-compiler needed: generate MIPS code on a Sparc
Message-ID: <93-07-058@comp.compilers>
Keywords: C, GCC
Sender: compilers-sender@chico.iecc.com
Organization: DEC Systems Research Center
References: <93-07-057@comp.compilers>
Date: Mon, 19 Jul 1993 07:24:28 GMT
Approved: compilers@chico.iecc.com

Richard Chapman <chapman@cs.cornell.EDU> writes:
|> [cross compiling GCC for MIPS seems impossible because the doc says]
|>    * Cross-compilers for the Mips as target do not work because the
|>      auxiliary programs `mips-tdump.c' and `mips-tfile.c' can't be
|>      compiled on anything but a Mips.

The mips-tdump program is not used by gcc, it is only a tool to debug
mips-tfile.  mips-tfile needs to run only if you are compiling with
debugging information.  So if you don't need debugging, the
documentation does not apply.

--
Eric.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Mon Jul 19 10:25:01 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: meissner@osf.org
Subject: Cross-compiler needed: generate MIPS code on a Sparc
Message-ID: <93-07-059@comp.compilers>
Keywords: C, GCC
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
References: <93-07-057@comp.compilers>
Date: Mon, 19 Jul 1993 14:22:13 GMT
Approved: compilers@chico.iecc.com

| [re cross-compiling GCC for Mips, doc says]
|
|    * Cross-compilers for the Mips as target do not work because the
|      auxiliary programs `mips-tdump.c' and `mips-tfile.c' can't be
|      compiled on anything but a Mips.

The current release of GCC (2.4.5) does support building a cross
compiler for the MIPS, provided you configure it --with-gnu-as and
--with-gnu-ld.  You have to also get the current released versions of
the GNU assembler (2.1.1) and GNU binutils (2.2.1) which provide MIPS
support.  When gcc is configured for using the GNU assembler, it does
not use nor build the mips-tfile and mips-tdump programs.
--
Michael Meissner	email: meissner@osf.org		phone: 617-621-8861
Open Software Foundation, 11 Cambridge Center, Cambridge, MA, 02142
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Mon Jul 19 11:28:23 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: cliffc@rice.edu (Cliff Click)
Subject: Re: Language to bootstrap compiler?
Message-ID: <93-07-060@comp.compilers>
Keywords: forth, tools
Sender: compilers-sender@chico.iecc.com
Organization: Center for Research on Parallel Computations
References: <93-07-044@comp.compilers>
Date: Mon, 19 Jul 1993 16:15:39 GMT
Approved: compilers@chico.iecc.com

winters@access.digex.net (Michael Winters) writes:
   I have come up with the idea, although I doubt it is very original, to try
   and bootstrap a language using FORTH.
   ...
   Has anyone had experience with implementing compilers or interpreters in
   FORTH, instead of writing, for example, a PASCAL compiler, in C?

Well, I've had extensive experience writing Forth systems (although not as
extensive as Charles Moore's!), and other languages in Forth.  I'd say
that today there are better alternatives than Forth for all but the
simplest languages (10 years ago I would not say this).

I personally am using C++ the guts for my latest compiler.  Caveat: it's a
research tool (i.e. not a production compiler).  Check out the Borland C++
programming environment, it's very nice.

Cliff
--
cliffc@cs.rice.edu, Massively Scalar Compiler Group
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Mon Jul 19 11:30:05 EDT 1993
Xref: iecc comp.compilers:4880 gnu.gcc.help:5365
Newsgroups: comp.compilers,gnu.gcc.help
Path: iecc!compilers-sender
From: lsheng@cs.bu.edu (le-ju sheng)
Subject: HELP??? parsing loops in gcc...
Message-ID: <93-07-061@comp.compilers>
Keywords: GCC, optimize, question, comment
Sender: compilers-sender@chico.iecc.com
Organization: Computer Science Department, Boston University, Boston, MA, USA
Date: Mon, 19 Jul 1993 15:24:45 GMT
Approved: compilers@chico.iecc.com

Whoever can give me some idea...

I'm trying to write a loop dependence checker in GNU compiler.

first of all, I have to parse a,b,c,d constants from the arrays in loops,
eg.,

      :
    for(i=1; i< 100; i++)
    {
       A[2*i] = A[2*i-1];              /* a=2, b=0, c=2, d=-1 */
         :
         :
    }
       :
       :

I'm not familiar with the gcc compiler.  If anyone can tell me
'where-which file' in gcc was concerned about the loop arrays that I
can modify to include a dependent function, it'd be very appreciated.

-miranda
[Does GCC do any loop analysis at all? -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Mon Jul 19 17:04:02 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: N.Winton@axion.bt.co.uk (Neil Winton)
Subject: Re: Garbage Collector for C Wanted
Message-ID: <93-07-062@comp.compilers>
Keywords: C, GC
Sender: compilers-sender@chico.iecc.com
Organisation: BT Laboratories, Martlesham Heath, IPSWICH UK
Organization: BT Laboratories
References: <93-07-047@comp.compilers>
Date: Mon, 19 Jul 1993 15:41:32 GMT
Approved: compilers@chico.iecc.com

eppler@bordeaux.informatik.uni-kl.de (Reinhard Eppler) writes:
|> I need a garbage collector with reference counting written in C(++).
|> Is anyone out there who can help me?

Errm, well not exatly what you are looking for but I have written a
drop-in replacement for malloc() which does a mark-and-sweep GC for C.  I
don't know whether I can release (probably not) it but I can probably
discuss how I went about it if you are interested ...

Oh, I also did a set of wrapper routines which used the same philosophy to
do the mark-and-sweep but which don't require that you replace malloc().
This is much easier but you only get to garbage-collect stuff that has
been allocated via the wrappers.

	Neil

*   Neil Winton			G306a, SSTF Building
*   N.Winton@axion.bt.co.uk	BT Laboratories
*   Tel +44 473 646079		Martlesham Heath
*   Fax +44 473 643019		IPSWICH IP5 7RE, UK
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Mon Jul 19 19:17:54 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: boehm@parc.xerox.com (Hans Boehm)
Subject: Re: Garbage Collector for C Wanted
Message-ID: <93-07-063@comp.compilers>
Keywords: C, GC, FTP
Sender: compilers-sender@chico.iecc.com
Organization: Xerox PARC
References: <93-07-047@comp.compilers> <93-07-062@comp.compilers>
Date: Mon, 19 Jul 1993 22:16:50 GMT
Approved: compilers@chico.iecc.com

N.Winton@axion.bt.co.uk (Neil Winton) writes:
>Errm, well not exatly what you are looking for but I have written a
>drop-in replacement for malloc() which does a mark-and-sweep GC for C.  I
>don't know whether I can release (probably not) ...

There is a collector in parcftp.xerox.com:pub/russell/gc.tar.Z that does
exactly this.  There is also an incremental version (version 3.0) in the
same directory, but it's not quite ready for prime time yet.  This runs
under many UNIX versions and OS/2.

Codewright's Toolworks (with which I am not associated) sells something
vaguely similar for PCs running DOS.

>Oh, I also did a set of wrapper routines which used the same philosophy to
>do the mark-and-sweep but which don't require that you replace malloc().

You can get significantly better performance by building an allocator that
cooperates more with the garbage collector.  For example, with
sufficiently small average object size, our collector often outperforms
malloc/free, since en masse deallocation can be much cheaper than many
free calls.  It's also cheaper to allocate objects so as to minimize the
danger of integers "pointing to" the heap.

Hans-J. Boehm
(boehm@parc.xerox.com)
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Tue Jul 20 10:12:53 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: babu@wipro.wipsys.soft.net (Satish Babu)
Subject: Re: yacc error clauses
Message-ID: <93-07-064@comp.compilers>
Keywords: yacc, errors
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
References:  <93-07-052@comp.compilers>
Date: Tue, 20 Jul 1993 06:31:18 GMT
Approved: compilers@chico.iecc.com

> item_list
>         : item
>         { $$= $1; }
>
>         | item_list COMMA item
>         { $3->add_item($1); $$= $3; }
>
>         | item_list COMMA error
>         { delete $1; $$= 0; }

The error production can't catch the error in the first 'item'
in an 'item_list'. So, one more error production

      item_list  :  error

is necessary to do this. The error recovery ignores input tokens until the
follow of 'item_list' ( I can see COMMA, EQ) is encountered. Here, the
'item_list' is not yet formed, so no deletion is possible. The
introduction of this production may cause some conflicts, which can be
removed.

The 'yyerrok' is to be called (I hope you are doing so) to reset YACC's
error flag at appropriate places.

> item_list_use
>         : item_list EQ item_list
>         { $$= new item_list_use($1, $3); }
>
> What error productions do we need for item_list_use?

If the error production I suggested for 'item_list' is added, then no
others are necessary for 'item_list_use'. (Hoping that you don't want to
catch error for EQ).

I worked extensively with YACC in developing a Pascal Compiler. I'm
glad to help for any other problem in formulating error productions.

 ---   K.Satish Babu
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Tue Jul 20 11:35:23 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: pollock@sol.cis.udel.edu (Lori Pollock)
Subject: PLDI '94 Call for Papers (June 94, Orlando)
Message-ID: <93-07-065@comp.compilers>
Keywords: CFP, conference
Sender: compilers-sender@chico.iecc.com
Organization: University of Delaware, Newark
Date: Tue, 20 Jul 1993 13:14:44 GMT
Approved: compilers@chico.iecc.com

                                Call for Papers
                           ACM SIGPLAN Conference on
                 Programming Language Design and Implementation
         Walt Disney World Village, Orlando, Florida, June 20-24, 1994



PLDI'94 continues the series of broad-based language and compiler design
conferences.  The conference will provide a forum for researchers and
developers to gain awareness of current practical and experimental work
across the breadth of the field.  Emphasis will be placed on experimental
results and experience with the languages and techniques described.  The
conference seeks original papers relevant to practical issues concerning
the design, development, implementation, and use of programming
languages (in contrast to the POPL symposium which is oriented more toward
foundations).  The conference does not favor any particular programming
paradigm or support architecture.  Conference topics include:

     compiler construction    design and use of languages
     storage management       benchmarks and assessment
     program analysis         optimizations for scalar/parallel architectures
     debugging                incremental and interactive methods
     interpretation           intermediate and internal representations
     translation validation
     implementation for non-traditional languages/architectures


Authors should submit either a PostScript file (our preferred submission
method) or send fifteen double-sided copies of an extended abstract to the
program chair; persons without access to photocopiers may submit a single
copy.  The first sheet of the abstract (not the cover letter) must include
the phone number and street and Internet addresses for the corresponding
author.  Abstracts must not exceed 5000 words (approximately 10 pages
typeset 10-point on 16-point spacing, or 15 pages if typewritten
double-spaced).  Excessively long abstracts will be rejected immediately
by the program chair.  Papers awaiting acceptance by any other conference
are ineligible for PLDI'94; if a closely related paper has been submitted
to a journal, the authors must notify the program chair.


The abstract must be organized so that it is easily understood by a broad
audience.  The abstract should clearly identify what has been
accomplished, why it is significant, and how it compares with prior work.
Abstracts will be judged on clarity, significance, relevance, correctness,
and originality.  Suggestions for writing abstracts, as well as other
conference-related announcements, are available by anonymous ftp from
speedy.cs.pitt.edu:pub/pldi94.


November 5, 1993 is the strict deadline for receipt of submissions.
Authors will be notified of acceptance or rejection by January 24, 1994.
Full versions of the accepted papers must be formatted according to ACM
conventions, and a camera-ready copy must be received by the program chair
no later than March 12, 1994.  Authors of accepted papers must sign an ACM
copyright release form.  Proceedings will be distributed at the conference
and as a special issue of SIGPLAN Notices.  All papers published in the
proceedings are eligible for publication in refereed ACM publications at
the discretion of the editor.


Program Committee

Craig Chambers, University of Washington
Rajiv Gupta, University of Pittsburgh
Francois Irigoin, Ecole des Mines
Peter Markstein, Hewlett Packard Laboratories
Tom Marlowe, Seton Hall University
James McGraw, Lawrence Livermore National Laboratory
Rishiyur Nikhil, DEC Cambridge Research Laboratory
Anne Rogers, Princeton University
Vivek Sarkar, IBM Santa Teresa Laboratory
Linda Torczon, Rice University
G.A. Venkatesh, Bell Communications Research
Michael Wolfe, Oregon Graduate Institute
Benjamin Zorn, University of Colorado


The conference will be preceded by two days of tutorials on June 20-21.
PLDI'94 will be co-located with the Conference on Lisp and Functional
Programming as well as with several related workshops.  Announcement of
tutorial topics and workshops will be provided in the conference advance
program, on the Internet newsgroup comp.lang.sigplan, and through the
anonymous ftp account listed above.  Child care will be available at the
conference at additional cost, by advance reservation.


Program Chair
Vivek Sarkar
IBM Santa Teresa Laboratory, J57/E222
555 Bailey Avenue
San Jose, California 95141 USA
vivek_sarkar@vnet.ibm.com

General Co-Chairs
          Barbara Ryder              Mary Lou Soffa
          Dept of Computer Science   Dept of Computer Science
          Rutgers University         University of Pittsburgh
          New Brunswick, NJ 08903    Pittsburgh, PA 15260
          ryder@cs.rutgers.edu       soffa@cs.pitt.edu
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Tue Jul 20 12:28:24 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: krishnas@ratna.Eng.Sun.COM (Krishna Subramanian)
Subject: Re: Recommendation wanted: good book on dat
Message-ID: <93-07-066@comp.compilers>
Keywords: optimize, bibliography
Sender: compilers-sender@chico.iecc.com
Organization: Sun Microsystems, Inc.
References: <93-07-038@comp.compilers>
Date: Tue, 20 Jul 1993 16:09:10 GMT
Approved: compilers@chico.iecc.com

Another fairly decent coverage of compiler optimizations and data flow
techniques is:

Supercompilers for Parallel and Vector Computers
Hans Zima and Barbara Chapman
acm press, Addison-Wesley Publishing Company
ISBN 0-201-17560-6

This book is available from ACM Press, I think it costs around $35.

krishna
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Tue Jul 20 16:35:41 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: pardo@cs.washington.edu (David Keppel)
Subject: Re: Garbage Collector for C Wanted
Message-ID: <93-07-067@comp.compilers>
Keywords: C, GC
Sender: compilers-sender@chico.iecc.com
Organization: Computer Science & Engineering, U. of Washington, Seattle
References: <93-07-047@comp.compilers>
Date: Tue, 20 Jul 1993 19:47:50 GMT
Approved: compilers@chico.iecc.com

eppler@bordeaux.informatik.uni-kl.de (Reinhard Eppler) writes:
>I need a garbage collector with reference counting written in C(++).

Which reminds me that

%A Hans-J. Boehm
%A David Chase
%T A Proposal for Garbage-Collector-Safe C Compilation
%J Journal of C Language Translation
%D December 1992
%P 126-141

mentions that a conservative (non-reference counting) garbage collector
is available via anonymous ftp from "parcftp.xerox.com" in
"pub/russell/gc.tar.Z".  I haven't looked at it, but this seems like a
really great resource for people who are interested in GC.

	;-D on  ( I've been collecting garbage for years... )  Pardo
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul 21 17:20:58 EDT 1993
Xref: iecc comp.parallel:6545 comp.sys.super:2373 comp.compilers:4887
Newsgroups: comp.parallel,comp.sys.super,comp.compilers
Path: iecc!spdcc!das-news.harvard.edu!noc.near.net!uunet!gatech!hubcap!bounce-back
From: gregw@cs.anu.edu.au (Greg Wilson (EXP 31 dec 93))
Subject: Parallel Computing Timeline (version 4) -- LONG
Message-ID: <1993Jul21.132613.17015@hubcap.clemson.edu>
Keywords: supercomputing, parallel computing, history of computing
Sender: fpst@hubcap.clemson.edu (Steve Stevenson)
Nntp-Posting-Host: chara.anu.edu.au
Reply-To: gregw@cs.anu.edu.au
Organization: Australian National University
Follow-Up: comp.parallel
Date: 21 Jul 1993 05:57:49 GMT
Approved: parallel@hubcap.clemson.edu
Lines: 1132

The LaTeX document included below is a timeline-style history of parallel computing,
and of supercomputing more generally.  It is still incomplete, and I would welcome
more information about machines of the 1960s and early 1970s, about the development
of vectorising compiler technology, and about parallel functional and logic languages.

Cheers,

Greg Wilson

_______________________________________________________________________________________


\documentstyle[bigtabular,11pt]{article}
\setlength{\parindent}{0cm}
\newcommand{\yr}[1]{\item[{#1}:]~}
\newcommand{\event}[4]{%
\item[~~]{#4}%
{\begin{small}\begin{em}({#3}: {#2}.)\end{em}\end{small}}}
\begin{document}

\begin{large}
{\sc{Introduction}}
\end{large}

\bigskip

This document is a timeline of major developments in parallel computing.
It will eventually appear as part of a textbook on parallel programming,
but might also be separately published.
All contributions and corrections are welcomed,
and should be sent to \verb`gregw@cs.anu.edu.au`.

\bigskip

\begin{large}
{\sc{Guidelines}}
\end{large}

\begin{enumerate}
\item	When submitting corrections or additions,
	please submit {\em{only}\/} the new material,
	not an edited copy of this whole document.
\item	Please include your initials in every entry you submit,
	and add them to every entry you change.
\item	Please remember to put each item in the keyword listing
	(field \#2 of each event entry) in braces,
	so that they may be extracted automatically.
\end{enumerate}

\bigskip

\begin{large}
{\sc{Contributors}}
\end{large}

The following have contributed or corrected articles;
I am particularly grateful to Michael Wolfe,
whose generous early assistance got this off the ground,
and to Eugene Miya,
who provided many useful pointers.

\bigskip

\begin{Tabular}{lll}
TA	& Tamir Azaz		& \verb`tamir@meiko.co.uk` \\
EAB	& Edward Bertsch	& \verb`eab@msc.edu` \\
BMB	& Bruce Boghosian	& \verb`bmb@think.com` \\
BRC	& Brad Carlile		& \verb`bradc@cray.com` \\
WD	& Bill Dally		& \verb`billd@ai.mit.edu` \\
JD	& Jack Dongarra		& \verb`dongarra@cs.utk.edu` \\
JF	& John Feo		& \verb`feo@diego.llnl.gov` \\
JMF	& Jim Flemming		& \verb`flemming@vino.enet.dec.com` \\
WH	& Willi Hasselbring	& \verb`willi@informatik.uni-essen.de` \\
RWH	& Roger Hockney		& \verb`rwh@pac,soton.ac.uk` \\
RJ	& Rick Johnson		& \verb`rickj@ssd.intel.com` \\
LSK	& Larry Kaplan		& \verb`lkaplan@ultra.tera.com` \\
HGK	& Harwood Kolsky	& \verb`harwood@cse.ucsc.edu` \\
TL	& Tom Lovett		& \verb`tdl@sequent.com` \\
BM	& Barry Margolin	& \verb`barmar@think.com` \\
LFM	& Larry Meadows		& \verb`lfm@pgroup.com` \\
ENM	& Eugene Miya		& \verb`eugene@wilbur.nas.nasa.gov` \\
YO	& Yoshio Oyanagi	& \verb`oyanagi@is.s.u-tokyo.ac.jp` \\
JRR	& James R. Reinders	& \verb`reinders@ssd.intel.com` \\
PR	& Paul Repacholi	& \verb`zrepachol@cc.curtin.edu.au` \\
MS	& Matthias Schumann	& \verb`schumann@informatik.tu-muenchen.de` \\
MCS	& Markus Schwehm	& \verb`schwehm@immd7.informatik.uni-erlangen.de` \\
RS	& Roger Shepherd	& \verb`roger@inmos.co.uk` \\
MKS	& Mark Smotherman	& \verb`mark@cs.clemson.edu` \\
DS	& Douglas E. Solomon	& \verb`doug@sgi.com` \\
HSS	& Harold Stone		& \verb`hstone@sunset.ee.cornell.edu` \\
PDT	& Philip Tannenbaum	& \verb`b47tbaum@sx.iah.nec.com` \\
PGW	& Paul Whiting		& \verb`pgw@mel.dit.csiro.au` \\
GVW	& Greg Wilson		& \verb`gvw@epcc.ed.ac.uk` \\
MW	& Mike Wolfe		& \verb`mwolfe@cse.ogi.edu`
\end{Tabular}

\bigskip

\begin{large}
{\sc{Timeline}}
\end{large}

\bigskip

\begin{description}

\yr{1956}
\event{1956}{{IBM}, {STRETCH}}{MW,HGK}
	{IBM starts 7030 project (known as STRETCH),
	with the goal of producing a machine
	with 100 times the performance of the IBM 704,
	initiated by Atomic Energy Commission at Los Alamos.}

\yr{1958}
\event{1958}{{Bull}, {Gamma 60}}{MKS}
	{Bull of France announces the Gamma 60 with multiple function units
	and fork and join operations in its instruction set; 19 are later
	built.}

\yr{1959}
\event{1959}{{IBM}, {STRETCH}}{MW,HGK}
	{IBM delivers first STRETCH computer.
	Only seven are ever built,
	but much of the techology re-surfaces in the later IBM 7090 and 7094.}

\yr{1960}
\event{1960}{{CDC}, {Cray}, {CDC 6600}}{MW}
	{Control Data starts development of CDC 6600.}

\yr{1962}
\event{1962}{{Petri}, {Petri-Nets}}{WH}
	{C.~A.\ Petri describes Petri Nets.}

\yr{1964}
\event{1964}{{AEC}, {CDC}, {TI}, {Illiac}}{MW}
	{Atomic Energy Commission urges manufacturers to look at ``radical''
	machine structures.
	This leads to CDC Star-100, TI ASC, and Illiac-IV.}
\event{1964}{{CDC}, {Cray}, {CDC 6600}}{GVW}
	{Control Data Corporation produces CDC~6600,
	the world's first commercial supercomputer.}
\event{1964}{{Illiac-IV}}{MW}
	{Air Force signs Illiac-IV contract with University of Illinois.
	The project is led by Daniel Slotnick;
	primary subcontractors are Burroughs and Texas Instruments.}

\yr{1965}
\event{1965}{{IBM}, {IBM~2938}, {array processor}}{HGK}
	{IBM 2938 Array Processor delivered.
	A programmable digital signal processor,
	it proves very popular in the petroleum industry.}
\event{1965}{{GE}, {MIT}, {Bell Labs}, {Multics}, {symmetric multiprocessing}}{BM}
        {Multics project begun by GE, MIT, and AT\&T Bell Laboratory,
	to develop a general-purpose shared-memory multiprocessing
	timesharing system.}

\yr{1966}
\event{1966}{{Bernstein}, {compilation}, {data dependency}}{GVW}
	{Bernstein introduces Bernstein's Condition
	for statement independence,
	which is foundation of subsequent work on data dependency analysis.}
\event{1966}{{Flynn}, {taxonomy}}{GVW}
	{Flynn publishes paper describing architectural taxonomy.}

\yr{1967}
\event{1967}{{Amdahl}}{GVW}
	{Amdahl publishes paper questioning feasibility of parallel processing;
	his argument is later called ``Amdahl's Law''.}
\event{1967}{{IBM}, {IBM~360/91}}{MW,HGK}
	{IBM produces the 360/91 (later model 95)
	with dynamic instruction reordering.
	20 of these were produced over the next several years;
	the line was eventually replaced with the slower Model 85.}

\yr{1968}
\event{1968}{{Dijkstra}, {semaphore}}{GVW}
	{Edsger Dijkstra describes semaphores.}
\event{1968}{{dataflow}, {Stanford University}}{PGW}
	{Duane Adams of Stanford University coins the term ``dataflow''
	while describing graphical models of computation in his Ph.D thesis.}
\event{1969}{{Honeywell}, {Multics}, {symmetric multiprocessing}}{BM}
	{Honeywell delivers first Multics system
	(symmetric multiprocessor with up to 8 processors).}
\event{1968}{{CDC}, {Cyberplus}}{MW}
	{Group formed at Control Data to study computing needs for image
	processing; this leads to AFP and Cyberplus designs.}

\yr{1969}
\event{1969}{{CDC}, {Cray}, {CDC 7600}}{GVW}
	{CDC produces CDC~7600 pipelined supercomputer.}

\yr{1970}
\event{1970}{{FPS}}{GVM,BRC}
	{Floating Point Systems Inc.\ founded
	by former C~N~Winningstad and Tektronix employees
	to manufacture floating-point co-processors for minicomputers.}
\event{1970}{{DEC}, {asymmetric multiprocessor}}{JMF}
	{PDP-6/KA10 master/slave (asymmetric) multiprocessor
	jointly developed by MIT and DEC.}
\event{1970}{{C.mmp}, {CMU}}{GVW}
	{Development of C.mmp begins at Carnegie-Mellon.}

\yr{1971}
\event{1971}{{Dijkstra}, {dining philisophers}}{WH}
	{Edsger Dijkstra poses the dining philisophers problem which is often
	used to test the expressivity of new parallel languages.}
\event{1971}{{Intel}}{GVW}
	{Intel produces 4004 microprocessor (world's first single-chip CPU).}
\event{1971}{{CDC}, {Cyberplus}}{MW}
	{CDC delivers hardwired Cyberplus
	parallel radar image processing system to Rome Air Development Center,
	where it produces 250 times the performance of CDC~6600.}
\event{1971}{{TI}, {ASC}}{MW}
	{Texas Instruments delivers the Advanced Scientific Computer
	(also called Advanced Seismic Computer).
	Seven of these machines were developed.
	An aggressive automatic vectorizing Fortran compiler
	was developed for this machine.}

\yr{1972}
\event{1972}{{CDC}, {CRI}}{GVW}
	{Seymour Cray leaves Control Data Corporation,
	founds Cray Research Inc.}
\event{1972}{{Illiac-IV}, {NASA Ames}}{GVW}
	{Quarter-sized (64 PEs) ILLIAC-IV installed at NASA Ames.}
\event{1972}{{BBN}, {Pluribus}}{GVW}
	{BBN builds first Pluribus machines as ARPAnet switch nodes.}
\event{1972}{{Goodyear}, {Staran}}{MCS}
        {Goodyear produces STARAN, a $4{\times}256$ 1-bit PE array processor
        using associative addressing and a FLIP-network.}
\event{1972}{{Burroughs}, {PEPE}}{MCS}
        {Burroughs builds PEPE (Parallel Element Processor Ensemble) with 
        $8{\times}36$ processing elements and associative adressing.}
\event{1972}{{ICL}, {DAP}}{GVW}
	{Paper studies of massive bit-level parallelism done
	by Stewart Reddaway at ICL.
	These later lead to development of ICL DAP.}
\event{1972}{{DEC}, {asymmetric multiprocessor}}{JMF,PR}
	{TOPS-10 monitor for PDP-10 re-written by DEC
	to allow asymmetric multiprocessing.}

\yr{1974}
\event{1974}{{Hoare}, {monitors}}{GVW}
	{Tony Hoare describes monitors.}
\event{1974}{{MIT}, {dataflow}}{PGW}
	{Jack Dennis and David Misunas at MIT publish first paper describing
	a dataflow computer.}
\event{1974}{{IBM}, {IBM~3838}, {array processor}}{HGK}
	{IBM 3838 array processor
	(a general-purpose digital signal processor) delivered.}
\event{1974}{{ICL}, {DAP}}{GVW}
	{Work begins on prototype DAP (Distributed Array Processor) at ICL.}
\event{1974}{{BSP}}{MW}
	{Design begins on Burroughs Scientific Processor (BSP).}
\event{1974}{{Denelcor}, {HEP}}{GVW}
	{Burton Smith begins designing context-flow
	Heterogeneous Element Processor (HEP) for Denelcor.}
\event{1974}{{IBM}, {VECTRAN}, {FORTRAN}}{HGK}
	{The IBM language VECTRAN,
	a major input to FORTRAN 8X,
	developed for the 3838.}

\yr{1975}
\event{1975}{{Dijkstra}, {guarded commands}}{WH}
	{Edsger Dijkstra describes guarded commands.}
\event{1975}{{Illiac-IV}}{MW}
	{Illiac-IV becomes operational at NASA Ames after concerted 
	check out effort.}
\event{1975}{{CMU}, {Cm*}}{GVW}
	{Work begins at Carnegie-Mellon University on Cm*,
	with support from DEC.}
\event{1975}{{Intel}, {iAPX 432}}{GVW}
	{Design of iAPX 432 (symmetric multiprocessor) begins at Intel.}
\event{1975}{{CDC}, {Cyber}}{MW}
	{Cyber~200 project begins at Control Data.}

\yr{1976}
\event{1976}{{CRI}, {Cray-1}}{MW}
	{First Cray-1 delivered to Los Alamos National Laboratory.}
\event{1976}{{Goodyear}, {PEPE}}{MCS}
        {Borroughs delivers PEPE to BMDATC Advanced Research Center, 
        Huntsville, Alabama}
\event{1976}{{CDC}, {Flexible Processor}}{MW}
	{Control Data delivers Flexible Processor, 
	a programmable signal processing unit.}
\event{1976}{{FPS}, {array processor}, {LIW}}{BRC}
	{Floating Point Systems Inc.\ delivers 38-bit AP-120B 
	array processor that issues multiple pipelined instructions 
	every cycle.}
\event{1976}{{FPS}, {software pipelining}, {array processor}}{BRC}
	{Floating Point Systems Inc.\ describes loop wrapping,
	later called software pipelining,
	to program pipelined multiple instruction issue processors.}

\yr{1977}
\event{1977}{{$n_{1/2}$},${r_{\infty}}$,{performance metrics}}{RWH}
	{Roger Hockney introduces $n_{1/2}$ and $r_{\infty}$
	as metrics for pipelined and other architectures.}
\event{1977}{{CMU}, {C.mmp}}{GVW}
	{C.mmp hardware completed at Carnegie-Mellon University
	(crossbar connecting minicomputers to memories).}
\event{1977}{{Davis}, {University of Utah}, {Burroughs Corporation}, {DDM1}, {static dataflow}}{PGW}
	{Al Davis of the University of Utah, in collaboration with the
	Burroughs Corporation, builds the first operational hardware
	dataflow processor called the DDM1 (Data-Driven Machine 1).
	This is based on the static model of dataflow token scheduling.}
\event{1977}{{Goodyear}, {MPP}}{MW}
	{Massively Parallel Processor project first discussed at NASA
	for fast image processing.}
\event{1977}{{BLAS}, {standards}, {LINPACK}}{JD}
        {Defacto standards activity started by the linear algebra community
	to define basic vector operations used in linear algebra. 
	The collection is called the Basic Linear Algebra Subprograms or BLAS.
	Later the name is changed to the Level 1 BLAS.
	Project to develop a portable software package used to solve systems
	of linear equation is started, this effort is called 
	the LINPACK project.}

\yr{1978}
\event{1978}{{Fortune}, {Wyllie}, {PRAM}}{GVW}
	{Fortune and Wyllie publish paper describing the PRAM model.}
\event{1978}{{Lamport}, {virtual time}}{GVW}
	{Leslie Lamport describes algorithm for creating
	partial order on distributed events.}
\event{1978}{{Hoare}, {CSP}}{WH}
	{Tony Hoare describes CSP.}
\event{1978}{{Backus}, {FP}, {dataflow}}{PGW}
	{John Backus (inventor of Fortran) publishes paper on FP systems,
	arguing that dependence on conventional languages
	has made the development and use of
	non-von Neumann architectures uneconomical,
	and has deprived computer architects of
	an intellectual foundation for new computers.}
\event{1978}{{Arvind}, {Gostelow}, {Plouffe}, {U-Interpreter}, {dynamic dataflow}, {Id}}{PGW}
	{Arvind, Kim Gostelow and Wil Plouffe
	(at the University of California, Irvine)
	describe the Unravelling Interpreter (U-Interpreter),
	which exploits even greater concurrency than
	the static dataflow model.
	This idea comes to be referred to as the dynamic dataflow model.
	The dataflow language Id (Irvine dataflow) is introduced.}
\event{1978}{{BBN}, {Butterfly}}{GVW, HSS}
	{BBN begins design of distributed-shared memory machine
	based around ``butterfly'' switch,
	with its roots in work on perfect-shuffle networks by Stone (1972)
	and on Omega networks by Lawrie (1975).}

\yr{1979}
\event{1979}{{Kermani}, {Kleinrock}, {virtual cut-through}, {message routing}}{GVW}
	{Parviz Kermani and Leonard Kleinrock describe
	the virtual cut-through technique for message routing.}
\event{1979}{{ICL}, {DAP}}{GVW}
	{ICL DAP delivered to Queen Mary College, London ---
	world's first commercial massively parallel computer.}
\event{1979}{{Inmos}}{GVW}
	{Inmos set up by British government to develop and produce
	memory chips and microprocessors.}
\event{1979}{{Denelcor}, {HEP}}{GVW}
	{First single-processor prototype of Denelcor HEP operational.}
\event{1979}{{dataflow}, {CERT-ONERA}, {LAU}}{PGW}
	{The first dataflow multiprocessor (with 32 processors)
	becomes operational at CERT-ONERA in Toulouse, France.
	It is based on the static model and is known as the LAU system
	after its programming language (Language en Assignation Unique).}
\event{1979}{{dataflow}, {TI}, {DDP}}{PGW}
	{Texas Instruments begins work on the DDP (Data-Driven Processor),
	based on the static model,
	and on a FORTRAN compiler to run on it.}
\event{1979}{{IBM}, {RISC}, {IBM~801}}{HGK}
	{IBM's John Cocke designs the 801,
	the first of what are later called RISC architectures.}
\event{1979}{{BLAS}, {standards}, {Linpack Benchmark}, {Cray-1}}{JD}
        {Level 1 BLAS published/released.
        LINPACK software package complete and released; the LINPACK
        Users' Guide finished; the Linpack Users' Guide contains the
        first LINPACK Benchmark Report, with 17 machines ranging from
	the DEC PDP-10 to the Cray 1
	which achieves 4 MFLOPS for a $100^2$ matrix
	at full precision on a single processor.}

\yr{1980}
\event{1980}{{Schwartz}, {ultracomputer}}{HSS}
	{J.~T.\ Schwartz publishes paper describing and analysing
	the ultracomputer model,
	in which processors are connected in a shuffle/exchange graph.}
\event{1980}{{Teradata}}{GVW}
	{Teradata spun off from Citibank to develop
	parallel database query computers.}
\event{1980}{{BSP}}{MW}
	{Burroughs Scientific Processor project cancelled
	after one sale but before delivery.}
\event{1980}{{PPA}}{YO}
	{Mitsui Shipbuilding Company installs
	a 32-processor ring array called PPA
	at Hokkaido University, Japan.}
\event{1980}{{DEC}, {symmetric multiprocessor}}{JMF}
	{DEC develops KL10 TOPS-10 based symmetric multiprocessor
	(up to three CPUs supported,
	but a customer built a five-CPU system).}

\yr{1981}
\event{1981}{{Preparata}, {Vuillemin}, {cube-connected cycles}}{GVW}
	{Franco Preparata and Jean Vuillemin describe
	the cube-connected cycles topology.}
\event{1981}{{Caltech}, {hypercube}, {Seitz}, {Fox}}{GVW}
	{Carver Mead gives seminar on massive parallelism at
	California Institute of Technology;
	inspires development of Cosmic Cube hypercube at Caltech
	by group led by Charles Seitz (computer science)
	and Geoffrey Fox (physics).}
\event{1981}{{BBN}, {Butterfly}}{GVW}
	{First BBN Butterfly delivered ---
	68000s connected through multistage network to disjoint memories,
	giving appearance of shared memory.}
\event{1981}{{Intel}, {iAPX 432}}{GVW}
	{iAPX~432 prototype completed; Intel abandons project.}
\event{1981}{{DEC}, {VAX}, {asymmetric multiprocessor}}{JMF, PR}
	{DEC produces VAX~11/782 asymmetric multiprocessor;
	a small number of 4-processor machines (11/784) are built.}
\event{1981}{{CDC}, {Cyber}}{MW}
	{Control Data delivers Cyber~205 vector supercomputer.}
\event{1981}{{Manchester}, {dataflow}}{PGW}
	{The first dynamic dataflow computer becomes operational
	at the University of Manchester.}
\event{1981}{{FPS}, {FPS-164}, {array processor}, {LIW}, {mini-supercomputer}}{BRC}
	{Floating Point Systems Inc.\ delivers 64-bit FPS-164
	array processor that issues multiple pipelined instructions 
	every cycle,
	start of mini-supercomputer market.}
\event{1981}{{Silicon Graphics}, {IRIS}, {Clark}}{DS}
        {Silicon Graphics Inc.\ is founded in late 1981, by James H.\ Clark
        and others to develop the IRIS, a high-performance
        graphics workstation.} 

\yr{1982}
\event{1982}{{Illiac-IV}}{GVW}
	{Illiac-IV decommissioned.}
\event{1982}{{CRI}, {Cray-X/MP}}{GVW}
	{Steve Chen's group at Cray Research produces first
	X/MP machine (2 pipelined processors with shared memory).}
\event{1982}{{Denelcor}, {HEP}}{GVW}
	{First Denelcor HEPs installed in US.}
\event{1982}{{S-810}, {Hitachi}}{YO}
	{Hitachi introduces S-810/10 and S-810/20 vector supercomputers.}
\event{1982}{{CDC}, {AFP}}{MW}
	{Control Data improves Flexible Processor to make
	Advanced Flexible Processor.} 
\event{1982}{{Caltech}, {hypercube}, {MPI}}{GVW}
	{Cosmic Cube hypercube prototype operational at Caltech;
	first predecessor of CrOS (Crystalline Operating System) running.}
\event{1982}{{Convex}}{GVW}
	{Convex founded to pursue mini-supercomputer market.}
\event{1982}{{Alliant}, {FX/8}}{GVW}
	{Alliant founded;
	delivers first FX/8 vector multiprocessor machines 
	using a custom implementation of an
	extended Motorola 68020 instruction set.}

\yr{1983}
\event{1983}{{DARPA}}{MW}
	{DARPA starts Strategic Computing Initiative, which helps fund
	such machines as Thinking Machines Connection Machine,
	BB\&N Butterfly, WARP from Carnegie Mellon University
	and iWarp from Intel Corp.}
\event{1983}{{Caltech}, {hypercube}, {NCube}}{GVW}
	{Full Cosmic Cube hypercube running at Caltech;
	work begins on Mark~II.
	John Palmer (of Intel) sees Caltech machines,
	and leaves Intel to found NCube.}
\event{1983}{{Fujitsu}, {VP-200}}{YO}
	{Fujitsu ships first VP-200 vector supercomputer.}
\event{1983}{{NEC}, {SX-1}}{YO}
	{NEC introduces SX-1 vector supercomputer.}
\event{1983}{{Goodyear}, {MPP}}{MW}
	{Massively Parallel Processor delivered by Goodyear Aerospace
	to NASA Goddard.}
\event{1983}{{DEC}, {symmetric multiprocessor}, {VAX}}{JMF}
	{Loosely-coupled VAXclusters supported by DEC's VMS operating system.}
\event{1983}{{Myrias}}{GVW}
	{Myrias Research founded as spin-off from University of Alberta
	to build shared-memory mini-supercomputers.}
\event{1983}{{SCS}}{MW}
	{Scientific Computer Systems founded to design
	and market a Cray-compatible minisupercomputer.}
\event{1983}{{TMC}}{BMB}
	{Thinking Machines Corporation founded;
	Sheryl Handler selects Danny Hillis' Ph.D.\ thesis project
	as basis for massively-parallel AI supercomputer.}
\event{1983}{{CDC}, {ETA}}{GVW}
	{ETA Systems, Inc. spun off from CDC
	to develop a new generation of vector supercomputers.}
\event{1983}{{Encore}}{GVW}
	{Encore founded.}
\event{1983}{{Sequent}, {Intel}, {iAPX 432}}{GVW,TL}
	{Sequent founded.
	Several of its founders
	are former members of Intel iAPX~432 project.}
\event{1983}{{Linpack Benchmark}, {Cray-1}}{JD}
	{Cray-1 with 1 processor achieves 12.5 MFLOPS
	on $100^2$ LINPACK.}
\event{1983}{{Occam}}{RS}
	{David May publishes first description of Occam,
	a concurrent programming language closely associated with the transputer.}
\event{1983}{{SISAL}, {functional languages}}{JF}
	{Sisal 1.0 (Streams and Iterations in a Single-Assignment Language)
	language definition released by
	Lawrence Livermore National Laboratory (LLNL),
	Colorado State University,
	DEC, and University of Manchester.
	A derivative of VAL, the language included array operations,
	streams, and iterations.}

\yr{1984}
\event{1984}{{Mehlhorn}, {Vishkin}, {PRAM}, {emulation}}{GVW}
	{Kurt Mehlhorn and Uzi Vishkin describe how various classes of PRAM
	can simulate one another.
	This work forms the basis for Valiant's later work
	on random routing and optimality.}
\event{1984}{{Sequent}, {Balance}}{GVW,TL}
	{Sequent produces first shared-memory Balance multiprocessors,
	using NS32016 microprocessors
	and proprietary DYNIX symmetric operating system.}
\event{1984}{{PAX-64J}}{YO}
	{Mitsui Shipbuilding Company installs a two-dimensional toroidal
	array of processors, PAX-64J,
	at the University of Tsukuba, Japan.}
\event{1984}{{CRI}, {Cray-X/MP}}{GVW}
	{Cray X/MP family expanded to include 1 and 4 processors.}
\event{1984}{{Caltech}, {hypercube}}{GVW}
	{Unimpressed with available commercial machines,
	Caltech begins work on Mark~III hypercube.}
\event{1984}{{Intel}, {hypercube}}{GVW}
	{Intel Scientific Computers set up by Justin Rattner
	to produce commercial hypercube machines.}
\event{1984}{{Multiflow}}{GVW}
	{Multiflow founded by Fisher and others from Yale
	to produce very long instruction word (VLIW) supercomputers.}
\event{1984}{{Linpack Benchmark}, {Cray X/MP}}{JD}
	{Cray X/MP with 1 processor achieves 21 MFLOPS
	on $100^2$ LINPACK.}

\yr{1985}
\event{1985}{{Dally}, {Seitz}, {wormhole routing}, {virtual channels}}{WD}
	{Dally and Seitz develop model of wormhole routing,
	invent virtual channels, and show how to perform
	deadlock-free routing using virtual channels.}
\event{1985}{{Pfister}, {Norton}, {hot spots}, {message combining}}{GVW}
	{Pfister and Norton analyse effect of hot spots
	in multistage networks,
	and describe how message combining can ameliorate their effect.}
\event{1985}{{TMC}, {CM-1}}{BMB}
	{TMC demonstrates first CM-1 Connection Machine to DARPA.}
\event{1985}{{Denelcor}}{GVW}
	{Denelcor closes doors.}
\event{1985}{{IBM}, {IBM~3090}}{HGK}
	{IBM introduces 3090 vector processor.}
\event{1985}{{Intel}, {iPSC/1}}{GVW}
	{Intel produces first iPSC/1 hypercube
	(80286 processors connected through Ethernet controllers).}
\event{1985}{{Inmos}, {transputer}, {Supernode}, {Meiko}}{GVW}
	{Inmos produces first (integer) T414 transputer.
	Members of implementation group leave to found Meiko,
	which demonstrates its first transputer-based Computing Surface
	at SIGGRAPH that year.
	ESPRIT Supernode project begun to produce floating-point transputer.}
\event{1985}{{Fujitsu}, {VP-400}}{YO}
	{Fujitsu introduces VP-400 vector supercomputer.}
\event{1985}{{NEC}, {SX-2}}{PDT}
	{First NEC SX-2 vector supercomputer shipped
	(6.0 ns clock,
	capable of producing 8 floating point results per clock cycle,
	up to 256 MByte memory).}
\event{1985}{{NCube}, {NCube/10}}{GVW}
	{NCube produces first NCube/10 hypercube
	using custom processors.}
\event{1985}{{Teradata}, {DBC/1012}}{GVW}
	{Teradata ships first DBC/1012 parallel database query engine
	(Intel 8086 processors connected by proprietary tree network).}
\event{1985}{{CDC}, {Cyberplus}}{MW}
	{Ring-connected multiprocessor delivered by Control Data,
	called the Cyberplus.}
\event{1985}{{FPS}, {FPS-264}, {array processor}, {mini-supercomputer}}{BRC}
	{Floating Point Systems Inc.\ delivers FPS-264,
	an ECL version of 64-bit FPS-164 array processor that issues 
	multiple pipelined instructions every cycle.}
\event{1985}{{Convex}, {C1}}{MW}
	{Convex ships first single-processor C1 mini-supercomputer.}
\event{1985}{{CRI}, {Cray-2}}{GVW}
	{Cray Research produces Cray-2,
	with four background processors,
	a single foreground processor,
	and a 4.1 nsec clock cycle.}
\event{1985}{{IBM}, {IBM~RP3}}{HGK}
	{IBM begins RP3 project,
	intending to build a scalable shared-memory multiprocessor
	using a message-combining switch.}
\event{1985}{{Stellar}}{MW}
	{Stellar Computer, Inc., founded by Bill Poduska, former
	Apollo Computer founder, to build single-user high-performance
	graphics workstations.}
\event{1985}{{Ardent}}{MW}
	{Ardent Computer founded by Allen Michels, former founder
	of Convergent Technologies, and Gorden Bell, formerly of DEC,
	to build machines in competition with Stellar.}
\event{1985}{{Supertek}}{GVW}
	{Supertek Computers, Inc. is founded by Mike Fung,
	former Hewlett Packard RISC project manager.}
\event{1985}{{Suprenum}, {Giloi}}{MS}
	{W.~K.\ Giloi's design chosen as basis for German Suprenum project.}
\event{1985}{{Linpack Benchmark}, {NEC SX-2}}{JD}
	{NEC SX-2 with 1 processor achieves 46 MFLOPS
	on $100^2$ LINPACK.}
\event{1985}{{SISAL}, {functional languages}}{JF}
	{Sisal 1.2 language definition released;
	language definition does not change for another seven years.}
\event{1985}{{Gelernter}, {Linda}}{GVW}
	{David Gelernter publishes description of Linda language.
	Key elements of this later re-appear as
	the Linda parallel programming system.}
\event{1985}{{Multilisp}, {Halstead}, {futures}}{GVW}
	{Robert Halstead introudces futures
	in a paper describing the implementation of Multilisp.}
\event{1985}{{Jefferson}, {timewarp}, {simulation}}{GVW}
	{David Jefferson describes how virtual time and time warping
	can be used as a basis for speculative distributed simulations.}

\yr{1986}
\event{1986}{{Dally}, {k-ary n-cubes}, {hypercubes}, {wormhole routing}}{WD}
	{Dally shows that low-dimensional k-ary n-cubes are more
	wire-efficient than hypercubes for typical values of network 
	bisection, message length, and module pinout.
	Dally demonstrates the torus routing chip, the first
	low-dimensional wormhole routing component.}
\event{1986}{{Li}, {shared virtual memory}}{GVW}
	{Kai Li describes system for emulated shared virtual memory.}
\event{1986}{{Encore}, {Multimax}}{GVW}
	{Encore ships first bus-based Multimax computer
	(NS32032 processors coupled with Weitek floating-point accelerators).}
\event{1986}{{TMC}, {CM-1}}{GVW}
	{Thinking Machines Corp. ships first Connection Machine CM-1
	(up to 65536 single-bit processors connected in hypercube).}
\event{1986}{{SCS}}{GVW}
	{Scientific Computer Systems delivers first SCS-40,
	a Cray-compatible minisupercomputer.}
\event{1986}{{CMU}, {GE}, {Warp}}{JRR}
	{GE installs a prototype 10 processor Warp system at CMU
	(programmable bit-slice VLIW systolic array).}
\event{1986}{{Linpack Benchmark}, {Cray X/MP}}{JD}
	{Cray X/MP with 4 processors achieves 713 MFLOPS
	(against a peak of 840)
	on $1000^2$ LINPACK.}
\event{1986}{{FPS}, {T-series}, {transputer}}{BRC}
	{Floating Point Systems introduces T-series hypercube
	(Weitek floating-point units coupled to transputers),
	and ships 128-processor system to Los Alamos.}
\event{1986}{{KSR}}{GVW}
	{Henry Burkhardt, former Data General and Encore founder,	
	forms Kendall Square Research Corporation (KSR)
	to build custom multiprocessor.}
\event{1986}{{BBN}}{GVW}
	{BBN forms Advanced Computers Inc.\ subsidiary (BBN ACI)
	to develop and market Butterfly machines.}
\event{1986}{{AMT}, {ICL}, {DAP}}{GVW}
	{Active Memory Technology spun off from ICL to develop DAP products.}
\event{1986}{{Level 2 BLAS}}{JD}
        {Level 2 BLAS activity started.}
\event{1986}{{hypercube}, {MPI}}{GVW}
	{CrOS~III, Cubix (file-system handler) and Plotix (graphics handler)
	running on Caltech hypercubes.}
\event{1986}{{DEC}, {symmetric multiprocessor}, {VAX}}{JMF}
	{Symmetric multiprocessing supported by VMS.}

\yr{1987}
\event{1987}{{ETA}}{GVW}
	{ETA produces first air- and liquid nitrogen-cooled versions
	of ${\rm{ETA}}^{10}$ multiprocessor supercomputer.}
\event{1987}{{Myrias}, {SPS-1}}{GVW}
	{Myrias produces prototype (68000-based) SPS-1.}
\event{1987}{{Caltech}, {hypercube}}{GVW}
	{Caltech Mark~III hypercube completed (68020 with wormhole routing).}
\event{1987}{{TMC}, {CM-2}}{GVW}
	{TMC introduces CM-2 Connection Machine
	(64k single-bit processors connected in hypercube,
	plus 2048 Weitek floating point units).}
\event{1987}{{Sequent}, {Symmetry}}{GVW,TL}
	{Sequent produces 80386-based Symmetry bus-based multiprocessor.}
\event{1987}{{Multiflow}, {Trace/200}}{GVW}
	{Multiflow delivers first Trace/200 VLIW machines
	(256 to 1024 bits per instruction).}
\event{1987}{{CMU}, {GE}, {Warp}}{JRR}
	{GE installs the first 10-processor production Warp system at CMU.}
\event{1987}{{Seitz}, {Ametek}, {Ametek-2010}, {wormhole routing}}{WD}
	{Seitz, working at Ametek, builds the Ametek-2010,
	the first parallel computer
	using a 2-D mesh interconnect with wormhole routing.}
\event{1987}{{CRI}, {SSI}}{MW}
	{Steve Chen leaves Cray Research to found
	Supercomputer Systems, Inc.
	SSI is later funded by IBM to build
	large-scale parallel supercomputer.}
\event{1987}{{Gordon Bell Prize}}{GVW}
	{Gordon Bell Prize for parallel performance first awarded;
	recipients are Brenner, Gustafson, and Montry,
	for a speedup of 400-600 on variety of applications
	running on a 1024-node NCube;
	and Chen, DeBenedictis, Fox, Li, and Walker,
	for speedups of 39-458 on various hypercubes.}
\event{1987}{{Linpack Benchmark}, {ETA 10}, {NEC SX-2}}{JD}
	{ETA~10 with 1 processor achieves 52 MFLOPS
	on $100^2$ LINPACK;
	NEC SX-2 with 1 processor achieves 885 MFLOPS
	(against a peak of 1300)
	on $1000^2$ LINPACK.}
\event{1987}{{SISAL}, {functional languages}}{JF}
	{SC (SISAL Compiler) released by LLNL and Colorado State University.
	First functional language, native-code compiler and runtime system
	for shared-memory multiprocessor systems.}
\event{1987}{{Express}, {ParaSoft}, {hypercube}, {MPI}}{GVW}
	{ParaSoft spun off from hypercube group at Caltech
	to produce commercial version of CrOS-like MPI.}

\yr{1988}
\event{1988}{{scalability}, {Gustafson}}{GVW}
	{John Gustafson and others demonstrate that
	Amdahl's Law can be broken
	by scaling up problem size.}
\event{1988}{{Inmos}, {transputer}}{GVW}
	{Inmos produces first T800 floating-point transputer;
	Parsys and Telmat set up to exploit results of
	ESPRIT Supernode project,
	and begin marketing T800-based machines.}
\event{1988}{{Silicon Graphics}, {Power Series}}{DS}
        {Silicon Graphics delivers the Power Series graphics workstations
        (bus-based multiprocessor workstations and servers
	with up to 8 MIPS R2000 RISC microprocessors).}
\event{1988}{{CRI}, {Cray-Y/MP}}{GVW}
	{CRI produces first Y/MP multiprocessor vector supercomputer.}
\event{1988}{{AMT}, {DAP}}{GVW}
	{AMT delivers first re-engineered DAP
	(1024 single-bit processors connected in torus).}
\event{1988}{{Intel}, {iPSC/2}}{GVW}
	{Intel produces iPSC/2 hypercube
	(80386/7 chip-set with wormhole routing,
	plus concurrent I/O facilities).}
\event{1988}{{Stellar}, {Ardent}}{GVW}
	{Ardent and Stellar begin delivering single-user graphics
	engineering workstations.}
\event{1988}{{Hitachi}, {S-820}}{YO}
	{Hitachi ships first S-820 vector supercomputer.}
\event{1988}{{Occam}}{RS}
	{Definition of Occam2 concurrent programming language published.}
\event{1988}{{dataflow}, {SIGMA-1}, {ETL}}{PGW}
	{The 128 processing-element SIGMA-1 dataflow machine
	of Japan's Electro-Technical Laboratory (ETL)
	delivers over 100 MFLOPS.}
\event{1988}{{FPS}, {Celerity}}{BRC}
        {Floating Point Systems Inc.\ changes name to FPS Computing,
	buys Celerity Computing assets, 
	and produces Model 500 (Celerity 6000)
	mini-supercomputer with multiple scalar and vector processors.}
\event{1988}{{DEC}, {MasPar}}{MW}
	{MasPar Computer Corp. founded by former DEC executive Jeff Kalb
	to develop bit-serial massively-parallel machines.}
\event{1988}{{Tera}}{LSK}
	{Tera Computer Co.\ founded by Burton Smith and James Rottsolk to
	develop and market a new multi-threaded parallel computer,
	similar to the Denelcor HEP.}
\event{1988}{{SCI}}{DBG}
	{Scalable Coherent Interface (SCI) working group formed
	to develop standard for interconnection network providing
	1~GByte per second per processor and cache coherence
	using many unidirectional point-to-point links.}
\event{1988}{{Linpack Benchmark}, {Cray Y/MP}}{JD}
	{Cray Y/MP with 1 processor achieves 74 MFLOPS
	on $100^2$ LINPACK;
	the same machine with 8 processors achieves 2.1 GFLOPS
	(against a peak of 2.6)
	on $1000^2$ LINPACK.}
\event{1988}{{Gordon Bell Prize}}{GVW}
	{Gordon Bell Prize awarded to Vu, Simon, Ashcraft, Grimes, and Peyton,
	whose static structures program achieved
	1~GFLOPS on an 8-processor Cray Y/MP.}
\event{1988}{{Level 2 BLAS}, {Level 3 BLAS}, {LAPACK}}{JD}
        {Level 2 BLAS published/released;
	Level 3 BLAS activity started;
	LAPACK project started. LAPACK effort to produce software for
	linear algebra problems
	on shared memory parallel computers and high-performance workstations.}
\event{1988}{{ParaSoft}, {Express}, {MPI}, {Caltech}, {DIME}}{GVW}
	{ParaSoft releases first commercial version of Express MPI;
	first version of DIME (Distributed Irregular Mesh Environment)
	up and running at Caltech.}

\yr{1989}
\event{1989}{{Valiant}, {random routing}, {PRAM}, {emulation}}{GVW}
	{Valiant argues that random routing and latency hiding
	can allow physically-realizable machines
	to emulate PRAMs in optimal time.}
\event{1989}{{SCS}}{MW}
	{Scientific Computer Systems stops selling its SCS-40
	Cray-compatible computer system.
	SCS continues to sell high-speed token ring network.}
\event{1989}{{BBN}, {TC2000}}{GVW}
	{BBN ACI delivers first 88000-based TC2000
	distributed shared-memory multiprocessor.}
\event{1989}{{Myrias}, {SPS-2}}{GVW}
	{Myrias sell first 68020-based SPS-2
	shared-memory multiprocessor.}
\event{1989}{{Meiko}, {Computing Surface}}{GVW}
	{Meiko begin using SPARC and Intel i860 processors
	to supplement T800s in their Computing Surface machines;
	begins integrating products with SunOS enviornment.}
\event{1989}{{ES-1}}{MW}
	{Evans and Sutherland announce the ES-1 parallel computer.
	Two systems are delivered, to the University of Colorado and
	CalTech.  The division is later shut down
	during the Supercomputing '89 conference, even while
	they had a booth in the convention center in Reno.}
\event{1989}{{Multiflow}, {Trace/300}}{MW}
	{Multiflow produces second-generation Trace/300 machines.}
\event{1989}{{Fujitsu}, {VP2000}}{GVW}
	{Fujitsu begins production of single-processor VP2000
	vector supercomputers.}
\event{1989}{{Supertek}}{MW}
	{Supertek Computers, Inc., delivers its S-1 Cray-compatible
	minisupercomputer; eventually 10 of these are sold.}
\event{1989}{{CDC}, {ETA}}{MW}
	{Control Data shuts down ETA Systems in April;
	National Science Foundation subsequently shuts down
	the John von Neumann Supercomputer Center at Princeton,
	which was operating an ETA-10.}
\event{1989}{{Stellar}, {Ardent}, {Stardent}}{MW}
	{Stellar and Ardent announce they will merge, forming 
	Stardent Computers.}
\event{1989}{{CRI}, {CCC}}{GVW}
	{Seymour Cray leaves Cray Research to found
	Cray Computer Corporation.}
\event{1989}{{Monsoon}, {dataflow}, {Motorola}, {MIT}, {Arvind}}{PGW}
	{Arvind's group at MIT receives first hardware prototype of
	MONSOON tagged-token architecture from Motorola.}
\event{1989}{{Gordon Bell Prize}}{GVW}
	{Gordon Bell Prize for absolute performance awarded to
	a team from Mobil and Thinking Machines Corporation,
	who achieved 6~GFLOPS on a CM-2 Connection Machine;
	prize in price/performance category awarded to Emeagwali,
	who achieved 400 MFLOPS per million dollars on the same platform.}
\event{1989}{{Linpack Benchmark}, {Cray Y/MP}}{JD}
	{Cray Y/MP with 8 processors achieves 275 MFLOPS
	on $100^2$ LINPACK,
	and 2.1 GFLOPS (against a peak of 2.6)
	on $1000^2$ LINPACK.}
\event{1989}{{SISAL}, {functional languages}}{JF}
	{OSC (Optimizing SISAL Compiler) released by LLNL and CSU.
	The compiler optimizes the copy and memory management;
	SISAL programs achieve Fortran speeds on conventional
	shared-memory multiprocessors.}
\event{1989}{{NCube}, {NCube/2}}{MW}
	{NCube produces second-generation NCube/2 hypercubes,
	again using custom processors.}
\event{1989}{{Portland Group}}{LFM}
	{The Portland Group (PGI) founded to develop software
	pipelining compilers
	for the Intel i860 and other machines.}

\yr{1990}
\event{1990}{{Multiflow}}{MW}
	{Multiflow closes doors in April after several deals
	with other companies fall through.}
\event{1990}{{MasPar}, {MP-1}}{GVW}
	{First MasPar MP-1 delivered
	(up to 16k 4-bit processors connected in 8-way mesh).}
\event{1990}{{NEC}, {SX-3}}{PDT}
	{NEC ships SX-3,
	the first Japanese parallel vector supercomputer
	(up to 4 processors, each with up to 4 pipeline sets,
	a 2.9 ns clock,
	and up to 4 Gbyte of memory).}
\event{1990}{Fujitsu, VP-2600}{YO}
	{Fujitus ships first VP-2600 vector supercomputer.}
\event{1990}{{Alliant}, {FX/2800}}{GVW}
	{Alliant delivers first FX/2800 i860-based multiprocessors.}
\event{1990}{{Fujitsu}, {NEC}, {Hitachi}, {HPPS}}{OY}
	{In a project led by MITI,
	Fujitsu, Hitachi, and NEC build
	a testbed parallel vector supercomputer containing
	four Fujitsu VP2600s,
	NEC's shared memory,
	and Hitachi software.}
\event{1990}{{Intel}, {iPSC/860}}{RJ}
	{Intel produces iPSC/860 hypercubes,
	using i860 microprocessor and wormhole-routed connections.}
\event{1990}{{Intel}, {iWarp}}{JRR}
	{Intel demonstrates iWarp system to CMU and DARPA
	(descendent of Warp,
	with custom microprocessor replacing wire-wrapped boards).}
\event{1990}{{Wavetracer}, {DTC}}{MCS}
        {Wavetracer builds the DTC (Data Transport Computer) 
        consisting of one to four boards of $16{\times}16{\times}16$ 1-bit 
        PEs, virtual array size, first three-dimensional array processor.}
\event{1990}{{Cray}, {Supertek}}{MW}
	{Cray Research, Inc., purchases Supertek Computers Inc.,
	makers of the S-1, a minisupercomputer compatible
	with the Cray X-MP.}
\event{1990}{{Dally}, {J-Machine}, {Actors model}}{WD}
	{MIT J-Machine demonstrates message-driven network
	interface that reduces overhead of message handling.}
\event{1990}{{CCC}, {Cray-3}, {NERSC}}{MW}
	{National Energy Research Supercomputer Center (NERSC)
	places order with Cray Computer Corporation
	for Cray-3 supercomputer.
	The order includes a unique 8-processor
	Cray-2 computer system that is installed in April.}
\event{1990}{{QCDPAX}, {Anritsu}}{YO}
	{University of Tsukuba completes 432 processor machine QCDPAX 
	in collaboration with Anritsu Corporation.}
\event{1990}{{ETA}}{MW}
	{The two ETA-10 systems at the closed John von Neumann
	Supercomputer Center are destroyed with sledge hammers,
	in order to render them useless, after no buyers are found.}
\event{1990}{{Gordon Bell Prize}}{GVW}
	{Gordon Bell Prize in price/performance category
	awarded to Geist, Stocks, Ginatempo, and Shelton,
	who achieved 800~MFLOPS per million dollars
	in a high-temperature superconductivity program
	on a 128-node Intel iPSC/860;
	prize in compiler parallelization category awarded to
	Sabot, Tennis, and Vasilevsky,
	who achieved 1.5~GFLOPS on a CM-2 Connection Machine
	with Fortran~90 code derived from Fortran~77.}
\event{1990}{{Linpack Benchmark}, {Fujitsu VP2600}}{JD}
	{Fujitsu VP2600 with 1 processor achieves 2.9 GFLOPS
	(against a peak of 5 GFLOPS)
	on $1000^2$ LINPACK.}
\event{1990}{{Level 3 BLAS}, {PVM}}{JD} 
        {Level 3 BLAS published/released.
        The Parallel Virtual Machine (PVM) project started.
        PVM is designed to develop a software layer needed to put
        together a heterogeneous collection of computers hooked together 
        by a network to be used as a single large parallel computer.
        Proof of concept software produced (PVM 1.0 not publicly released).}
\event{1990}{{APR}, {FORGE}, {MIMDizer}, {PSR}}{BMB}
	{Applied Parallel Resarch (APR) spun off from
	Pacific-Sierra Research (PSR) to develop FORGE and MIMDizer
	parallelization tools,
	and upgrade them to handle Fortran~90.}
\event{1990}{{data-parallel languages}, {TMC}, {AMT}}{1990}
	{TMC and AMT sign co-operative agreement to standardize languages.}


\yr{1991}
\event{1991}{{Ranade}, {butterfly}, {PRAM}, {emulation}}{GVW}
	{Abhiram Ranade describes how message combining,
	butterfly networks,
	and a complicated routing algorithm
	can emulate PRAMs in near-optimal time.}
\event{1991}{{Myrias}}{GVW}
	{Myrias closes doors.}
\event{1991}{{BBN}}{MW}
	{BBN shuts down its Advanced Computers, Inc. (ACI) subsidiary,
	though it continues to sell TC-2000 computers.}
\event{1991}{{Stardent}}{MW}
	{Stardent, formed by merger in 1989, announces it will sell off
	its business and shut its doors.
	The graphics computer line (the former Ardent architecture)
	is eventually taken over by Kubota Pacific Computer Corp.}
\event{1991}{{CRI}, {Cray-Y/MP C90}}{GVW}
	{CRI produces first Y/MP~C90.}
\event{1991}{{KSR}}{MW}
	{Kendall Square Research starts to deliver 32-processor
	KSR-1 computer systems.}
\event{1991}{{TMC}, {CM-200}}{BMB}
	{Thinking Machines Corporation produces CM-200 Connection Machine,
	an upgraded CM-2.
	MIMD CM-5 announced.}
\event{1991}{{Linpack Benchmark}, {Cray Y/MP C90}, {Fujitsu VP2600}}{JD}
	{Cray Y/MP C90 with 16 processors achieves 403 MFLOPS
	on $100^2$ LINPACK;
	a Fujitsu VP2600 with 1 processor achieves 4 GFLOPS
	(against a peak of 5 GFLOPS)
	on $1000^2$ LINPACK.}
\event{1991}{{Intel}, {iWarp}}{JRR}
	{Intel introduces the iWarp system,
	featuring the iWarp LIW processor with
	on-chip integrated communication,
	long lived connections,	systolic and low-latency communication,
	and 512~kbyte to 2~Mbyte per processor.}
\event{1991}{{Intel}, {Paragon}}{RJ}
	{Intel delivers Touchstone Delta prototype
	for its Paragon multicomputer
	(two-dimensional mesh of i860 microprocessors
	with wormhole routing)
	to the Concurrent Supercomputing Consortium at Caltech;
	commercial deliveries of Paragon begin late in the year.}
\event{1991}{{FPS}, {MCP-784}}{BRC}
        {FPS Computing delivers MCP-784,
	an 84-processor shared memory i860-based system,
        uses data-vectorization into caches.}
\event{1991}{{CCC}, {Cray-3}}{MW}
	{In December,
	the National Energy Research Supercomputer Center (NERSC)
	at Lawrence Livermore National Laboratory
	cancels contract to buy Cray-3 from Cray Computer Corp.}
\event{1991}{{Suprenum}}{MS}
	{Germany's Suprenum project produces first bug-free hardware.
	Machine contains nodes based on MC68020 with Weitek
	floating point accelerator;
	clusters contain 16 nodes communicating over a bus,
	and clusters are connected through bi-directional links.
	No further hardware is built,
	as the technology used was no longer competitive.}
\event{1991}{{HPF}}{LFM}
	{The High Performance Fortran (HPF) forum is formed to define
	data-parallel extensions to Fortran.}
\event{1991}{{SISAL}, {functional languages}}{JF}
	{OSC 12.0, released by LLNL and CSU.
	First functional language compiler for
	multiprocessor vector supercomputers.
	SISAL programs achieve Fortran speeds on the Cray-X/MP
	and Cray-Y/MP supercomputers.}
\event{1991}{{Bailey}, {benchmarking}}{GVW}
	{David Bailey publishes complaint about abuse of benchmarks,
	particularly by parallel computer vendors.}
\event{1991}{{Meiko}, {Computing Surface}, {Oracle}}{TA}
	{Meiko produces commercial implementation of ORACLE Parallel Server
	RDBMS for multi-SPARC Computing Surface systems.}

\yr{1992}
\event{1992}{{Gibson}, {RAID}}{GVW}
	{Garth Gibson's thesis on redundant arrays of inexpensive disks
	(RAID) published.}
\event{1992}{{Alliant}}{LFM}
	{Alliant declares bankruptcy.}
\event{1992}{{AMT}}{MW}
	{AMT bankrupt; revived as AMT Cambridge Ltd.}
\event{1992}{{FPS}, {CRI}}{BRC}
        {FPS Computing bankrupt; selected assets bought by CRI,
	and Cray Research Superservers (CRS) subsidiary formed.
	FPS Model 500 renamed Cray S-MP;
	FPS MCP renamed Cray APP.}
\event{1992}{{KSR}}{MW}
	{Kendall Square Research announces KSR-1 after testing
	a system with 128 processors and a second level ring interconnect.}
\event{1992}{{MasPar}}{MW}
	{MasPar Computer starts delivering its second generation machine,
	the MP-2.}
\event{1992}{{TMC}, {CM-5}}{BMB}
	{Thinking Machines Corporation produces first CM-5,
	containing up to 1024 Sparc microprocessors
	connected in a fat tree topology,
	each with up to 4 vector units
	manufactured by Texas Instruments.
	A RAID system for the CM-5 is also announced.}
\event{1992}{{Gordon Bell Prizes}}{GVW}
	{Gordon Bell Prize for absolute performance awarded to
	Warren and Salmon,
	who achieved 5~GFLOPS on the Intel Touchstone Delta
	in a gravitational interaction tree code;
	prize for speedup awarded to Jones and Plassmann,
	who also achieved 5~GFLOPS on the same platform.
	Prize for price/performance awarded to Nakanishi, Rego, and Sunderam,
	whose Eclipse system achieved 1~GIPS per million dollars
	on a widely distributed network of workstations.}
\event{1992}{{Linpack Benchmark}, {Cray Y/MP C90}, {NEC SX-3}}{JD}
	{Cray Y/MP C90 with 16 processors achieves 479 MFLOPS
	on $100^2$ LINPACK;
	an NEC SX-3/44 with 4 processors achieves 13.4 GFLOPS
	(against a peak of 22.0)
	on $1000^2$ LINPACK,
	and 20.0 GFLOPS on a $6144^2$ problem.}
\event{1992}{{LAPACK}, {ScaLAPACK}, {MPI}}{JD}
        {LAPACK software released/users guide published.
	ScaLAPACK Project started, designed to provide linear algebra software
	on highly parallel systems.
	Message Passing Interface (MPI) Forum started, standardizing effort
	for message passing systems.}
\event{1992}{{PCN}, {Chandy}, {Taylor}}{GVW}
	{Chandy and Taylor describe PCN,
	a parallel programming system similar to Strand~88,
	based on dataflow and logic programming.}

\yr{1993}
\event{1993}{{IBM}{RS/6000}}{HGK}
	{IBM delivers first Powerparallel system based on RISC RS/6000 processor.}
\event{1993}{{Silicon Graphics}, {Challenge}}{DS}
        {Silicon Graphics ships Challenge series of bus-based multiprocessor
	graphics workstations and servers,
	containing up to 36 MIPS R4400 RISC microprocessors.}
\event{1993}{{SSI}}{MW}
	{IBM stops funding of Supercomputer Systems Inc.;
	company shuts down.}
\event{1993}{{CCC}, {Cray-3}}{EAB}
	{Cray Computer Corp. Cray-3 placed at
	National Center for Atmospheric Research.}
\event{1993}{{Meiko}, {LLNL}}{GVW}
	{Lawrence Livermore National Laboratory (LLNL)
	announces intention to purchase CS-2 Computing Surface from Meiko,
	the first major purchase by a U.S.\ national laboratory
	from a vendor with roots outside the U.S.}
\event{1993}{{Fujitsu}, {VPP-500}}{YO}
	{Fujitsu installs 140-processor Numerical Wind Tunnel,
	a prototype of a highly-parallel vector supercomputer
	to be called VPP-500.}
\event{1993}{{NEC}, {CENJU-3}}{PDT}
	{NEC produces Cenju-3,
	containing up to 256 VR4400SC (MIPS R4000 runalike) processors
	connected by an Omega network.}
\event{1993}{{IBM}{GF-11}}{HGK}
	{GF-11 system (the name stands for 11 GFLOPS)
	purpose-built at IBM for quantum chromodynamic calculations
	finishes computation of nucleon masses.}
\event{1993}{{J-Machine}, {MIT}, {Caltech}, {Actors model}}{WD}
	{512-node J-Machines (message-driven multicomputers) operational
	at MIT and Caltech.}
\event{1993}{{HPF}}{LFM}
	{Version 1.0 of the HPF language specific is released.}
\event{1992}{{Linpack Benchmark}, {NEC SX-3}, {CM-5}}{JD}
	{An NEC SX-3/44 with 4 processors achieves 15.1 GFLOPS
	(against a peak of 25.0)
	on $1000^2$ LINPACK;
	a Thinking Machines Corporation CM-5 achieves
	59.7 GFLOPS with 1024 processors
	on a $52224^2$ problem.}
\event{1993}{{ScaLAPACK}, {PVM}}{JD}
        {ScaLAPACK Prototypes released, runs on Intel's Paragon, Thinking
	Machines' CM-5, and PVM.
	PVM 3.0 publicly available.}

\end{description}

\end{document}




From compilers Thu Jul 22 09:40:22 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: jasonl@munta.cs.mu.OZ.AU (Jason David LEE)
Subject: yacc to BNF anyone
Message-ID: <93-07-069@comp.compilers>
Originator: jasonl@munta.cs.mu.OZ.AU
Keywords: yacc, question, comment
Sender: compilers-sender@chico.iecc.com
Organization: Department of Computer Sci, University of Melbourne
Date: Thu, 22 Jul 1993 05:42:18 GMT
Approved: compilers@chico.iecc.com

Hello,

Does anyone know of any tool/program/hack etc that given
a yacc file will extract the bnf grammar ???

I did start off with a bnf grammer but changed it while writing
the yacc stuff and have since lost the list of changes.

If any one has an idea's or knows where I can find something to
do the above I would like to here from you.

Thanks in advance.
--
 Internet address: jasonl@cs.mu.OZ.AU
 Name : Jason David Lee
 Phone	(work) : 287 9165 (Rm L2.11)
[Berkeley yacc with the -v option puts the grammar without any of the
action code at the beginning of the listing file.  I'd think it'd be
pretty easy to write a sed or awk script to extract that and change the
colons to ::= -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul 22 18:26:43 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: sardana@asl.dl.nec.com	(Bobby Sardana)
Subject: Help Needed for sparc object hackery
Message-ID: <93-07-070@comp.compilers>
Keywords: sparc, question, assembler
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Thu, 22 Jul 1993 22:14:19 GMT
Approved: compilers@chico.iecc.com

Compiler Gurus:

I need to do the following. Please let me know where I can find either the
source or some documentation on this. Thanks.

1. Analyse a given executable on Sun4 architectures. (Format is BSD-COFF).
2. Check the text section and analyse what is being done in each function.
3. Modify the text section i.e. add some registering messages to a static
   function.
4. Re-write the executable silently.
5. When the execuatble is loaded i.e executed it will process the new code.

Any help on this would be appreciated.

Thanks.

Bobby Sardana.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul 23 18:27:30 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: viren@wipro.wipsys.soft.net (Virendra Kumar Mehta)
Subject: Re: yacc to BNF anyone
Message-ID: <93-07-071@comp.compilers>
Keywords: yacc
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
References: <93-07-069@comp.compilers>
Date: Fri, 23 Jul 1993 10:08:56 GMT
Approved: compilers@chico.iecc.com

> Does anyone know of any tool/program/hack etc that given
> a yacc file will extract the bnf grammar ???

I guess you want the '.y' file with only the rules and not the actions.
John's solution of using the '.output' file with a script will be good
enough in that case.

In case you do not have Berkeley yacc, most yacc implementations store the
rules in the '.tab.c' file as an array of strings (which they use later to
print messages if YYDEBUG is set). You could extract this array and just
replace ':' to '::=' again, or whatever form you want it in.

(If nothing else works, use the brute force approach. A vi macro that
mathces a '{' and deletes till the matching '}' worked for me once.)

viren.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Fri Jul 23 18:28:30 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: pardo@cs.washington.edu (David Keppel)
Subject: Re: Help Needed for sparc object hackery
Message-ID: <93-07-072@comp.compilers>
Keywords: sparc, assembler
Sender: compilers-sender@chico.iecc.com
Organization: Computer Science & Engineering, U. of Washington, Seattle
References: <93-07-070@comp.compilers>
Date: Fri, 23 Jul 1993 19:35:56 GMT
Approved: compilers@chico.iecc.com

In <93-07-070@comp.compilers> sardana@asl.dl.nec.com (Bobby Sardana) writes:
>1. Analyse a given executable on Sun4 architectures. (Format is BSD-COFF).

It is hard, in the general case, to examine an arbitrary executable and
determine what is code and what is data.  Even if the program avoids
self-modifying code and related techniques, it is not enough to rely on
the marked text and data sections, as constant data is often loaded in the
text section; many compilers do this with strings, for example.  Analysis
can be difficult; rewriting "real" text without rewriting the data also,
doubly so.  Here, "hard" means something like "a solution to the halting
problem" (though I lack a formal proof).

This problem is something to be remembered when saying "we implemented our
tool to run over assembly code, but it would also work with machine
(object) code", since the two problems aren't usually equivalent.  Better
symbol table information can ease the problem, but few systems provide
such good symbol table info.

For a brief discussion see:

%A Cathy May
%T Mimic: A Fast S/370 Simulator
%J Proceedings of the ACM SIGPLAN 1987 Symposium on Interpreters and
Interpretive Techniques; SIGPLAN Notices
%V 22
%N 6
%C St. Paul, MN
%D June 1987
%P 1-13

		;-D on  ( The SPARC hacker at home )  Pardo
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul 28 12:14:15 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Tony Kanawati <tonyk@ontos.com>
Subject: sed compiler?
Message-ID: <93-07-073@comp.compilers>
X-Organization: Ontos, Inc.; Burlington, Mass; USA
Keywords: tools, translator, DFA, comment
Sender: compilers-sender@chico.iecc.com
Reply-To: tonyk@ontos.com
Organization: Compilers Central
Date: Mon, 26 Jul 1993 15:12:32 GMT
Approved: compilers@chico.iecc.com

A colleague of mine is working on a (very) large sed script that must be
operated on a wide variety of platforms (SunOS, AIX, HP/UX, OS/2, SCO,
etc...)

The size of the script, and the infinite variations in sed features
between platforms promise a lot of problems.

A Sed->C compiler, if such a thing exists, would provide us with a
significantly more portable result (a C program).

Is there such a translator? or something of similar functionality?

[Please CC to tonyk@ontos.com when you reply to this post]
--
Antoun (Tony) Kanawati       | ONTOS, Inc., 3 Burlington Woods
tonyk@ontos.com	             | Burlington, MA 01803, USA
uunet!uupsi!ontos!tonyk      | (617) 272-8101      (Fax)
(800) 388-7110 x328 (Direct) | (617) 272-7110 x328 (Front desk)
[One possibility would be to recast your script as a flex program, since
its regular expressions are at least as powerful as sed's.  Flex turns into
very portable C. -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul 28 12:16:30 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: harding@ug.eds.com (Jim Harding)
Subject: sparc object hackery and Bliss techniques?
Message-ID: <93-07-074@comp.compilers>
Keywords: assembler, optimize, question, comment
Sender: compilers-sender@chico.iecc.com
Organization: EDS Unigraphics, Cypress CA
Date: Mon, 26 Jul 1993 09:43:57 GMT
Approved: compilers@chico.iecc.com

In regards to dsitinguishing code from data within an object file you can
do something similar to what I had done with some disassemblers which was
to locate all reachable instructions.  Starting from all known code labels
in the symbol table, decode instructions until you reach an unconditional
jump or return instruction while noting all branches to labels.  Finding
jump tables for implementing switch statements may be a little bit
difficult but it can be done.  All branch labels and jump table entries
will start new code paths to search.

Now I have a question.  I have the book 'The Design of an Optimizing
Compiler' by Wulf et. al. and have found the ideas in it to be quite
interesting even though it is rather old by CS standards (1975).  Is there
any information anywhere on the Bliss language which it describes or on
any languages which use similar compiler techniques?  I know I may be out
of touch asking about such a language.

James Harding
HARDING@UG.EDS.COM
[Incidentally, we're still working on reissuing the book by Wulf et al.
though it's taking longer than I would have expected.  Around the end of
the year, I hope. -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul 28 12:20:20 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: pbenson@ecst.csuchico.edu (Paul A. Benson)
Subject: CD-ROM archive of compilers now available
Message-ID: <93-07-075@comp.compilers>
Keywords: books, available
Sender: compilers-sender@chico.iecc.com
Organization: California State University, Chico
Date: Tue, 27 Jul 1993 03:56:44 GMT
Approved: compilers@chico.iecc.com

Knowledge Media has released a CD-ROM for anyone interested in
compilers and computer programming.

The disc entitled, "LANGUAGES / OPERATING SYSTEMS", contains
compilers, libraries, source code and documents for standard and
experimental computer languages and operating systems. The contents
of the disc were selected from compilers listed in the free-compilers
list of the Internet.

A brief list of the contents include ...

ABC, Ada, Basic (several versions), C, C++ , Clean, ConC COOL, EC++, ET++,
Forth(several versions), Gambit, GNU Compilers, Libraries, & Tools,
grammars, ICON, ISIS, Janus,Karel, LEDA, Lisp(several versions),
Logo(several versions), Mach, Modula-2, Modula-3, Oberon, OPS5,
Parallaxis,Parallel, Pascal,PC-Scheme.  Prolog(several versions), Python,
Rexx(several versions), Sather, Scheme(several versions),Schematik,
Scorpion, Self, SETL2, SML,Simula, Smalltalk, Snobol4, SOS, T, Tcl,
Thomas, yacc, yerk, y+po, etc..

Discounts available for small quantity purchases through Universities
or other Institutions.

These discs may be purchased from Knowledge Media for $ 39.95 + S&H
(shipping and handling): $ 5.00 1-2 discs, $10 for 3 - ( US & Canada)
other foreign S & H is $ 10.00.

PAYMENT: Check,Credit Card (VISA or Mastercard...name, card number, exp date).
Terms available to recognized Institutions.
California Residents please add sales tax.

Orders may be placed by contacting Knowledge Media at:

Voice:		1-800-78-CDROM
Fax:		1-916-872-03826
E-mail 		pbenson@cscihp.ecst.csuchico.edu
Compuserve 	73167,1312

mail:		Knowledge Media
		436 Nunneley Rd, Suite B
		Paradise, CA 95969

A complete catalog of Knowledge Media's cd-roms may be ftp'ed from:
	ftp.cdrom.com:cdrom/know_med/catalog.txt

or send email request to: pbenson@cscihp.ecst.csuchico.edu
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul 28 12:21:02 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: <jimy@cae.wisc.edu>
Subject: Request: references on BURS
Message-ID: <93-07-076@comp.compilers>
Keywords: tools, parse, question
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Wed, 28 Jul 1993 09:45:02 GMT
Approved: compilers@chico.iecc.com

Hi all,

Could someone please post some references on papers on BURS (Bottom Up
Rewrite Systems). Any work that uses BURS is welcome. I'm particularly
interested in how BURS compares with TWIG.

Also, I was told that there is a well known paper that proved optimal code
generation for dags is NP-complete. Does anyone know its reference?

Thanks in advance for any help.

Jim
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Wed Jul 28 15:01:39 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: tartaris@hsi.com (Bob Tartaris)
Subject: C Compilers for IBM Mainframe
Message-ID: <93-07-077@comp.compilers>
Keywords: C, summary, IBM
Sender: compilers-sender@chico.iecc.com
Organization: 3M Health Information Systems, Wallingford CT
References: <93-07-049@comp.compilers>
Date: Wed, 28 Jul 1993 18:45:01 GMT
Approved: compilers@chico.iecc.com

First, I'd like to thank all who responsed to my request for the subject
information.  All of your responses are greatly appreciated.

Second, the moderator asked me to provide the responses for the benefit of
the entire group, so here they are.  Since only one person explicitly gave
permission to use their name, I've decided to edit out the names of all
the responders.  The content of their replies should be sufficient;
however, if someone really feels the need to contact one or more of the
them, send me some email.  I'd be glad to forward your name on to them.

Thanks,
Bob

---

I had to do extensive research into C Compilers for IBM mainframe and came
up with two that are both fantastic - Univ. of Waterloo's C compiler and
SAS C.  SAS C added a C++ feature not that long ago.  I don't have the
address or phone no. of Univ. of Waterloo, in Canada, but the SAS
Institute address is: SAS Institute, SAS Campus Drive, Cary, NC 27513 -
Phone 919-677-8000.  Fax is 919-677-8123.  A contact for you there is Sam
Loflin - Account Representative, C Compiler - Sales and Marketing
Division.  From examining their literature, it was hard to really tell
which one was better, but note that SAS has really good documentation and
I did get to look at their C manuals.  I recommend purchasing the screen
function library part of the package.  As far as C++, you probably don't
need that in VM/CMS environment, but of course, using OOP is preference.
IBM also makes a C, but I don't know much about it - I'm sure it is
reasonable, since C is such a mature language, at this point.  I don't
think there are too many lousy Cs.....  But, SAS has a great reputation
with their statistical packages etc.....  Out of curiosity, are you using
Rexx?  What I would like to use C for, if we get it in the future, would
be to work with Oracle pre-compilers to perform embedded SQL.  Also, it
would be nice to have sophisticated screen handler functions built in a
compiled language, rather than having to write assembler or use CMS
virtual window commands, which are not so great, in my opinion, to perform
in Rexx.  C works at a lower level for somethings, than Rexx, but I find
Rexx is probably the greatest language I have ever used.  Of course for
speed, you have to either use compiled Rexx or purchase another compiler
(C, Forth, COBOL etc...)

---

Try C/370 from IBM. Try SAS. I think that Whitesmiths also has one. If you
need anymore information let me know.

---

SAS Institute, Inc. sells a C compiler and C++ translator for VM and MVS.
You can get marketing-type info by calling 919-677-8200 and asking for
Barbara Droshak.  If you have any specific questions about the compiler
send me e-mail - I'm the manager of compiler development.

Hope to hear from you!

---

Hi,
We are using the SAS/C compiler under VM/CMS. We don't have ESA yet.  The
product is also available for MVS.  The current version we use is 4.50 I
believe. The compiler is actually a port of Lattice C and thus internally
called LC370. We also expect to use the forthcoming SAS/C++ compiler by
end of this year.  We use it mainly for porting U*ix based software to our
IBM/370 mainframe.  In case you want more details, pls contact me via
e-mail (I'll be on vacations for the next 6 weeks).  Unfortunately I've
never seen IBM's C/370, but anyway here's SAS's address:

           SAS Institute Inc.
           SAS Circle, Box 8000
           Cary, NC 27512-8000

Sorry, I don't have an appropriate phone number since I'm in Europe and
served by the local branch.

Good luck.

---

I'd like to know, too, especially about compilers for MVS.  The scuttlebut
I've heard is that they are hideously expensive, like everything else for
IBM mainframes...

---

Try sending e-mail to "david@dhw68k.cts.com", there's a mailing list on
370 compilers.

---

Hmmm... maybe I shouldn't give you this information, as you're working for
a competitive organization. :-)

Anyway, IBM sells a pretty good C compiler for CMS and MVS (I think it was
the first ANSI-C compiler on the market; it came out about the same time
as the standard was finalized).  I've been told that it covers all the
latest ESA things.

I was team leader for the library for the first release; at the time it
was a good product, if I might say so myself (this was a while ago;
MVS/ESA didn't exist then).  I think that the current people have
continued to do a good job; and I expect that the RS/6000 compiler
optimizations will be or are being folded into the product.  This is a
much higher quality product than, say, IBM's PL/I compiler.

The compiler was very heavily tested; we found lots of holes in the
Plum-Hall test suite, for example.

There was a Whitesmiths C compiler; if it hasn't been significantly
improved in the last few years, you shouln't consider it (for a time it
was sold as IBM's "program offering" C compiler).

I know people who use SAS's C compiler and say good things about it.  How
well it integrates with IBM's debuggers, I don't know (IBM C is designed
to fit into a "language environment" which allows multi-language
programming and debugging).

---

You should talk to Dr Arthur Norman at the Computer Lab at Cambridge
University. I believe that he has/knows of a good C Compiler for the 370
architecture.

--
Robert P. Tartaris                          email: tartaris@hsi.com
3M Health Information Systems               vmail: (203) 949-6411
100 Barnes Road
Wallingford, CT 06492
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul 29 09:32:42 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: donawa@acaps.cs.mcgill.ca (Chris DONAWA)
Subject: Re: Request: references on BURS
Message-ID: <93-07-078@comp.compilers>
Keywords: optimize, tools
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
References: <93-07-076@comp.compilers>
Date: Wed, 28 Jul 1993 21:24:07 GMT
Approved: compilers@chico.iecc.com

jimy@cae.wisc.edu wrote:

: Could someone please post some references on papers on BURS (Bottom Up
: Rewrite Systems). Any work that uses BURS is welcome. I'm particularly
: interested in how BURS compares with TWIG.

Check out Burg and Iburg.  Iburg is much faster and more robust than TWIG

There are two articles of interest:

burg.ps               PostScript for
              C. W. Fraser, R. R. Henry and T. A. Proebsting,
              `BURG -- Fast optimal instruction selection and tree parsing,'
              SIGPLAN Notices 27, 4 (Apr. 1992), 68-76. 9 pages.
iburg.ps      PostScript for
              C. W. Fraser, D. R. Hanson and T. A. Proebsting,
              `Engineering a simple, efficient code generator generator,'
              ACM Letters on Programming Languages and Systems, 1993,
              to appear. 14 pages.

The second one has a comparison of BURG with TWIG, and BURG uses BURS.

They are available (along with iburg) from ftp.cs.princeton.edu
(128.112.152.13) in pub/iburg.tar.Z.

: Also, I was told that there is a well known paper that proved optimal code
: generation for dags is NP-complete. Does anyone know its reference?

Look in the Dragon book, I seem to remember something there (although
my memory is fading....)

Burg and Iburg claim to be able to generate
an optimal cover for given patterns.  A pattern would correspond to
an AST whose root node is a modify statement e.g.

a := a +b -c *d;

so it works quite well for CISC architectures, but it's fast pattern matching
ability isn't so advantageous for RISC (we just use it as a portable high
level tool for code generation).

Chris Donawa
donawa@acaps.cs.mcgill.ca
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul 29 10:28:44 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Stavros Macrakis <macrakis@osf.org>
Subject: sed compiler?
Message-ID: <93-07-079@comp.compilers>
Keywords: tools, DFA, comment
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Wed, 28 Jul 1993 22:09:06 GMT
Approved: compilers@chico.iecc.com

   A colleague of mine is working on a (very) large sed script that must be
   operated on a wide variety of platforms (SunOS, AIX, HP/UX, OS/2, SCO,
   etc...)

Perhaps it can be translated to Perl.  Since Perl is quite portable and
source is available, this may be a good solution.  A sed-to-perl
translator comes with the perl distribution.  The other possibility would
be to find a version of sed with appropriate licensing conditions (e.g.
none) and distribute that along with the script.

Perl, if you don't know about it, combines the power and elegance (?)  of
awk, sed, grep, C, csh and most of the small Unix utilities into one
language.  It is available for anonymous FTP from uunet.uu.net
(gnu/perlXXX), jpl-devvax.jppl.nasa.gov (pub/perlXXX), and
tut.csi.ohio-state.edu (perl/XXX), and is distributed under the GNU free
software copyright ("copyleft").

	-s
[Another possibility is GNU sed, same copyleft as Perl. -John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul 29 10:29:43 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: preston@dawn.cs.rice.edu (Preston Briggs)
Subject: Re: Request: references on BURS
Message-ID: <93-07-080@comp.compilers>
Keywords: tools, parse
Sender: compilers-sender@chico.iecc.com
Organization: Rice University, Houston
References: <93-07-076@comp.compilers>
Date: Wed, 28 Jul 1993 22:49:08 GMT
Approved: compilers@chico.iecc.com

<jimy@cae.wisc.edu> writes:
>Could someone please post some references on papers on BURS (Bottom Up
>Rewrite Systems). Any work that uses BURS is welcome. I'm particularly
>interested in how BURS compares with TWIG.

The papers you want are

  title="Optimal Code Generation for Expression Trees: An Application
         of {BURS} Theory",
  author="Eduardo {Pelegr\'i}-Llopart and Susan L. Graham",
  booktitle=popl15,
  address="San Diego, California",
  year=1988,
  month=jan,
  pages="294--308"


  title="Simple and Efficient {BURS} Table Generation",
  author="Todd A. Proebsting",
  pages="331--340",
  journal=sigplan,
  year=1992,
  month=jul,
  volume=27,
  number=7,
  note=pldi92


The code you may want is also available in the form of a couple of tools,
burg and iburg.

Iburg and its documentation are available via anonymous ftp from
ftp.cs.princeton.edu (128.112.152.13) in pub/iburg.tar.Z.

Burg and its documentation are available via anonymous ftp from
kaese.cs.wisc.edu.  The compressed shar file pub/burg.shar.Z holds the
complete distribution.

>Also, I was told that there is a well known paper that proved optimal code
>generation for dags is NP-complete. Does anyone know its reference?

The NP-completeness of achieving optimality in the sense of minimizing
register usage for DAGS is proven in

  title="Complete Register Allocation Problems",
  author="Ravi Sethi",
  journal="SIAM Journal of Computing",
  volume=4,
  number=3,
  year=1975,
  month=sep,
  pages="226--248",

Preston Briggs
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul 29 10:45:52 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: wolters@cs.titech.ac.jp
Subject: parallel attribute evaluation methods (summary)
Message-ID: <93-07-081@comp.compilers>
Keywords: summary, attribute, parallel, bibliography
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Thu, 29 Jul 1993 07:18:42 GMT
Approved: compilers@chico.iecc.com

This is a BELATED summary of the replies I received on my request concerning
the current research status of "parallel attribute evaluation methods". I am
grateful to the following people who responded to my request :

      Hans de Vreught <hdev@dutiba.twi.tudelft.nl>
      reps@cs.wisc.edu (Tom Reps)
      Ed Harcourt (harcourt@eos.ncsu.edu)
      Martin Jourdan <Martin.Jourdan@inria.fr>
      Dennis Mickunas <mickunas@sal.cs.uiuc.edu>
      ahicken@parasoft.com (Arthur Hicken )
      Bruno Marmol (marmol@minos.inria.fr)
      oudelutt@cs.utwente.nl (Paul Oude-Luttighuis)
      Stephen J Bevan <bevan@computer-science.manchester.ac.uk>.


The request was :

|>  I am interested in the current research status of  "parallel attribute
|>  evaluation methods". Any references to books, papers, and reports that
|>  discuss techniques and/or problems are appreciated. I would also like
|>  to know about research projects and systems that exploit parallelism
|>  in attribute grammars. In due time I will post a summary.


Wiel Wolters (wolters@cs.titech.ac.jp) ,
Department of Computer Science ,
(Prof. Katayama's research group) ,
Tokyo Institute of Technology ,
2-12-1 O-ookayama, Meguro-ku ,
Tokyo 152 ,
Japan.


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

                          S U M M A R Y

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

Akker, R. op den, H. Alblas, Nijholt, A., Oude Luttighuis, P. :
     An Annotated Bibliography on Parallel Parsing.
     Memoranda Informatica 89-67, University of Twente, the Netherlands,
     December 1989.

Boehm, H.J. and Zwaenepoel. W. :
     Parallel attribute grammar evaluation.
     Technical report COMP TR86-39, Rice University, Houston, May 1986.

     Replaced by :
     Parallel Attribute Grammar Evaluation.
     Rice University Tech report COMP TR87-55, June 1987.
     (No longer available.)

     Refer to :

     Boehm, H.J. and Zwaenepoel, W. :
     Parallel attribute grammar evaluation.
     In . R. Popescu-Zeletin, G. Le Lam, and K.H. Kim, editors, Proceedings
     of the 7th International Conference on Distributed Computing Systems,
     Berlin, Germany, 1987, pp. 347-354.

Fang, I. :
     FOLDS, a declarative formal language definition system.
     Technical report STAN-CS-72-329, Computer Science Department, Stanford
     University, Palo Alto, CA, 1972.

Harcourt, E. :
     Concurrent Compilation via Parallel Attribute Grammar Evaluation.
     Masters thesis, North Carolina State University.

Jourdan. M. :
     A Survey of Parallel Evaluation Methods.
     In . Alblas and B. Melichar , editors, Proceedings of the International
     Summer School on Attribute Grammars, Applications and Systems (Prague,
     Czechoslovakia, June 4-13, 1991), pp. 234-255, Berlin, Germany, June 1991.
     Springer Verlag. Lecture Notes in Computer Science 545.

Jourdan, M. and Parigot, D. :
     Internals and Externals of the Fnc-2 Attribute Grammar System.
     In . Alblas and B. Melichar , editors, Proceedings of the International
     Summer School on Attribute Grammars, Applications and Systems (Prague,
     Czechoslovakia, June 4-13, 1991), pp. 485-504, Berlin, Germany, June 1991.
     Springer Verlag. Lecture Notes in Computer Science 545.

Kaplan, S.M. and Kaiser, G.E. :
     Incremental attribute evaluation in distributed language-based
     environments.
     In Proceedings of the 5th Annual ACM Symposium on the Principles of
     Distributed Computing, pp. 121-130, 1986.

Klaiber, A. and M. Gokhhale. :
     Parallel evaluation of attribute grammars.
     In Rigs. F. and P.M. Kogge, editors, Proceedings of the 1989 International
     Conference on Parallel Processing (University Park, Pennsylvania,
     August 8-12, 1989), pp. 193-201, August 1989.

Klaiber, A. and M. Gokhhale. :
     Parallel Evaluation of Attribute Grammars.
     In IEEE Transactions on Parallel and Distributed Systems, Vol.3, No.2,
     March 1992, pp.206-220.

Klein, E. :
     Attribute evaluation in parallel.
     In Proceedings of the Workshop on Parallel Compilation, Kingston, Ontario,
     May 6-8, 1990.

Klein, E. and Koskimies, K. :
     The parallelization of one-pass compilers.
     Arbeitspapiere der GMD 416, Gesellschaft fur Mathematik und
     Datenverarbeitung mbH, Karlsruhe, Germany, November 1989.

Klein, E. and Koskimies, K. :
     Parallel one-pass compilation.
     In Proceedings of the WAGA '90 International Workshop on Attribute
     Grammars and their Applications (September 19-21 1990, Paris, France),
     pp. 76-90, Berlin, Germany, September 1990. Springer-Verlag.

Klein, E. :
     Parallel Ordered Attribute Grammars.
     1992 IEEE International Conference on Computer Languages, Oakland, CA,
     APR 1992,
     pp. 106-116.

Kuiper, M.F. :
     Increasing parallelism in attribute grammar evaluators: transformations
     and lazy evaluation.
     Proc. Computer Science in the Netherlands, CSN 88 SION, part I, 1988,
     109-121.

Kuiper, M.F. :
     Parallel attribute evaluation.
     PhD thesis, University of Utrecht, Utrecht, The Netherlands,
     November 1989.

Kuiper, M.F. and Dijkstra, A. :
     Attribute evaluation on a network of transputers.
     In John Wexler, editor, Developing Transputer Applications, pages
     142-149, Amsterdam, 1989, IOS.

Kuiper, M.F. and Swierstra, S.D. :
     Parallel attribute evaluation: structure of evaluators and detection of
     parallelism.
     In Workshop on Attribute Grammars and their Applications, Paris, Springer
     Lecture Notes in Computer Science 461, 1990, 61-75.

Oude Luttighuis, P. :
     Parallel algorithms for parsing and attribute evaluation.
     PhD thesis, University of Twente, Enschede, The Netherlands, June 1993.

Reps, T. :
     Scan grammars: Parallel attribute evaluation via data-parallelism.
     To appear in Proceedings of the 1993 ACM Symposium on Parallel Algorithms
     and Architectures (Velen, Germany, June 30 - July 2, 1993).

     (The paper is available via anonymous ftp from ftp.cs.wisc.edu
      See /tech-reports/reports/92/tr1120.ps.Z)

Schell Jr., R.M.
     Methods for constructing parallel compilers for use in a multi-processor
     environment.
     Report No. 958, Department of Computer Science, University of Illinois at
     Urbana-Champaign, Urbana-Champaign, Illinois, USA, February, 1979.
     PhD thesis.

Skillicorn, D.B. and Barnard, D.T. :
     Compiling in Parallel.
     Manuscript, Department of Computing and Information Science, Queen's
     University, Kingston, Canada, September 2, 1992.

Zaring, A.K. :
     Parallel Evaluation in Attribute Grammar-based systems.
     Technical report 90-1149, Department of Computer Science, Cornell
     University, Ithaca, New York, USA, August 1990. PhD thesis.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul 29 10:47:51 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: watson@win.tue.nl (Bruce W. Watson)
Subject: Re: C Compilers for IBM Mainframe
Message-ID: <93-07-082@comp.compilers>
Keywords: C, IBM, comment
Sender: compilers-sender@chico.iecc.com
Organization: Eindhoven University of Technology, the Netherlands
References: <93-07-049@comp.compilers> <93-07-077@comp.compilers>
Date: Thu, 29 Jul 1993 11:31:13 GMT
Approved: compilers@chico.iecc.com

I hate to follow-up to an article that was already a summary, but none of
the summarized answers (on C for the 370) gave the information that I can.

For a time, I worked on the Waterloo C/370 compiler (1988/89). At the time
we had pretty much the best generated code (looking at IBM/SAS/Whitesmith)
and one of the best libraries. We also had no problems passing Plum-Hall.

The compiler is produced and maintained by the Computer Systems Group of
the Faculty of Mathematics of the University of Waterloo, Waterloo, Ont.
Canada (519) 885-1211 (for the Univ. main number). The last time I checked,
CSG was only on BITNET, and not many people really looked there either.
Like many other products by UW (eg. WATFOR, WATBOL, Maple etc.), the compiler
is probably licenced through Watcom, Inc. (at the very least, the doc's were
printed by Watcom Publications, Inc.). Watcom produces some pretty high
quality C/C++ compilers for the Intel x86's, but I doubt there is much in
the way of technology sharing between Watcom C/C++ 386 and Waterloo C/370.

Hope this fills in the missing parts.

Sincerely,
Bruce Watson.

--
Bruce Watson, watson@win.tue.nl, watson@stack.urc.tue.nl
[dmason@plg.uwaterloo.ca (Dave Mason) provided Watcom's address:

Watcom International Corp.
415 Phillip St.
Waterloo, Ontario
Canada

519-886-3700
-John]
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul 29 11:59:25 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: preston@dawn.cs.rice.edu (Preston Briggs)
Subject: Re: Request: references on BURS
Message-ID: <93-07-083@comp.compilers>
Keywords: optimize, tools
Sender: compilers-sender@chico.iecc.com
Organization: Rice University, Houston
References: <93-07-076@comp.compilers> <93-07-078@comp.compilers>
Date: Thu, 29 Jul 1993 15:07:27 GMT
Approved: compilers@chico.iecc.com

>Burg and Iburg claim to be able to generate
>an optimal cover for given patterns.  A pattern would correspond to
>an AST whose root node is a modify statement e.g.
>
>a := a +b -c *d;

Burg generates optimal cover for trees, but not for dags.  Lots of
things make optimal code for trees; the advantage of BURS (and hence
burg) is speed.

Preston Briggs
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Thu Jul 29 17:14:01 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: tfj@apusapus.demon.co.uk (Trevor Jenkins)
Subject: Re: sparc object hackery and Bliss techniques?
Message-ID: <93-07-084@comp.compilers>
Keywords: optimize
Sender: compilers-sender@chico.iecc.com
Organization: Trivia R me
References: <93-07-074@comp.compilers>
Date: Thu, 29 Jul 1993 20:21:29 GMT
Approved: compilers@chico.iecc.com

harding@ug.eds.com writes:
>Now I have a question.  I have the book 'The Design of an Optimizing
>Compiler' by Wulf et. al. and have found the ideas in it to be quite
>interesting even though it is rather old by CS standards (1975).

One of the optimisation that only appears to be used by the Bliss-11
compiler is to determine whether code should be placed before or after the
loop out which it was being moved. They, Wulf et al, described these as
alpha- and beta- code motion; as to which one was which I don't remember I
still awaiting the republication of the book.

>Is there any information anywhere on the Bliss language which it describes...

A paper, by Wulf and others, was published in the Comm of the ACM around
the same time. (Again from memory) this described the rationale of the
language and its design. One of the goals was that all flow-graphs were
reducible; this was achieved but not having an true GOTO statement, though
there were LEAVE and EXITLOOP statements so that you could terminate a
loop in a very controlled fashion.

Variants of the language were defined by Digital, who sponsored Wulf et al
to work on it(?), Bliss-10, Bliss-11, Bliss-36, Bliss-32 and Common Bliss.
The major pieces of software written in Bliss-32 are VMS and ALL-IN-1; the
only acknowledge piece of software written in Common Bliss was RUNOFF.
Common Bliss is that subset which is available on all platforms.

>...or on any languages which use similar compiler techniques?

There is some discussion of Bliss in Hecht's ``Flow analysis of
programming languages'' which also came from the same series of books as
the Wulf book did.

>...I know I may be out of touch asking about such a language.

There was a discussion about Bliss a long time ago here in comp.compilers.
A search through the archive will reveal all that was written about it.
One of the correspondents had been a product manager for Bliss within
Digital and he gave some insightful comments upon the reasons why C
succeeded and Bliss didn't.

This ex-Digital person also alluded to the fact that one of the most
difficult parts of the implementation is/was the macro processor. This
macro facility is not grafted in like C's but rather is part of the
language definition. For fun (!) I looked at the problems of writing a
Bliss compiler for the 80x86 series of processors and I disagree with his
assertion.

>[Incidentally, we're still working on reissuing the book by Wulf et al.
>though it's taking longer than I would have expected.  Around the end of
>the year, I hope. -John]

I wondered why it hadn't appeared yet. I hope that it does.

Whilst some of the techniques described therein may now be out-moded it is
a rare book in that it describes a compiler _implementation_ rather than
discussing the general theory of compiler constuction or syntax analysis.
The discussion of why things were done in the way that they were rather
than some seemingly equivalent method is useful to read.

Also, the VERY brief discussions of the Bliss-11 compiler given in the Red
and Green Dragon books does not do it justice. For those interested in the
details of the implementation and have access to the DECUS library for the
DECsystem-10/20 range should find that the Bliss-11 compiler is included
there, source and all. (Is there anyone still running a DEC-10?)
--
Regards, Trevor.

---------------------------------------------------------------------------
Trevor Jenkins
134 Frankland Rd, Croxley Green, RICKMANSWORTH, WD3 3AU, England
email: tfj@apusapus.demon.co.uk   phone: +44 (0)923 776436     radio: G6AJG
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 31 16:25:13 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: firth@sei.cmu.edu (Robert Firth)
Subject: Re: sparc object hackery and Bliss techniques?
Message-ID: <93-07-085@comp.compilers>
Keywords: optimize
Sender: compilers-sender@chico.iecc.com
Organization: Software Engineering Institute
References: <93-07-074@comp.compilers> <93-07-084@comp.compilers>
Date: Fri, 30 Jul 1993 13:20:25 GMT
Approved: compilers@chico.iecc.com

tfj@apusapus.demon.co.uk (Trevor Jenkins) writes:
>One of the optimisation that only appears to be used by the Bliss-11
>compiler is to determine whether code should be placed before or after the
>loop out which it was being moved. They, Wulf et al, described these as
>alpha- and beta- code motion; as to which one was which I don't remember

Alpha motion: moving code from within the loop to before the loop
(actually, applies to other control structures such as alternations)

Omega motion: moving code from within the structure to after the structure

Rho motion: "rotating" the loop, ie moving code from late in one
iteration to early in the next, or vice versa.

A great book, by the way.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 31 16:27:27 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: Dave.Reese@East.Sun.COM (David Reese)
Subject: Semantics of .align pseudo-op
Message-ID: <93-07-086@comp.compilers>
Keywords: assembler, question
Sender: compilers-sender@chico.iecc.com
Organization: Compilers Central
Date: Fri, 30 Jul 1993 15:18:44 GMT
Approved: compilers@chico.iecc.com

I have been investigating the semantics of the .align pseudo-op in an
effort to convince Sun to change their assembler.  There seem to be two
distinct semantics in use, so I thought I'd solicit opinions from this
news group.

I'm concerned about using .align's within code sections.  There have
traditionally been three locations for aligning code: function boundaries,
general code labels and loop top labels.  In recent years, alignment has
been extended to handle architectural requirements for superscalar
sequences.

For purposes of discussion, assume the general semantics of .align are:
	.align number
Advances the location counter until a "number" boundary is reached.

The semantics are differentiated by the choice of instructions used for
filling skipped space.

1) fillers are valid executable instructions with no side-effects, eg. NOP.
2) fillers are illegal instructions that terminate program execution.

I've looked at several systems to determine their behaviour.  I believe
the RS/6000, Alpha, i860, R4000, i386/i486 and 68K assemblers use the
first choice.  The Sun SPARC assembler and the HP-9000 series assembler
use the second definition.

The rationale for the first choice revolves around its use for aligning
loop top labels and superscalar sequences.

The rationale for the second choice revolves around its use for catching
errant programs that transfer control to invalid locations.

The definition I would prefer is based on the first choice.  If the
assembler has done the analysis to detect that the filler region is in
unreachable code, then either definition is acceptable.  Otherwise, use a
NOP (or equivalent).  Note: Many of the systems above use different
instruction sequences for the filler code depending on the required length
or superscalar mix.
--
David L. Reese, Emulation Products   			   SunSelect
Two Elizabeth Drive		       Chelmsford, MA 01824-4195 USA
david.reese@East.Sun.Com	     (508)442-0608 Fax:(508)250-5513
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 31 16:31:06 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: hobbs@gemmax.enet.dec.com (Steve Hobbs)
Subject: Re: sparc object hackery and Bliss techniques?
Message-ID: <93-07-087@comp.compilers>
Keywords: optimize
Sender: compilers-sender@chico.iecc.com
Reply-To: hobbs@steven.enet.dec.com (Steve Hobbs)
Organization: Digital Equipment Corporation
References: <93-07-074@comp.compilers> <93-07-084@comp.compilers>
Date: Fri, 30 Jul 1993 20:57:00 GMT
Approved: compilers@chico.iecc.com

tfj@apusapus.demon.co.uk (Trevor Jenkins) writes:
>One of the optimisation that only appears to be used by the Bliss-11
>compiler is to determine whether code should be placed before or after the
>loop out which it was being moved. They, Wulf et al, described these as
>alpha- and beta- code motion; as to which one was which I don't remember I
>still awaiting the republication of the book.

Actually they are called alpha-motion and omega-motion.  You can figure
out which moves out the top of a language construct and which out the
bottom based on the position of alpha and omega in the Greek alphabet.
Also, these motions were usually out of the top and bottom of if and
select expressions rather than loops.  Motions called chi- and rho-motion
were usually done on loop expressions.

>A paper, by Wulf and others, was published in the Comm of the ACM around
>the same time. (Again from memory) this described the rationale of the
>language and its design. One of the goals was that all flow-graphs were
>reducible; this was achieved but not having an true GOTO statement, though
>there were LEAVE and EXITLOOP statements so that you could terminate a
>loop in a very controlled fashion.

The CACM article predates the BLISS-11 "green" book by several years.  It
is in CACM 14, 12 (December 1971), written by Wulf, Russell and Haberman
and entitled "BLISS: A Language for Systems Programming."  It describes
the BLISS-10 language and not BLISS-11.  (Among other things, BLISS-10 was
originally missing the LEAVE statement).

>Variants of the language were defined by Digital, who sponsored Wulf et al
>to work on it(?), Bliss-10, Bliss-11, Bliss-36, Bliss-32 and Common Bliss.
>...; the
>only acknowledged piece of software written in Common Bliss was RUNOFF.

There were several other Digital products written in Common Bliss.  An
obvious one is the Common BLISS front end which I am certain that Digital
has acknowledged.  Other products are EDT and CMS.
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.


From compilers Sat Jul 31 16:32:09 EDT 1993
Newsgroups: comp.compilers
Path: iecc!compilers-sender
From: pd@complex.Eng.Sun.COM (Peter C. Damron)
Subject: Re: Request: references on BURS
Message-ID: <93-07-088@comp.compilers>
Summary: top-down vs. bottom-up
Keywords: tools, bibliography
Sender: compilers-sender@chico.iecc.com
Organization: Sun
References: <93-07-076@comp.compilers>
Date: Fri, 30 Jul 1993 20:32:12 GMT
Approved: compilers@chico.iecc.com

<jimy@cae.wisc.edu> writes:
>Could someone please post some references on papers on BURS (Bottom Up
>Rewrite Systems). Any work that uses BURS is welcome. I'm particularly
>interested in how BURS compares with TWIG.

Another place to look for comparisons of top-down tree pattern
matching (basis for TWIG) versus bottom-up tree pattern matching
(basis for BURS, BURG, etc.)  are:

%A C. M. Hoffmann
%A M. J. O'Donnell
%T Pattern Matching in Trees
%J JACM
%V 29
%N 1
%D JAN 1982
%P 68-95

%A Robert R. Henry
%A Peter C. Damron
%T Algorithms for Table-Driven Code Generators Using Tree-Pattern Matching
%R Technical Report 89-02-03
%I University of Washington, Computer Science & Engineering Dept.
%C Seattle, WA
%D FEB 1989

%A Robert R. Henry
%A Peter C. Damron
%T Performance of Table-Driven Code Generators Using Tree-Pattern Matching
%R Technical Report 89-02-02
%I University of Washington, Computer Science & Engineering Dept.
%C Seattle, WA
%D FEB 1989


The first paper gives the basic algorithms and a theoretical analysis
of speed.  The second paper gives more details about implementing
code generators using tree pattern matching.  The third paper gives
experimental results comparing several different code generators on
several different machines.

I don't know the details for obtaining copies of those technical
reports, sorry.

Generally speaking...
bottom-up tree pattern matchers are better for:
 - pattern matcher match-time speed

top-down tree pattern matchers are better for:
 - pattern matcher generation-time speed
 - pattern matcher table/code space (I think, not sure)
 - incrementally adding patterns to matcher


Hope this helps,
Peter.

----------------------------
Peter C. Damron, SunPro, a Sun Microsystems, Inc. Company
Advanced Languages, UMTV 12-40, 2550 Garcia Ave., Mtn. View, CA  94043
pdamron@eng.sun.com
-- 
Send compilers articles to compilers@iecc.com or
{ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request@iecc.com.

