Re: Learning compiler technology

"John H. Lindsay" <eil@kingston.net>
27 Jun 2000 00:54:28 -0400

          From comp.compilers

Related articles
Learning compiler technology jatsi@mbnet.fi (Jami) (2000-06-20)
Re: Learning compiler technology grpdefi@wanadoo.fr (Jacques Thibault) (2000-06-22)
Re: Learning compiler technology tscoffey@my-deja.com (2000-06-27)
Re: Learning compiler technology eil@kingston.net (John H. Lindsay) (2000-06-27)
Re: Learning compiler technology webid@asi.fr (Armel) (2000-06-27)
| List of all articles for this month |

From: "John H. Lindsay" <eil@kingston.net>
Newsgroups: comp.compilers
Date: 27 Jun 2000 00:54:28 -0400
Organization: Posted via Supernews, http://www.supernews.com
References: 00-06-079
Keywords: courses

Dear Jami:


You wrote:
>
> I'm interested in learning compiler technology and I have some guestions.
>
> -What level of maths one needs to know to understand compiler technology?
>
> -Does compiler technology books presume university level maths?


Yes, all the current books that I know of either do or develop enough
of the Mathematics themselves. The Mathematics is not Calculus or
Geometry, but rather the Theory of Languages coupled with the Theory
of Automata, normally presented in the 3rd. year through graduate
levels of honours Computing Science and Mathematics programs. All the
compiler-compiler systems that I know of use the theory directly in
constructing a compiler skeleton from a language specification, and
some appreciation of the theory is needed to use a compiler-compiler
effectively.


There is one method, recursive decent compilation, that may be done
with a minimum of knowledge of Languages, and this is described, if
briefly, near the beginning of all of the books on compiler technology
that I have seen. One would need either a course on programming with
abstract data structures such as lists and trees, or a very good
appreciation of the latter from experience and reading.


> -What books would you recommend?


'The Dragon Book' (so called because of the cover, picturing a dragon
(the supposed difficulty of compilation) and a knight in shining
armour with a PC), titled "Compilers -- Principles, Techniques, and
Tools by Aho, Sethi and Ullman, Addison-Wesley Publishing Company,
ISBN 0-201-10088-6. This is an old reliable stand-by and it does
present most of the theory needed, but very subtley, almost to the
point of making the presence of the theory unnoticable.


Language Translation Using PCCTS & C++, a Reference Guide, by Terrance
John Parr, Automata Publishing Company, San Jose, California,
U.S.A. 95129, Phone 408-255-0705, ISBN 0-9627488-5-4. I suspect this
is out of print, but might be found in second hand book stores around
university campuses. There was a move to make a version available on
the web, but I don't have the URL.


> -What other sources would you recommend (e.g web pages)?


This news group and its companion comp.compilers.tools.pccts. There
are also a couple of others, comp.compilers.lcc and
comp.compilers.tools.javacc, that also have their participants and
advocates. Keep an eye on or ask on the pccts group for links to
related web pages; the pccts system is freely available on the web,
including the more recent version that runs on the Java system
(available for most systems) and produces a compiler skeleton in Java.


> Thanks in advance.
> [There's lots of resources in the FAQ. Some set theory is useful, but
> I wouldn't think other college-level math was essential. -John]


The newsgroup monitor is right on there, both about the FAQ and the
mathematics problably not being absolutely essential (if one goes
about things reasonably). Now that he mentions the FAQ, I'll bet
something close to my comments are in there.
--
John H. Lindsay eil@kingston.net
48 Fairway Hill Crescent, Kingston, Ontario, Canada, K7M 2B4.
Phone: (613) 546-6988 Fax: (613) 542-6987


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.