[comp.compilers] Experiences using Holub's Compiler Design in C ?

mcguire@cs.tamu.edu (Tim McGuire) (11/30/90)

Has anyone out there used Allen Holub's Compiler Design in C for
a compiler course?  I will be teaching a course this spring for
senior undergraduates and would appreciate any feedback you may
have to offer.

Tim McGuire
mcguire@cs.tamu.edu
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

johnm@cory.Berkeley.EDU (John D. Mitchell) (12/01/90)

In article <9011291759.AA06388@neuron.tamu.edu> mcguire@cs.tamu.edu (Tim McGuire) writes:
>Has anyone out there used Allen Holub's Compiler Design in C for
>a compiler course?  I will be teaching a course this spring for
>senior undergraduates and would appreciate any feedback you may
>have to offer.

How about some feedback from a student?

I have just completed the undergraduate compiler class at UCB.  The
official text was the Dragon book.  I personally used Mr. Holub's book as
a supplementary text.  Since this course is designed as an introduction to
the fundamental computing ideas, techniques, and such (exemplified by
compiler design), the dragoon book can be daunting.  It presents a lot of
very dense material very quickly.  As my TA said "You have to already know
the stuff to be able to read the book."  I find that frustrating.  Good
lecturing by the professor (S. Graham) and my TA to clear most of the
confusion.

Reading Compiler Design in C was a nice change of pace.  It's very
readable.  Information is presented in a clear and quite easy to follow
manner.  Seeing (complete, working) code that did what we were to learn
was great.  The problem with all that code was that you could get lost
amid the details and lose track of the underlying theory.  Speaking of
theory, the book did gloss over the more complicated stuff in favor of the
code explanations and basics (Mr. Holub states this up front).  I wouldn't
hesitate to recommend it for an introductory class.  Just be prepared to
supplement the theory and watch out for the typos!

As a side note: One of the biggest problems in my class was the lack of
preparedness of the programming assignments.  They thought they could hack
one of the other professor's code to work for there language.  Oops!  That
left us students having to debug not only our code but theirs as well.
Please make sure that you (the management) has completed a working version
of each assignment before you give it out.  Also, proof-read the
assignment handouts.  We spent 5 hours tracking down a bug (in our
generated 68020 assembly) that ended up being due to wrong documentation.

Side note #2:  We worked in two person teams.  This works great!

Good luck,
	John D. Mitchell
	johnm@cory.Berkeley.EDU
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.

jmd@dlogics.COM (Jens M. Dill) (12/03/90)

In article <9011291759.AA06388@neuron.tamu.edu>,
         mcguire@cs.tamu.edu (Tim McGuire) writes:
> Has anyone out there used Allen Holub's Compiler Design in C for
> a compiler course?

I haven't used Holub's book for teaching, but I have used it as a reference
for compiler development and I have taught compiler courses from Aho et al.
Here are my gut reactions to Holub's book.

   1.  It is a very readable, practical, down-to-earth view of the subject.
       Students are going to find it easier to use than any of its competitors,
       especially if the course focuses on practical aspects as opposed to
       theory.

   2.  It shows signs of being hastily assembled.  Minor errata are frequent,
       and you need to be on your toes.  Read everything first, then try it
       out, and make sure you are sure that it works.  Most of it does, but
       you don't want to be caugth when it doesn't.  By all means, contact
       Gene Holub and make sure you have the latest errata listing.  He's
       been doing a good job keeping up with it, as near as I can tell.
       But don't throw out the book due to the errata.

   3.  The book contains one serious technical error.  The definition of
       ambiguity, as applied to context-free grammars is just plain wrong.
       It is the work of about five minutes for a language theorist to
       construct examples of unambiguous grammars that satisfy Holub's
       definition of ambiguity and ambiguous grammars that don't.  [Gene,
       if you are listening, I'd meant to open a discussion with you on
       the subject, but my new employer's outgoing E-mail connections are
       a pain. -- JMD].  Again, this is not a reason to avoid the book.

Hope this helps.  And good luck.
   

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

jmd@dlogics.COM (Jens M. Dill) (12/05/90)

My apologies to Allen Holub for mis-remembering his name in my last posting.

                                 -- Jens M. Dill (jmd@dlogics.com)
-- 
Send compilers articles to compilers@iecc.cambridge.ma.us or
{ima | spdcc | world}!iecc!compilers.  Meta-mail to compilers-request.