[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How fast will the Guile VM be?
From: |
Jim Blandy |
Subject: |
Re: How fast will the Guile VM be? |
Date: |
04 Sep 2000 14:02:07 -0500 |
> However, I don't think the VM is faster than native-code compilers.
> Dan said his goal with his new QScheme that uses a JIT compiler is to
> have scheme code run only two times slower than equivalent C code.
> On the other hand, I suppose some Scheme compilers produce native code
> that run as efficient as or faster than C programs, right? Do they
> have slower interpreters or no interpreter?
There are plenty of Scheme systems that produce native code. There's
even been a lot of work on optimizations almost irrelevant to C, but
critical to Scheme and similar languages.
- MIT Scheme does some pretty powerful program analysis. For example,
its compiler can detect that the Y-combinator represents an ordinary
loop. It certainly generates machine code. But I don't think its
back ends are especially good.
- Chez Scheme has a bunch of easy, clever ideas for generating good
machine code on the fly. See "Destination-Driven Code Generation",
available on http://www.cs.indiana.edu/~dyb/pubs.html. This paper
presents a straightforward way to generate machine code from a tree of
machine-level operations that, he claims, often doesn't need peephole
analysis.
- Will Clinger's home page, http://www.ccs.neu.edu/home/will/, contains
pointers to a very nice description of the optimizations done by
Twobit. The explanation of the `incremental lambda lifting'
optimization, which lets you eliminate a lot of closure generation, is
especially nice.
- If I remember correctly, Olin Shivers' PhD thesis was about
analyzing control flow in higher-order functional languages. Since
Scheme encourages people to build the control structures they need
from lambdas, these optimizations are quite relevant.
http://www.ai.mit.edu/~shivers/citations.html
> There are lots of Scheme compilers/interpreters, so I don't quite
> understand which one has what feature. Is there a good summary of
> features/benchmarks between several systems?
Will Clinger has some (according to Mr. Clinger) obsolete benchmarks
at: http://www.ccs.neu.edu/home/will/Twobit/benchmarks.html