Carl Hoffman writes:
I'm writing to suggest that you place a link from your Scheme 48 page to, which is a tremendously useful resource for those of us stuck using Microsoft operating systems.

You are invited to beta-test Scheme 48, a Scheme implementation based on a virtual machine architecture. Compressed tar files are in
Scheme 48 is designed to be straightforward, flexible, reliable, and fast. It should be easily portable to 32-bit byte-addressed machines that have POSIX and ANSI C support.

In addition to the usual Scheme built-in procedures and a development environment, library software includes support for hygienic macros (as described in the Revised^4 Scheme report), multitasking, records, exception handling, hash tables, arrays, weak pointers, and format.

Scheme 48 implements and exploits an experimental module system loosely derived from Standard ML and Scheme Xerox. The development environment supports interactive changes to modules and interfaces. This feature makes the module system significantly easier to work with than it would be otherwise.

The virtual machine executes a byte-code instruction set similar to the target of the Scheme 311 compiler [Clinger, LFP 1984]. The interpreter for the virtual instruction set is itself written in Pre-Scheme, a systems programming dialect of Scheme. A Pre-Scheme compiler applies intensive source-to-source rewrites to the interpreter source code and emits low-level C code. When the output is then compiled by an optimizing C compiler such as gcc, the result is an efficient and portable emulator.

The virtual machine is initialized from a specified memory image containing byte-compiled Scheme code and data. Images, including small stand-alone applications, are built either using a static linker or by writing out a procedure from an executing program. A standard memory image contains a Scheme run-time library (append, read, write, etc.), a compiler from Scheme to the virtual instruction set, and a command processor and debugger. In this way Scheme 48 can be configured to look like a conventional Lisp interpreter.

Scheme 48 is available under the following license:

Some relevant pointers:
Richard Kelsey (
Jonathan Rees (