[MzScheme logo] MzScheme

MzScheme (pronounced "Ms. Scheme") is an implementation of the Scheme programming language for Windows 95/98/NT, MacOS, Unix, and BeOS.
  • MrEd extends MzScheme with a portable GUI toolkit.
  • DrScheme is the graphical environment for developing MzScheme programs.

New! MzScheme 100alpha4 is now available.

MzScheme is R4RS-compliant (including the full numerical tower) and nearly R5RS-compliant (some macro support is lacking). MzScheme also provides:

  • Pre-emptive threads for all platforms
  • Generative structures (a.k.a. record datatypes)
  • Built-in exceptions; each primitive error raises a specific exception
  • First-class compilation units (modules) for organizing program components
  • A class-based object system reminiscent of C++/Java
  • Built-in regular expression matching tools
  • Simple TCP communication support on all platforms
  • Portable filesystem access procedures
  • Platform-specific process control, including AppleEvent support
By default, MzScheme compiles Scheme to interpreted byte code. The mzc compiler, distributed with MzScheme, compiles Scheme to native code via C.

MzScheme's foreign function interface supports dynamically-loaded extensions that are implemented in C/C++. MzScheme can also be embedded as an extension language within an existing C/C++ application. (The interface for procedure-based extension and embedding is roughly compatible with Brent Benson's libscheme.)

Interoperability with C/C++ is facilitated by the use of a conservative garbage collector, which means that Scheme and C/C++ can safely trade data without interfering with Scheme's automatic memory management. The extending or embedding C/C++ code defines the data translation mechanisms, which provides maximal flexibility for interoperating data.

MzScheme threads are implemented for all platforms using a thread system that is built into MzScheme. MzScheme can also use native (OS-specific) threads, but only Win32, Solaris, and Linux thread bindings have been implemented so far.

MzScheme is available in kernel form for x86 machines, which allows MzScheme to boot without the aid of a separate operating system. The MzScheme kernel is based on the OSKit.

 
Download MzScheme
Online Documentation
Report a Bug
Mailing Lists
Source Code
DrScheme
MrEd
Other PLT Packages


System requirements: Windows 95/98/NT, MacOS, Unix, BeOS, or standard x86 hardware. MzScheme is useful given at least 4 MB of RAM.

Download size is from 360 to 780 Kb, depending on platform. Disk usage is approximately 4 Mb.

PLT / scheme@cs.rice.edu