[comp.lang.scheme] Speed

NETWORK@FRSAC11.BITNET (12/19/87)

+Date: Fri, 18 Dec 87 12:36:10 est
+From: gjs@ZOHAR.AI.MIT.EDU (Gerald Jay Sussman)
+To: NETWORK%FRSAC11.BITNET@MITVMA.MIT.EDU
+n-Reply-To: NETWORK%FRSAC11.BITNET@MITVMA.MIT.EDU's message of Fri, 18 Dec 87
+ 15:47:25 GMT <8712181549.AA15413@zohar>
+Subject: Byte code speed.
+
+great... TI PC Scheme 3.0 is still faster!
+But on big problems (~100 pages of code) CScheme beats the
+PC scheme by a large amount.

Why on larger code ? (memory management ?)

As far as I have observed PC Scheme GC somewhat less than CSCheme,
From old popular wisdom (here, in France) it is said that the speed
of an interpreter is strongly related to the use of "CONS" for the
own use of the interpreter itself, and I have the feeling that
PC Scheme "conses" less than CScheme too. (I am surely wrong, it
is just a feeling. But the popular wisdom seems solid.)

(CScheme is somewhat more clever than some other Lisp I have on
my system, but around twice as slow, I am strongly thinking that
the difference between then is the fact that the other interpreter
does not "cons" at all)

Comments ?

Again my question: where can I find documents related to the
byte coding used in the popular Scheme (PC, Mac, C) ?

Extended question: I think that Scheme could be implemented with
incredible efficiency on modern Forth 32 bit chips, with stack
cache. Am I wrong ?

Regards,

Jean-Pierre H. Dumas

network@frsac11 (bitnet)
network%frsac11.bitnet@mitvma.mit.edu (arpanet)
dumas@sumex-aim.stanford.edu (arpanet)

JAR@AI.AI.MIT.EDU (Jonathan A Rees) (12/19/87)

    Date: Fri, 18 Dec 87 19:06:36 GMT
    From: NETWORK%FRSAC11.BITNET at MITVMA.MIT.EDU

    Again my question: where can I find documents related to the
    byte coding used in the popular Scheme (PC, Mac, C) ?

The byte code interpreter and compiler used in MacScheme are described in
not much detail in a paper by Will Clinger in the 1984 Lisp and FP
Symposium proceedings, "The Scheme 311 compiler: An exercise in
denotational semantics."

willc@tekchips.tek.COM (Will Clinger) (12/22/87)

    The byte code interpreter and compiler used in MacScheme are described in
    not much detail in a paper by Will Clinger in the 1984 Lisp and FP
    Symposium proceedings, "The Scheme 311 compiler: An exercise in
    denotational semantics."

More detail can be found in Appendix D of the current MacScheme and
MacScheme+Toolsmith manuals.  The purpose of this appendix is to tell
how to write a machine code procedure that can be called from Scheme,
but in doing so it describes some of the data representations, register
conventions, calling conventions, and byte codes.

Along with the paper cited by Jonathan, this is everything that has been
published about the implementation of MacScheme.

Peace, Will Clinger