[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Scheme 84
Scheme 84 compiles source to an intermediate s-expression code, which
is then interpreted by a Virtual Scheme Machine (VSM) written in
compiled Franz Lisp. This note outlines the relative merits of
Scheme 84.
ADVANTAGES:
-- COST: It is FREE, available via anonymous ftp on arpanet as
directory pub/scheme84 on iucs.cs.indiana.edu (since we are new
to arpanet, you may have to use 192.12.206.205), or send a tape to
Nancy Garrett
Lindley Hall
Bloomington, IN 47405.
It will be returned with Scheme 84 in Unix tar format, with an
Indiana University Computer Science Department Technical Report
that documents the language. Scheme 84 was developed under
Berkley Unix, but also runs under VMS if you have Franz Lisp.
-- PORTABILITY: It is very easy to port Scheme 84 to any machine
that runs Franz Lisp. Without much difficulty it could also be
ported to run under other Lisp systems, such as Common Lisp or
PSL. Only a small set of Lisp features are used.
-- MALEABILITY: It is easy to modify. Many interesting features can
be added to Scheme 84 with only a few hours (or even minutes) of
work. The entire Scheme 84 implementation can be digested easily
in a few days. We have found this to be of great value in our
research. For example, engines, an abstraction of timed preemption
[Haynes and Friedman 84], was first implemented in Scheme 84.
It is particularly easy to import Franz Lisp features into Scheme.
This has been used, for example, to implement a Semantic
Prototyping System [Wand 84] with hooks to Lex and Yacc.
DISADVANTAGES:
-- SPEED: It is much slower than Scheme implementations
based on native code compilation, such as Chez Scheme or T.
However, the intermediate code and VSM were carefully designed to
get the most out of the Franz compiler so that Scheme 84 is
comparable in speed to other interpreted Scheme implementations.
-- FRANZ FOIBLES: A few unfortunate features of Franz Lisp show through.
For example, some run time errors are caught by Franz, not Scheme,
and result in inappropriate error messages (though Scheme 84 always
recovers control).
-- STANDARDIZATION: Scheme 84 is fairly close to the Scheme standard
[Rees and Clinger 86], but has not been brought completely up to
date. (Any volunteers?)
[Rees and Clinger 86] Rees, J., and Clinger, W., Revised Report on
the Algorithmic Language Scheme, SIGPLAN Notices 21:12, pp. 37-79
(1986).
[Haynes and Friedman 84] Haynes, C.T., and Friedman, D.P., Engines
build process abstractions, Conf. Rec. of the 1984 ACM Symposium
on Lisp and Functional Programming, pp. 18-24.
[Wand 84] Wand, M., A semantic prototyping system, Proc. ACM SIGPLAN '84
Compiler Construction Conference, pp. 213-221.