On 4/10/07, Eric Baum wrote:
I'd commend to the LISP hackers' attention the compiler "Stalin"
by Jeff Syskind, who last I knew was at Purdue.
I'm uncertain the extent to which the compiler is available,
but I imagine if you look around (for example find Syskind's home page)
you will find papers or or pointers. My erstwhile collaborator
Kevin Lang, initially a skeptic on the subject, ran extensive tests
on Stalin and concluded the compiled code was substantially faster
than compiled C and C++, even on problems where this was quite
surprising. It's possible Kevin published something on these tests.


<http://community.schemewiki.org/?Stalin>
<http://en.wikipedia.org/wiki/Stalin_(Scheme_implementation)>
<http://cobweb.ecn.purdue.edu/~qobi/software.html>

Stalin is an aggressively optimizing Scheme compiler. It is the most
highly optimizing Scheme compiler, and in fact one of the most highly
optimizing compilers of any sort for any language. Stalin is publicly
& freely available, licensed under the GNU GPL. It was written by
Jeffrey M. Siskind.

In detail, Stalin is a whole-program compiler that uses advanced flow
analysis & closure conversion techniques. It compiles Scheme to highly
optimized C. Stalin has a few very significant limitations, however:

* it takes a *long* time to compile anything including the compiler
* it is not designed for interactive use or debugging
* it does not support R4RS/R5RS high-level macros
* it does not support the full numeric tower

The compiler itself does lifetime analysis and hence does not generate
as much garbage as might be expected, but global reclamation of
storage is done using the Boehm garbage collector.



Scheme
<http://cbbrowne.com/info/scheme.html>
<http://en.wikipedia.org/wiki/Scheme_(programming_language)>

 Scheme is a LISP "dialect" that is relatively small, nicely supports
tail recursion, provides block structure and lexical scoping, and
gives a variety of object types "first-class" status (e.g. - first
class objects are namable and can be passed around as function
arguments, results, or as list elements).

If Common LISP is considered analogous to C++ (which is not entirely
unreasonable), Scheme would comparatively be analogous to C. Where
Common LISP requires that the "rich functionality" (such as a wide
variety of data structures and the Common Lisp Object System (CLOS))
come as an intrinsic part of the language, Scheme encourages the use
of "libraries" to provide these sorts of additional functionality.

The Scheme libraries are small enough that programmers commonly
construct functionality using primitive functions, where a LISP system
might have something already defined. This gives additional
opportunity either to tune performance or shoot oneself in the foot by
reimplementing it poorly...



BillK

-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?list_id=303

Reply via email to