CMU Artificial Intelligence Repository
Scheme48: Portable and efficient implementation of Scheme.
Scheme 48 is a Scheme implementation based on a virtual machine
architecture. 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.
The Pre-Scheme compiler, which produces scheme48vm.c from vm/*.scm, is
distributed separately. For information contact
This is a BETA release.
Version: 0.36 (22-MAR-94)
Copying: Copyright (c) 1993-94 by Richard Kelsey and Jonathan Rees.
Use of this program for non-commercial purposes is permitted
provided that such use is acknowledged both in the
software itself and in accompanying documentation.
Use of this program for commercial purposes is also permitted,
but only if, in addition to the acknowledgement required for
non-commercial users, written notification of such use
is provided by the commercial user to the authors prior
to the fabrication and distribution of the resulting software.
See the copying.txt file for details.
CD-ROM: Prime Time Freeware for AI, Issue 1-1
Bug Reports: firstname.lastname@example.org
Include the version number in your message.
Mailing List: Send mail to email@example.com
to be put on a mailing list for announcements,
discussion, bug reports, and bug fixes.
Author(s): Richard Kelsey and Jonathan Rees
Authors!Kelsey, Authors!Rees, Programming Languages!Scheme,
R4RS Compatible, Scheme in C, Scheme!Implementations,
Last Web update on Mon Feb 13 10:37:57 1995