[MzScheme logo] MzScheme

Version 102, June 27, 2000

MzScheme is an implementation of the Scheme programming language for Windows 95/98/NT/2000, MacOS, Unix, and BeOS. 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.

Related software:

  • MrEd extends MzScheme with a portable GUI toolkit.
  • DrScheme is the graphical environment for developing MzScheme programs.
  • MzCOM is a COM class with an embedded MzScheme.
  • MysterX extends MzScheme with support for COM and ActiveX components under Windows 95/98/NT/2000.

Further information about MzScheme:

  • Online documentation
  •  
    Download MzScheme
     
    Documentation
    Release Notes
     
    Report a Bug
    Mailing Lists
     
    DrScheme
    MrEd
    MzCOM
    MysterX
    Other PLT Packages


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

    PLT / scheme@cs.rice.edu