
Author: Matthias Blume
NOTE: VSCM is no longer being actively
developed. The author strongly believes that it would be better to
move from Scheme on to something better (e.g., Standard
ML). (Development will not resume until I figure
out what features I would like to see in a Scheme-like language. At
the moment, my ideas look an awful lot like things that already exist:
Haskell, ML, ... It is unlikely that VSCM will ever again be
compatible with RnRS for n>4 - unless the Scheme authors decide to
make a rather sharp turn.)
VSCM is a complete and portable implementation of Scheme
according to R4RS
(The ``Revised revised revised revised Report of the Algorithmic
Language Scheme'').
VSCM is based on a virtual machine written in ANSI C and on a
bytecode-compiler written in Scheme itself.
Non-standard features of VSCM include:
- (executable) portable memory images
- error handling
- interrupt handling
- coroutines
- timer interrupts
- generic ports
- continuations with multiple arguments (will be in R5RS)
- interfaces to runtime system, garbage collector, operating system
A more
exhaustive list and some documentation is also available.
The latest official version of VSCM is based on its first
implementation, which has been developed in part while the author was
working at the department of Computer
Science, Humboldt-University of Berlin, Germany.
The most recent official release (vscmV0r4.tar.gz) of the
implementation can be obtained via anonymous ftp either from the
Scheme repository
or from
our local FTP server .
VSCM still lacks a real implementation of ``char-ready?'',
because ANSI C does not provide sufficient support to implement it in
a portable machine- and operating system-independent way.
If you are interested in extending VSCM with your own custom types and built-in procedures, then you should read
about the internals
of the implementation.
Access count:
Matthias Blume,
CS Department,
Princeton University