\chapter{Introduction} Scheme~48 is an implementation of the Scheme programming language as described in the Revised$^5$ Report on the Algorithmic Language Scheme~\cite{R5RS}. It is based on a compiler and interpreter for a virtual Scheme machine. Scheme~48 tries to be faithful to the Revised$^5$ Scheme Report, providing neither more nor less in the initial user environment. (This is not to say that more isn't available in other environments; see below.) Support for numbers is weak: bignums are slow and floating point is almost nonexistent (see description of floatnums, below). % JAR says: replace zurich with mumble.net or ... Scheme~48 is under continual development. Please report bugs, especially in the VM, especially core dumps, to scheme-48-bugs@zurich.ai.mit.edu. Include the version number x.yy from the "Welcome to Scheme~48 x.yy" greeting message in your bug report. It is a goal of this project to produce a bullet-proof system; we want no bugs and, especially, no crashes. (There are a few known bugs, listed in the {\tt doc/todo.txt} file that comes with the distribution.) Send mail to scheme-48-request@zurich.ai.mit.edu to be put on a mailing list for announcements, discussion, bug reports, and bug fixes. The name `Scheme~48' commemorates our having written the original version in forty-eight hours, on August 6th and 7th, 1986.