459 lines
23 KiB
Plaintext
459 lines
23 KiB
Plaintext
Newsgroups: comp.compilers,news.answers,comp.answers
|
|
Path: bloom-beacon.mit.edu!hookup!swrinde!sdd.hp.com!think.com!spdcc!iecc!compilers-sender
|
|
From: compilers-request@iecc.com (John R. Levine)
|
|
Subject: comp.compilers monthly message and Frequently Asked Questions
|
|
Message-ID: <monthly-May-94@comp.compilers>
|
|
Followup-To: poster
|
|
Keywords: administrivia
|
|
Sender: compilers-sender@chico.iecc.com
|
|
Supersedes: <monthly-Apr-94@comp.compilers>
|
|
Organization: Compilers Central
|
|
Date: Sun, 1 May 1994 11:00:03 GMT
|
|
Approved: compilers@iecc.com
|
|
Expires: Wed, 1 Jun 1994 23:59:00 GMT
|
|
Lines: 442
|
|
Xref: bloom-beacon.mit.edu comp.compilers:2929 news.answers:18907 comp.answers:5140
|
|
|
|
Archive-name: compilers-faq
|
|
|
|
This is the comp.compilers monthly message, last edited May 1994.
|
|
|
|
Contents:
|
|
|
|
-- What is comp.compilers?
|
|
-- How do I receive it?
|
|
-- How do I submit a message?
|
|
-- What happens to submitted messages?
|
|
-- How do I respond to the author of a message?
|
|
-- How do I contact the moderator?
|
|
-- Are back issues available?
|
|
|
|
-- Some Frequently Asked Questions:
|
|
|
|
* Where can I get a C or C++ grammar in yacc?
|
|
* Where can I get the Gnu C compiler?
|
|
* Are there other free C compilers?
|
|
* Where can I get a Fortran grammar in yacc or a Fortran compiler?
|
|
* Where can I get Modula-2, Pascal, Ada, or SQL grammars in yacc?
|
|
* Where can I get a Cobol grammar in yacc?
|
|
* Where can I get a Basic grammar in yacc?
|
|
* Where can I get a PL/M grammar?
|
|
* Are there free versions of yacc and lex ?
|
|
* Are there versions of yacc and lex for MS-DOS?
|
|
* What other compilers and tools are freely available?
|
|
* How can I get started with yacc and lex and compiler writing in general?
|
|
* Where I can I FTP the sources to the programs in Holub's "Compiler
|
|
Design in C" or Mak's "Writing Compilers and Interpreters" ?
|
|
|
|
-- 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, contents consisting only of another quoted
|
|
message, or a personal message for the author of a previous 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 just another node on the Internet.) 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 18 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.36.61) where James
|
|
Larus has kindly provided space, in directory pub/comp.compilers. 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. I am in the process of moving the archives to iecc.com
|
|
(140.186.81.1). The network software there is buggy, so although FTP works,
|
|
it can be excruciatingly slow. At iecc.com, everything is compressed with
|
|
gzip rather than compress.
|
|
|
|
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 prep.ai.mit.edu. You need an existing C compiler and
|
|
libraries to bootstrap it.
|
|
|
|
A development system called "djgpp" by DJ Delorie <dj@ctron.com> is based
|
|
on gcc and other GNU programs, and runs on 386 or higher PCs running
|
|
MS-DOS. This is available by FTP from the SimTel archives (primary mirror
|
|
is oak.oakland.edu) in the directory pub/msdos/djgpp.
|
|
|
|
* 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
|
|
nearly 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.
|
|
|
|
Also see the Cobol FAQ posted monthly to comp.lang.misc and alt.cobol.
|
|
|
|
* 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.
|
|
|
|
* Where can I get a PL/M grammar?
|
|
|
|
There's one in the archives, called plm.shar. Also see message
|
|
94-03-062 for a report on a PL/M to C translator.
|
|
|
|
* 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
|
|
Steve Robenalt <free-compilers@idiom.berkeley.ca.us>. 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. An errata list is in message 90-06-081.
|
|
|
|
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. Taylor Hutt <thutt@access.digex.net>
|
|
comments that the book is a piece of junk. The code that is contained in
|
|
the book is full of bugs, and the code that it generates will not work.
|
|
|
|
"The Art of Compiler Design", Thomas Pittman & James Peters, Prentice-Hall
|
|
International, 1992, Englewood Cliffs, NJ 07632, 0-13-046160-1
|
|
|
|
Franklin L. Vermeulen <vfrank@vnet3.vub.ac.be> writes: This is a very
|
|
nicely written and straightforward text on compiler construction. There
|
|
is a certain (unavoidable?) amount of overlap with a course on automata
|
|
(as in Aho, Sethi and Ullman). It is based on Modula-2 and on an
|
|
experimental tool, the TAG compiler-compiler (Transformational Attribute
|
|
Grammar) which seems to be a C-independent superset of lex/yacc, because
|
|
its syntax allows you to specify all semantic actions without a single
|
|
line of C-code (or any other implementation language, for that matter).
|
|
|
|
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" or Mak's "Writing Compilers and Interpreters" ?
|
|
|
|
You can't. In each book there's ordering information for diskettes with
|
|
the code.
|
|
|
|
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.
|