[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Scheme->C compiler: questions and answers
I got a number of questions from people who saw my announcement
(thank you for your interest) which suggests that I should supply a
little more information about the Scheme->C compiler.
License and software distribution is via paper mail so I will need
your postal address. I'm going to have to defer replying to requests
from outside U.S.A. and Canada for a couple of weeks until we figure
out U.S. export restrictions. There is a distribution fee of $100
(U.S.) for the software. Software is distributed on a tar tape in
source form. Like any other research software, it's on an "as is"
basis. If your organization is unwilling to sign the license and you
still want the software, we'll have to discuss it.
Computer systems licensed.
Currently the system runs on top of ULTRIX. It has also been run on
4.2 BSD UNIX. A VMS version has not been made, but it can probably
run under Eunice.
While the software was designed to be portable and has been ported to
three different processors, the terms of the license restrict the
software to Digital VAX and DECstation 3100 computers.
Is it really Scheme?
The system supports the essentials of Revised**3 and many of the
optionals. Extensions include "expansion passing style" macros and a
foreign function call capability. The system does provide
call-with-current-continuation. Numbers are represented internally
as 29-bit integers, or 64-bit floating point values. Sorry, no X
The system is oriented towards block compilation to generate code
which can run in standalone programs which may include code from
other languages. While debugging is typically done using the
interpreter, it will never be considered a "Scheme environment".
The one "wart" in the system is that the compiler cannot compile all
tail calls correctly. This follows from some of the design tradeoffs
made when mapping Scheme to C. A forthcoming technical report
discusses this in some detail, please defer flames until then.
Greatest strength --> Scheme->C is not a <-- Greatest weakness
Misc. Technical details
The compiler is written in Scheme. Most of the runtime system
(including an interpreter) is written in Scheme. The garbage
collector and a few other things are written in C. There is a small
(< 100) amount of assembly code.
A technical report (I'll post a msg on the Scheme list when it's
available) will provide details about the design. It will include
some sample code, benchmark data etc.
Keep on schemeing,