[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.
-- 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, 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.

-- 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
[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.