Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!feed.news.qwest.net!mpls-nntp-02.inet.qwest.net!216.196.98.147.MISMATCH!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!news.iecc.com!nerds-end From: Johann 'Myrkraverk' Oskarsson Newsgroups: comp.compilers Subject: Re: Good practical language and OS agnostic text? Date: Wed, 06 Jun 2012 16:52:58 +0000 Organization: A noiseless patient Spider Lines: 53 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <12-06-007@comp.compilers> References: <12-04-019@comp.compilers> <12-05-003@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: leila.iecc.com 1339018234 2795 64.57.183.58 (6 Jun 2012 21:30:34 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Wed, 6 Jun 2012 21:30:34 +0000 (UTC) Keywords: books Posted-Date: 06 Jun 2012 17:30:34 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:668 basile@starynkevitch.net writes: > On Tuesday, April 17, 2012 11:28:46 PM UTC+2, (unknown) wrote: >> Guys, I'm having a bear of a time finding a good practical language >> and OS agnostic text on writing a compiler. I'm weak in math and not >> interested in the theoretical details. > > In addition to all the good advice given by others, you might be > interested by Christian Queinnec's Lisp in Small Pieces > http://pagesperso-systeme.lip6.fr/Christian.Queinnec/WWW/LiSP.html > which describes many flavors of Lisp interpreters and compilers. I have not read the English version, only the 2nd edition in French, Principes d'Implantation de Scheme et Lisp. Each chapter has its own version of a complete interpreter implementing the features discussed. So it's quite a down to the earth discussion. Even though it discusses lisp with an implementation in lisp it's well worth reading, or browsing through, for any language or compiler project. But you need to be able to read lisp. Which may or may not be worse than math. It goes over lisp features, one at a time. The difference between lisp 1 and 2; that is the difference between lexical and dynamic scoping and the andvances & difficulties each imposes on the interpreter. Recursion, single and mutual. And how each lisp version influences the implementation. It goes into continuations and control flow. A discussion on how exceptions are handled in the by interpreter. A chapter on side effects. For the mathimatically inclined, a chapter in implementing Lisp in Lambda Calculus. To me, this was amusing, but not apparently relevant to practical applications. The chapters I haven't read yet are (or recently enough to comment) are Fast Interpretation, Compilation, Reflection, Macros (not to be confused with the C preprocessor), Compiling to C and Essence of an Object System. -- Johann Oskarsson http://www.2ndquadrant.com/ |[] PostgreSQL Development, 24x7 Support, Training and Services --+-- | Blog: http://my.opera.com/myrkraverk/blog/