[comp.lang.scheme] Compiling Scheme

jk0@sun.soe.clarkson.edu (Jason Coughlin) (01/10/90)

This is quite a hot issue so I thought I'd post a summary of what I
received.  Thanks to everyone who gave me a lead!

The best I've found so far is in _Structure and Interpretation and
Computer Programs_ by Harold Abelson, Gerald Jay Sussman, and Julie
Sussman.  This is a GREAT book that IMHO should be used to teach
undergrad Programming Languages courses.

Anyway, enjoy!

From: Ozan Yigit <oz@nexus.yorku.ca>
	* The best reference on compiling scheme appears to be SIofCP
	of Abelson & Sussman. 
	* Also check out xscheme 
	* Allen's "Anatomy Of Lisp" also has a

From: Matthias Felleisen <matthias@rice.edu>
	* You may want to look at a paper by Will Clinger in the proceedings of
Lisp & Functional Programming 1984. His paper on deriving a byte-code
compiler for Scheme has some title like "An exercise in denotational
semantics." The resulting system, Scheme 311, was used at Indiana for
a few years.

	* If you want the code of a byte-code compiler for unix
machines and you have FRANZ LISP, write to nlg@indiana.iuvax.cs.edu
and ask whether they still distribute Scheme84.  I have a revision of
Scheme84, called Scheme88, that is pretty much the same thing (a bit
cleaner inside, but not much) except that it uses Common Lisp for the
interpretation of byte-code.

From: Denys Duchier <duchier-denys@YALE.ARPA>
	* Check Guy Steele's thesis (RABBIT a compiler for scheme) (MIT)

	* also David Krantz's thesis (ORBIT, an optimizing compiler for
	scheme) (YALE).

From: Simon Leinen <simon%opal.cs.tu-berlin.de%tub.BITNET@clvm.clarkson.edu>

here comes a list of references to books and articles about the
problem of compiling Scheme or Lisp.  I don't know whether it is
correct `refer' syntax.  I distributed the following keywords of my
own creation:

scheme  - concerned with scheme rather than lisp
lisp    - concerned with lisp rather than scheme
commonlisp - maclisp/common lisp (more like scheme)
standardlisp - psl/cambridge etc. (less like scheme, e.g. no closures)
compiler - all articles deal with compilation (more or less)

%A R. R. Kessler
%A J. C. Peterson
%A H. Carr
%A G.P. Duggan
%A J. Knell
%A J.J. Krohnfeldt
%T EPIC - a retargetable, highly optimizing Lisp compiler
%J Proc. Sigplan 1986 Sym. on Compiler Construction
%D June 1986
%C New York
%P 118-130
%K lisp standardlisp compiler

%A D. Kranz
%A R. Kelsey
%A J. Rees
%A P. Hudak
%A J. Philbin
%A N. Adams
%T ORBIT: an optimizing compiler for Scheme
%J Proc. Sigplan '86 Sym. on Compiler Construction
%D June 1986
%C New York
%P 219-233
%K scheme compiler

%A G. L. Steele Jr.
%T RABBIT: a compiler for Scheme
%R AI Memo 474
%C Massachusetts Institute of Technology
%D May 1978
%K scheme compiler

%A R. A. Brooks
%A R. P. Gabriel
%A G. L. Steele Jr.
%T An optimizing compiler for lexicaly scoped LISP
%J Proc. 1982 Sym. on Compiler Construction
%D June 1982
%V 17
%N 4
%K lisp commonlisp compiler

%A R. A. Brooks
%A R. P. Gabriel
%A G. L. Steele Jr.
%T S-1 Common Lisp implementation
%J Proc. 1982 Sym. on Lisp and Functional Programming
%D August 1982
%C New York
%K lisp commonlisp compiler

%A O. Shivers
%T Control flow analysis in Scheme
%J Proc. Sigplan 1988 Conf. on Programming Language Design and Implementation
%D 1988
%C New York
%K scheme compiler

%A R. A. Brooks
%A D. B. Posner
%A J. L. McDonald
%A J. L. White
%A E. Benson
%A R. P. Gabriel
%T Design of an optimizing, dynamically retargetable compiler for Common Lisp
%K lisp commonlisp compiler

%A R. P. Gabriel
%T Performance and evaluation of Lisp systems
%I MIT Press
%C Cambridge, Mass.
%D 1985
%K lisp compiler

%A M. L. Griss
%A A. C. Hearn
%T A portable LISP compiler
%J Software Practice and Experience
%N 11
%D 1981
%P 541-605
%K lisp standardlisp compiler

-- 
Jason Coughlin ( jk0@sun.soe.clarkson.edu , jk0@clutx )
"Every jumbled pile of person has a thinking part that wonders what the
part that isn't thinking isn't thinking of." - They Might Be Giants

kend@tekchips.LABS.TEK.COM (Ken Dickey) (01/11/90)

In article <1990Jan10.024859.28865@sun.soe.clarkson.edu> jk0@sun.soe.clarkson.edu (Jason Coughlin) writes:
>This is quite a hot issue so I thought I'd post a summary of what I
>received.  Thanks to everyone who gave me a lead!
>

I guess I missed your request.  Here are the references I have to
published works on Scheme compilation:


Sussman, Gerald Jay: "LISP, Programming and Implementation",
 in "Functional Programming and its Applications"
   Eds: Darlington, Henderson, & Turner
   Cambridge U Press, 1982

Abelson & Sussman: "Structure and Interpretation of Computer Programs"
MIT Press, 1985

Steele: "RABBIT: A Compiler for SCHEME (A Study in Compiler Optimization)"
MIT AI-TR-474, May 1978

Rosas, Guillermo: "Liar, an Algol-like Compiler for Scheme"
MIT Bachelor's thesis, January 24, 1987

Clinger, Will:"The Scheme 311 Compiler, An Excercise in Denotational Semantics"
1984 Symposium on Lisp and Functional Programming

Bartley & Jensen: "The Implementation of PC Scheme"
Proceedings of the 1986 ACM Conference on Lisp and Functional Programming

Kranz, ... Adams , et al: "Orbit, an Optimizing Compiler for Scheme"
SigPlan Notices V21, #7, July 1986

Wand: "From Interpreter to Compiler: A Representational Derivation"
 in "Programs as Data Objects", Springer-Verlag lecture notes 217, 1986.

Feeley & Lapine: "Using Closures for Code Generation"
Computer Languages: V12, #1 1987

Vegdahl & Pleban: "The Runtime Environment for Screme, a Scheme
implementation on the 88000", SIGPLAN Notices, Vol 24 Special Issue, May
1989.

Also, the latest issue of LISP AND SYMBOLIC COMPUTATION which contains
a loooong article on compiling Scheme for parallel machines.


-Ken Dickey

kend@tekchips.LABS.TEK.COM (Ken Dickey) (01/12/90)

Upon reading my posting I see that I forgot Kent Dybvig's Thesis:

   "Three Implementation Models for Scheme",
   U of North Carolina at Chappel Hill, 1987.

(Sorry, Kent!)

-Ken Dickey

grunwald@foobar.colorado.edu (Dirk Grunwald) (01/13/90)

sadly, you all missed one of the more interesting papers, by luddy
harrison at the Univ. of Illinois Center for Supercomputing Res. and
Dev. (CSRD).

``compiling lisp for evaluation on a tightly coupled multiprocessor''
CSRD tech report #565 by W. Ludwell Harrison, III

luddy wrote a scheme compiler that allegedly out-gabriales everything.
It runs on an alliant FX-8. It concurrentizes & vectorizes, if I
recall correctly.



Dirk Grunwald -- Univ. of Colorado at Boulder	(grunwald@foobar.colorado.edu)
						(grunwald@boulder.colorado.edu)