Related articles |
---|
Feedback on compiler book proposal sought CSPT@giraffe.ru.ac.za (Pat Terry) (1995-01-24) |
Newsgroups: | comp.compilers |
From: | "Pat Terry" <CSPT@giraffe.ru.ac.za> |
Keywords: | books, question |
Organization: | Rhodes University |
Date: | Tue, 24 Jan 1995 20:04:42 GMT |
Request for feedback - with rewards.
(Please reply by e-mail, rather than clutter up the news groups. If they
are interesting, I shall summarize the replies).
Some readers of this group may recognize my name as the author of
"Programming Language Translation - A Practical Approach" (Addison Wesley,
1986), a book that concentrated on recursive descent parsing at a fairly
introductory level, heavily case study based, with Pascal as the
implementation language.
During the last few years there have been several shifts in compiler writing
courses, and I am close to completing a second edition, which presently uses
Modula-2 as the implementation language, and makes use of Coco/R as a
compiler tool. I have endeavoured to track the shifts, while still keeping
the general level of the book where it was.
On approaching Addison Wesley with the proposal, the editors asked me to put
out a request on the net for feedback, and I would be grateful to have
comment from readers of this group who are involved in teaching compilers on
points such as
(a) Present course objectives
(b) The approach used - does it emphasize theory, or is it project
oriented, that sort of thing.
(c) The text that is presently used
(d) The level of the students taking the course
(d) The implemenation languages are used (Addison Wesley are understandably
anxious about the interest in Modula-2 as opposed to the more obvious C
or C++, and have suggested that the book should be redone in C or C++ -
clearly a big job!)
(e) Whether the course is based around, or emphasizes the use of compiler
writing tools, and if so, which
(f) How you gauge the acceptability or otherwise of a book on the lines
suggested above, namely essentially confined to recursive descent
parsing, but with attribute grammars used, and some use of compiler
tools.
Simon Plumtree of Addison Wesley has gone so far as to say that if anyone is
ineterested, I could e-mail them my synopsis and a few further details, and
anyone who comments on this in more detail can get a free book from them,
which sounds a useful incitement.
For the moment let me just summarize for those who might know my earlier
book:
- There is much greater emphasis placed on the role of grammars and syntax
directed translation than before. New material has been introduced on
attributed grammars, and the existing material has been rewritten in
places to place the practical aspects on a firmer theoretical
foundation.
- Recent courses have tended to describe, or stress, the use of compiler
writing tools. Rather than to YACC, I chose to use Coco/R, which
produces recursive descent compilers from attributed grammars: compilers
effectively of the sort that an LL(1) approach to compiler writing
suggests might be hand crafted anyway.
- Modula-2 is far better suited to the task (it is also the language used
internally to at least one variant of Coco/R). The case studies take
great advantage of the possibility for decomposition provided by
Modula-2, and act as good examples of software engineering in their own
right.
- Various omissions from the first edition, such as the use of hash
tables, are now covered.
- The exercises, already a strong feature of the first edition, have been
extended further.
- The Modula-2 sources are portable across all PC compilers I know of, and
probably many others as well, with only a very small amount of effort.
As before, adopters of the book would be encouraged to obtain the
software, which I would envisage making available by anonymous ftp.
Two apparently direct competitors have been published by Prentice Hall this
last year. One is by Julian Ullman of King's College, London (not the
Ullman of Aho, Sethi and Ullman). This book "Compiling in Modula-2 - a
first introduction to classical recursive descent compiling" (0-13-088741-2)
describes the development of a compiler for a subset of Modula (ie a more
complex case study than mine), using Modula as the vehicle, and generating
code that has the appearance of assembler language for an IBM PC, along with
an assembler and interpreter for this. It is much weaker on theoretical
underpinning, and makes no use of compiler tools, or of attributed grammars.
The other is a very nicely written and very readable book by John Elder of
Queens, Belfast, in the P/Hall red-and-white series. In ""Compiler
Construction - a recursive descent model" (0-13-291139-6) John seems to have
hit a very good balance between detail and overview, always a difficult
thing to do in this highly technical sort of text. This book also describes
the development of a recursive descent system for a (well-defined) subset
language, using Modula-2 very professionally in a very well decomposed and
structured system. However, Elder does not make use of attributed grammars,
nor does he mention compiler writing tools, so my book scores over it in
that respect even though (at least at present), mine is not as thorough on
code generation, for example.
Mant thanks for reading this far. I look forward to hearing from you.
Pat Terry, Computer Science, Rhodes University, GRAHAMSTOWN 6140, RSA
cspt@cs.ru.ac.za or cspt@giraffe.ru.ac.za or pdterry@psg.com
Voice +27-461-318291 or +27-461-318292 FAX +27-461-25049
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.