[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

description of MacScheme



Date: Wednesday, 20 Nov 85 15:31:49 PST
From: Will Clinger <willc%tekchips%tektronix.csnet at CSNET-RELAY.ARPA>
To:   Scheme-Request at mit-mc.ARPA
Re:   description of MacScheme

Implementation:		MacScheme
Implemented by:		Will Clinger, Liz Heller, and John Ulrich
Supported by:		Semantic Microsystems
Hardware:		Apple Macintosh or Lisa (Mac XL).
			Requires 512K RAM, can use up to 16M.
Operating Systems:	Finder (Macintosh); MacWorks (Lisa).
Price/Availability:	$125.  Available since August 1985.
Implementation:		Compiles to interpreted byte code.
Intended Use:		Education, personal computing, AI applications
Contact:		Semantic Microsystems
			4470 S.W. Hall St., Suite 340
			Beaverton, OR  97005
			(503) 643-4539

MacScheme supports all essential and many optional features of the Revised
Revised Report on Scheme.  It includes a compatibility package for use
with the Abelson and Sussman text, but environments are not supported.

The compiler and byte code architecture were described in Clinger's paper
at the 1984 Lisp conference.  Numbers are implemented as a union of 30-bit
fixnums, bignums, and 32-bit flonums; bignum arithmetic is slow.  The
system includes facilities for breaking, tracing, and debugging; most
run-time errors can be repaired in the debugger.  There is a pretty printer.
An escape to machine code is documented for direct access to the Macintosh
Toolbox.

The system includes a simple editor that understands Scheme syntax and
makes good use of multiple windows and the mouse.  This editor runs as a
foreground process while Scheme runs in the background.

MacScheme's speed is comparable to that of similar interpreters (MIT Scheme
on the HP 9836, TI Scheme) when hardware is taken into account.  Non-tail-
recursive procedure calls are relatively slow in MacScheme but tight tail-
recursive loops are relatively fast.  Interpreted MacScheme seems to run
about half as fast as compiled ExperLisp on the Macintosh.