|Book(s) about compilers? firstname.lastname@example.org (1994-01-05)|
|Compiler text email@example.com (William Waite) (1994-01-05)|
|Re: Compiler text firstname.lastname@example.org (1994-01-06)|
|Re: Compiler text email@example.com (William Waite) (1994-02-07)|
|From:||William Waite <firstname.lastname@example.org>|
|Date:||Mon, 7 Feb 1994 22:29:29 GMT|
I was just informed of your message of Thu, 6 Jan 1994 12:37:12 GMT:
> |> Depends on how much theory you want. We took the attitude that giving a
> |> lot of theory to undergraduates IN ADDITION to teaching them how to
> |> actually build a compiler was too much.
> While this does make sense in the context of a *course*, I wonder whether
> you can extend that principle to a book.
> A course is necessarily taught in a limited time, and thus cannot cover
> every aspect of compilers theory, which means that choices have to be
> made. Beside the usual front-end-oriented / back-end-oriented course war,
> theory-oriented vs. implementation-oriented classes tend to become
> today's dilemna.
> As to a book, my opinion is that those choices are unnecessary. You can
> take as much time as you wish to go through a book, and I can't find any
> reason why you should prefer theory to pragmatic issues or reciprocally.
If a book is not to be a compendium of all knowledge, then one MUST make
choices about what material to cover and what material to omit. Don't
forget that books are read on their own, as well as being used as texts
for courses. If a book is being used only as a text for a course, then
the professor can direct the student's attention to a selection of
material that provides a coherent coverage of the topic from the
professor's point of view. When a book is read on its own, however, the
book itself must provide such a selection.
Our choice was to present a complete, coherent design philosophy for
compiler construction. In order to understand that philosophy it is NOT
necessary to understand the theory that underlies it. In fact, our
experience has been that the presence of the underlying theory OBSCURES
the design principles. In order to understand what the theory is trying
to do, you need to know what problem is being solved. You also need to
have a general outline of the solution mechanism.
Each chapter in the book has an section entitled "Notes and References",
where we explain the kinds of theoretical results that apply to the design
principles in that chapter. We also provide references to books and
papers dealing with those theoretical results. Thus when a person reaches
a level of understanding at which they wish to explore the relevant theory
the pointers are available.
Return to the
Search the comp.compilers archives again.