home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.compilers,news.answers,comp.answers
- Path: bloom-beacon.mit.edu!hookup!news.moneng.mei.com!howland.reston.ans.net!agate!blanket.mitre.org!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-Apr-94@comp.compilers>
- Followup-To: poster
- Keywords: administrivia
- Sender: compilers-sender@chico.iecc.com
- Supersedes: <monthly-Mar-94@comp.compilers>
- Organization: Compilers Central
- Date: Fri, 1 Apr 1994 12:00:03 GMT
- Approved: compilers@iecc.com
- Expires: Sun, 1 May 1994 23:59:00 GMT
- Lines: 439
- Xref: bloom-beacon.mit.edu comp.compilers:2732 news.answers:17134 comp.answers:4370
-
- Archive-name: compilers-faq
-
- This is the comp.compilers monthly message, last edited April 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.
-
- * 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?
-
- 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.
-