[mod.compilers] Compilers digest Vol. 1 Number 4

compilers@ima.UUCP (01/03/86)

[from compilers-request at IMA]

To: compilers
--------
Date: Mon, 9 Dec 85 08:21:18 est
The new Red Dragon is a big, beefy text, but it deals almost exclusively with
the programming semantics of algebraic-type languages (C, Pascal, PL/I...).
Could somebody please direct me to a book which addresses more directly
the problems inherent in compiling functional languages (Lisp and friends)?

: Ben Goetter :
	UUCP:   {decvax,hsi,spock,apollo}!yale!goetter@UUCP
	ARPA:   goetter@yale.ARPA
("We are not in the Eighth Dimension.  We are over New Jersey.")
-----------------------------------------------------------------------------
Send submissions to:  ima!compilers
Send requests for additions, deletions, back issues, etc. to:
	ima!compilers-request

ima is reachable as { ucbvax!cbosgd | ihnp4 | cca | bbncca | think |
	uiucdcs | allegra | inmet | yale | harvard }!ima!...

Arpa mail may make it to ima!compilers@CCA-UNIX or ima!compilers@BBNCCA

Peter Barada (editor)	John Levine (mailman)
--------

compilers@ima.UUCP (01/03/86)

[from darryl at ISM780C (Darryl Richman)]

I was just reviewing some of the previous digests and I notcied Ben
Goetter's request for information about compiling Lisp.  Here's a book I
read a while ago that has a lot of good information about building machines
for executing Lisp:

    "Functional Programming - Application and Implementation" Peter
    Henderson, Prentice Hall International, Englewood Cliffs, New Jersey,
    1980, ISBN 0-13-331579-7.

I suspect that a lot of the information describing Henderson's Lisp machine
could be used to describe the runtime environment for a compiler.

	    --Darryl Richman, INTERACTIVE Systems Corp.
	    ...!cca!ima!ism780!darryl
	    The views expressed above are my opinions only.

--------

compilers@ima.UUCP (01/07/86)

[from rmc at DECVAX/GENRAD/PANDA/TEDDY]

Organization: GenRad, Inc., Concord, Mass.

	For a long time, the two best / only books on Lisp implementation
seemed to be Allen's "Anatomy of Lisp" (Academic Press?) and Henderson's
"Functional Programming:  Application and Implementation" (Prentice Hall,
CAR Hoare series with red bindings).  I found Allen's text somewhat dry.
The main focus was on memory allocation techniques and dynamic binding
techniques (important questions to be sure, but...)  Henderson's text was
less detailed in such areas, but it also did a better job on lazy
evaluation and stream support.  It also has a very good definition of the
SECD machine, which is one of the abstractions used to build reasonable
compilers for Lisp.  You can also look in Darlington, Henderson & Turner
"Functional Programming and its Applications" for some nice articles by
Wise and Sussman on optimizing interpreters (the book itself contains
general articles from a U of Newcastle on Tyne seminar, and includes
information on typed ffp by Guttag and other goodies).

	Recently (Nov 1985?) MIT Press published Gabriel's "Performance and
Evaluation of Lisp Systems".  It really has much more low level
implementation information available than the title indicates, but i have
only skimmed this one and don't know it thoroughly.

	A major problem with most of the above is that they don't give you
any details about lexical scoping.  You don't really want to do a Lisp with
dynamic scoping any more - there are just too many programming techniques
that this makes difficult.  Sussman and Abelson's "Structure and
Interpretation of Computer Programs" (MIT Press again) is a freshman text 
introducing programming, but does show some of the discipline.  A better
source are the Steele and Sussman papers on Scheme from the MIT AI Lab (try
AI TR 453 may 1978 "The Art of the Interpreter",  527 nov 1979 "The Dream
of a Lifetime:  A Lazy Scoping Mechanism" and/or Steele's thesis AI TR 474
"Rabbit:  A Compiler for Scheme").

	Enjoy!
					R Mark Chilenskas
					decvax!genrad!panda!rmc
--------