CMU Artificial Intelligence Repository
Home INFO Search FAQs Repository Root

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: Include the version number in your message. Mailing List: Send mail to to be put on a mailing list for announcements, discussion, bug reports, and bug fixes. Author(s): Richard Kelsey and Jonathan Rees Contact: Keywords: Authors!Kelsey, Authors!Rees, Programming Languages!Scheme, R4RS Compatible, Scheme in C, Scheme!Implementations, Scheme48 References: ?
Last Web update on Mon Feb 13 10:37:57 1995