Pre-Scheme: A low-level dialect of Scheme
*****************************************

Pre-Scheme [Kelsey 97] is a low-level dialect of Scheme, designed for systems programming with higher-level abstractions.  For example, the Scheme48 virtual machine is written in Pre-Scheme.  Pre-Scheme is a particularly interesting alternative to C for many systems programming tasks, because not only does it operate at about the same level as C, but it also may be run in a regular high-level Scheme development with no changes to the source, without resorting to low-level stack munging with tools such as gdb.  Pre-Scheme also supports two extremely important high-level abstractions of Scheme: macros and higher-order, anonymous functions.  Richard Kelsey's Pre-Scheme compiler, based on his PhD research on transformational compilation [Kelsey 89], compiles Pre-Scheme to efficient C, applying numerous intermediate source transformations in the process.

This chapter describes details of the differences between Scheme and Pre-Scheme, listings of the default environment and other packages available to Pre-Scheme, the operation of Richard Kelsey's Pre-Scheme compiler, and how to run Pre-Scheme code as if it were Scheme in a regular Scheme environment.

     [file diff-scm.texi not included]
     [file type.texi not included]
     [file env.texi not included]
     [file more-env.texi not included]
     [file compiler.texi not included]
     [file comp-ex.texi not included]
     [file ps-as-scm.texi not included]