home *** CD-ROM | disk | FTP | other *** search
- Path: informatik.tu-muenchen.de!fu-berlin.de!newshub.tc.umn.edu!mr.net!www.nntp.primenet.com!nntp.primenet.com!news.sgi.com!news.mathworks.com!uunet!news-in2.uu.net!ivan.iecc.com!ivan.iecc.com!not-for-mail
- From: compilers-request@iecc.com (John R. Levine)
- Newsgroups: comp.compilers,news.answers,comp.answers
- Subject: comp.compilers monthly message and Frequently Asked Questions
- Supersedes: <monthly-Sep-96@comp.compilers>
- Followup-To: poster
- Date: 1 Oct 1996 07:00:01 -0400
- Organization: Compilers Central
- Lines: 627
- Sender: johnl@iecc.com
- Approved: compilers@iecc.com
- Expires: 1 Nov 96 23:59:00 GMT
- Message-ID: <monthly-Oct-96@comp.compilers>
- NNTP-Posting-Host: ivan.iecc.com
- Keywords: administrivia
- Xref: informatik.tu-muenchen.de comp.compilers:11121 news.answers:83017 comp.answers:21373
-
- Archive-name: compilers/faq
- Last-modified: 1 Sep 96
-
- This is the comp.compilers monthly message.
-
- Contents:
-
- -- What is comp.compilers?
- -- How do I receive it?
- -- How do I submit a message?
- -- What happens to submitted messages?
- -- What message formats are appropriate?
- -- What topics are and aren't appropriate?
- -- 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 QBasic compiler?
- * 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?
- * Are there C++ versions of yacc and lex?
- * What other compilers and tools are freely available?
- * How can I get started with yacc and lex and compiler writing in general?
- * Where can I FTP the sources to the programs in Holub's "Compiler
- Design in C" or Mak's "Writing Compilers and Interpreters" ?
- * Where can I learn about garbage collection ?
-
- -- 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 cannot tell how large the readership is, since the anarchic nature of
- usenet makes it impossible to tell who reads it, but a reasonable guess is
- that the total is over 100,000, which would make it by far the most widely
- read medium on the topic in the world.
-
- 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. 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 printed journals, 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 70 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.
- Another possibility is that a message doesn't have a valid return e-mail
- address. See the next question for more about what's on and off topic.
-
- I discard messages that say "reply to me because I don't read this group",
- and forward spams back to the appropriate postmaster. Messages from
- anonymous or anonymized addresses are not acceptable, although I suppose I
- could be persuaded to post a message with the sender's identity removed
- given a persuasive enough reason.
-
- 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. If you write to me and complain
- about the quote filter, I'll discard both your complaint and your original
- message.
-
- -- What message formats are appropriate?
-
- Plain old ASCII. No MIME, uuencoded, zipped, LaTeX, HTML, NeXTmail, RTF, GIF,
- gzip, MSN Exchange, or anything else, just ASCII, because a substantial
- fraction of the readership still can't handle anything else. And keep line
- lengths to between 70 and 80 characters, and don't justify lines with extra
- white space nor indent the whole message with white space. (Your moderator
- has strong aesthetic opinions.)
-
- If you want to make something non-ASCII available to the readership, put it on
- an FTP or WWW server and send in a descriptive note with the URL. Material of
- general interest can go on the archive server here. Send me a message at
- compilers-request@iecc.com if you have something for the archive.
-
- -- What topics are and aren't appropriate?
-
- Any message discussing aspects of compiler design and implementation is
- appropriate. Language design is usually OK as well insofar as it affects
- compiler design, until it drifts off into theological issues like where the
- semicolon goes.
-
- Questions about particular compilers, programming languages, and systems
- should go to newsgroups about the language or system.
-
- "For sale" messages should go to one of the misc.forsale or regional
- forsale groups.
-
- I post one announcement per conference, for any conference with a topic
- relevant to compilers. I usually post student offers to share a room at a
- conference, and should probably digest them as well.
-
- Postings announcing commercial products are welcome so long as there
- is substantially more technical content than hype.
-
- ``Help wanted'' and ``Position Available'' messages are collected each week
- and posted in a digest every Sunday. Resumes are discarded, since most of
- them come from robots mechanically sending them out in response to every
- message in misc.jobs.offered.
-
- For technical reasons, I can't cross-post messages to other moderated groups,
- except one or two like comp.parallel with whom I have an informal agreement
- to allow cross-posts.
-
- I usually return messages that directly attack individuals, since the net has
- plenty of other places for ad-hominem battles.
-
- -- 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 over 36 megabytes, and are growing at over 700K per
- month. People with ftp access can get them from iecc.com in directory
- pub/articles. The archives contain a gzipped Unix mailbox format file for
- each month, with names like 91-08.gz. Directory pub/index contains index
- files, one for each year. You can retrieve messages by full text search or
- by message number at the compilers web site at
- http://www.iecc.com/compilers/.
-
- 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 books for later years, 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
- FTP archive at iecc.com, 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 FTP 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.
-
- Also see ctree, which parses C code into parse trees and makes symbol
- tables, available from ftp.cs.wisc.edu:/coral/tmp/spf/ctree.0.0.tar.gz.
- It's described in message 95-07-114.
-
- * 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/vendors/djgpp. Another DOS version
- of GCC called EMX is at ftp.informatik.tu-muenchen.de [131.159.0.198] in
- /pub/comp/os/os2/devtools/emx+gcc.
-
- * Are there other free C compilers?
-
- lcc is the retargetable compiler for ANSI C described in `A Retargetable C
- Compiler: Design and Implementation' (Benjamin/Cummings, 1995, ISBN
- 0-8053-1670-1), which will be available in December 1994. lcc is in
- production use at Princeton University and AT&T Bell Laboratories. The
- current version of lcc generates code for the SPARC, MIPS R3000 and 386
- under DOS (no libraries for DOS are available yet). The code generator
- generator is available too as a icon program, a C version has been
- promised. There are mailing lists lcc{,-bugs}@cs.princeton.edu, managed
- by majordomo@cs.princeton.edu. The object code is not great, but the
- compiler is ANSI compatible and is small and fast. You need a
- preprocessor such as the one in gcc to get lcc to run. Lcc uses a
- hard-coded C parser because it's faster than yacc.
-
- Thanks to Horst von Brand <vonbrand@inf.utfsm.cl> for this info.
-
- * Where can I get a Fortran grammar in yacc or a Fortran compiler?
-
- I have a small subset parser in the archive at iecc.com. 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 netlib.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 at iecc.com, though I
- haven't tried to use any of them.
-
- According to the comp.lang.ada FAQ, a yacc grammar for Ada 95 is available:
-
- ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat/grammar9x.y
-
- and a lex grammar for Ada 95 is available:
-
- ftp://sw-eng.falls-church.va.us/public/AdaIC/standards/95lrm_rat/lexer9x.l
-
- There's an Ada front end called GNAT for GCC, available at
- ftp://cs.nyu.edu/pub/gnat/.
-
- * 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 comp.lang.cobol.
-
- * Where can I get a Basic grammar in yacc?
-
- Take a look at ftp.uu.net:usenet/comp.sources.unix/volume2/basic which
- contains a Basic interpreter with yacc parser.
-
- * Where can I get a QBasic compiler?
-
- You buy it from Microsoft. A shareware compiler ASIC is available
- from simtel mirrors in /msdos/basic/asic???.zip, such as ftp.coast.net
- in /SimTel/msdos/basic/asic???.zip. It handles a large subset of Qbasic.
-
- * Where can I get a PL/M grammar?
-
- There's one in the archives at iecc.com, 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, but is not subject to the Gnu
- copyleft. Berkeley Yacc is a quite compatible PD version of yacc by Bob
- Corbett, available on ftp.cs.berkeley.edu, in ~ftp/ucb/4bsd/byacc.tar.Z. 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, http://www.mks.com 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
- SimTel/msdos/pgmutil/bison111.zip. See message 92-07-012 for more info.
-
- * Are there C++ versions of yacc and lex?
-
- flexx++ and bison++ can be found at:
-
- ftp://ftp.th-darmstadt.de/pub/programming/languages/C++/tools/flex++bison++/
-
- * What other compilers and tools are freely available?
-
- There is a five-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,
- usually 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.
-
- Also visit the web page http://www.first.gmd.de/cogent/catalog/ which includes
- pointers to a variety of compiler tools and resources.
-
- * 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 (that's me), 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. Source code can be FTP'ed from ftp.ora.com.
-
- 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). The C tools are at
- ftp://ftp.csc.ncsu.edu/pub/compilers/crafting_compiler/tools
-
- 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. (Out of print.)
-
- 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).
-
- A. Pyster, "Compiler Design and Constuction (Tools and Techniques)",
- Second Ed., Van Nostrand Reinhold, ISBN: 0-442-27536-6.
-
- Gabriela O. de Vivo <gdevivo@dino.conicit.ve> writes: The book covers the
- general principles of compiler design and presents a good number of
- examples focusing on the building of pieceparts of compilers for C and
- Pascal. The implementation (construction) language is C. Note that this
- edition (in contrast with the previous one) is very related to the Unix
- world, including the use of tools like Lex, Yacc, and standard utilities.
- (Out of print.)
-
- Thomas W. Parsons, "Introduction to compiler construction",
- Computer Science Press, c1992, ISBN: 0-716782618.
-
- Quinn Tyler Jackson <qjackson@direct.ca> writes: Provides a broad overview
- of the topics of finite state automaton theory (deterministic and
- non-deterministic), lexical analysis, parsing models, and target generation
- and optimization strategies. Includes appendices on lex and yacc. Most
- examples in Pascal. (Recommended reading for the faint at heart.)
-
- "Programming a Personal Computer" by Per Brinch Hansen
- Prentice-Hall 1982 ISBN 0-13-730283-5
-
- Joe Snyder <joe@semaphorecorp.com> writes: This unfortunately-titled book
- explains the design and creation of a single-user programming environment
- for micros, using a Pascal-like language called Edison. The author presents
- all source code and explanations for the step-by-step implementation of an
- Edison compiler and simple supporting operating system, all written in
- Edison itself (except for a small supporting kernel written in a symbolic
- assembler for PDP 11/23; the complete source can also be ordered for the IBM
- PC).
-
- The most interesting things about this book are: 1) its ability to
- demonstrate how to create a complete, self-contained, self-maintaining,
- useful compiler and operating system, and 2) the interesting discussion of
- language design and specification problems and trade-offs in Chapter 2.
-
-
- "Brinch Hansen on Pascal Compilers" by Per Brinch Hansen
- Prentice-Hall 1985 ISBN 0-13-083098-4
-
- Joe Snyder <joe@semaphorecorp.com> writes: Another light-on-theory
- heavy-on-pragmatics here's-how-to-code-it book. The author presents the
- design, implementation, and complete source code for a compiler and p-code
- interpreter for Pascal- (Pascal "minus"), a Pascal subset with boolean and
- integer types (but no characters, reals, subranged or enumerated types),
- constant and variable definitions and array and record types (but no packed,
- variant, set, pointer, nameless, renamed, or file types), expressions,
- assignment statements, nested procedure definitions with value and variable
- parameters, if statements, while statements, and begin-end blocks (but no
- function definitions, procedural parameters, goto statements and labels,
- case statements, repeat statements, for statements, and with statements).
-
- The compiler and interpreter are written in Pascal* (Pascal "star"), a
- Pascal subset extended with some Edison-style features for creating
- software development systems. A Pascal* compiler for the IBM PC is sold by
- the author, but it's easy to port the book's Pascal- compiler to any
- convenient Pascal platform.
-
- This book makes the design and implementation of a compiler look easy. I
- particularly like the way the author is concerned with quality,
- reliability, and testing. The compiler and interpreter can easily be used
- as the basis for a more involved language or compiler project, especially
- if you're pressed to quickly get something up and running.
-
-
- "A Model Implementation of Standard Pascal" by Jim Welsh & Atholl Hay
- Prentice-Hall 1986 ISBN 0-13-586454-2
-
- Joe Snyder <joe@semaphorecorp.com> writes: This book is only really useful
- if you need to implement a COMPLETE version of a platform-independent
- Pascal, but I find it interesting because the 483 pages consist entirely of
- the source code listing for the compiler and p-code interpreter, including
- copious {comments} to explain the code. The code eagerly delves into the
- horrible minutiae necessary when implementing a complete language, and proves
- that no language designer should be allowed to present his design until
- AFTER being forced to write a complete compiler for the language.
-
- If anyone sends in others, I'll be happy to add them to the list.
-
- * Where 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 Mak's book there's ordering information for diskettes with
- the code. Holub sells disks direct, finger holub@violet.berkeley.edu for
- contact info.
-
- * Where can I learn about garbage collection ?
-
- Garbage collection (more properly, automatic storage management) has its own
- mailing list and FAQ. The FAQ is:
-
- http://www.centerline.com/people/chase/GC/GC-faq.html
-
- To join the list, send "subscribe gclist" to majordomo@iecc.com.
-
- Regards,
- John Levine, comp.compilers moderator
- --
- Send compilers articles to compilers@iecc.com,
- meta-mail to compilers-request@iecc.com.
-