Scheme 48

Please ignore this page and visit this page instead!

Date: Wed, 7 Jun 2000 07:49:16 +0200
From: Olivier Danvy
Subject: permanent URL for the archival version of the R5RS

In 1998, the R5RS was published in Vol. 11, No. 1 of the journal Higher-Order and Symbolic Computation (HOSC). For a while, it was freely available online as the sample copy of HOSC, in its home page (

This has changed. The permanent URL for the R5RS is now

Let me also remind you that, as witnessed by its table of contents (available online), HOSC welcomes papers about Scheme.

Best regards, -- Olivier Danvy, co-Editor in Chief, HOSC

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.

This rest of this page grossly is out of date.

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: