>>>> "Michael" == Michael Sperber
<sperber(a)informatik.uni-tuebingen.de> writes:
>>>>> "Ray" == Raymond Toy <toy(a)rtp.ericsson.se> writes:
>>>> "Michael" == Michael Sperber
<sperber(a)informatik.uni-tuebingen.de> writes:
>>>> "Ray" == Raymond Toy
<toy(a)rtp.ericsson.se> writes:
>>>> "Glynn" == Glynn Clements <glynn(a)sensei.co.uk> writes:
Michael> Let me again mention that Scheme compilers are among the
Michael> best-optimizing compilers for higher-level languages, and
Michael> often achieve code performance comparable to C.
Ray> Which compilers do this? I know Stalin is very good, but it compiles
Ray> to C as does gambit, so these must have the performance hit.
Michael> No, they must not. They perform high-level optimizations which can
Michael> offset what going through C loses you. Scheme compilers which do very
Michael> well currently are:
Michael> - Gambit
Michael> - Bigloo
Michael> - Stalin
Michael> - Chez Scheme
I was too terse. I know these are good compilers. My comment was
about which compilers get the performance hit in tail recursion via
the C trampoline that you mentioned.
I recall that the question of why tail recursion was slower than
iteration was asked by Jeffrey Siskind, author of Stalin. His
compiler was 20% (?) slower with tail-recursion than with iteration.
This if now moving far from the original topic of Lisp vs. Scheme.
I'm familiar with Lisp, and scheme. As a user, I'd be content with
either---they're close enough for me that it doesn't matter too much.
I suspect that's probably true for most users.
Ray