Skij: Scheme in Java for Interactive Debugging
What is Skij?
Skij is (or was) a scheme interpreter in Java, designed chiefly for
easy scripting, debugging, and exploratory programming in the Java
Some cursory documentation for skij is available here. An unpublished draft of an
article on Skij is available here.
Status of Skij
Skij was developed by me at IBM Watson Labs, which released it under
program. Unfortunately they have now "retired" it, so
it is no longer available. I've asked IBM several times if they will
release it under an open source license, but to no avail (basically
it's too small a thing for them to bother with the paperwork). If
you'd like to get Skij released in some form, please write to John Field at IBM and tell him so.
Or you could write to alphaWorks
and ask them to unretire it
Alternatives to Skij
There are quite a few other Scheme-in-Java systems out there,
including JScheme, Kawa, and SISC. All of these have reasonable
licenses, unlike Skij. Although they all have significant merits, none are
quite as good (IMO) as Skij at the main thing it was designed for, which
is making it as convenient as possible to explore the world of Java objects interactively.
JScheme is probably the closest to Skij in concept -- a simple
interpreter, with the ability to access Java functionality from
Scheme. In fact, some of the undocumented innards of JScheme are, um,
highly compatible with Skij. Unfortunately JScheme is not quite as convenient
to use as Skij, and there appear to be some problems with its method
dispatching facility (according to reports I've received from people
trying to port Skij code to JScheme).
SISC (Second Interpreter of Scheme Code) is a newer Scheme interpreter that adheres much more closely to
the full Scheme standard than any of the other implementations I've
seen, and even implements a full call-with-current-continuation. It
has excellent performance to boot. Unfortunately it's interface to
Java classes is somewhat clunky to use.
Kawa compiles Scheme to bytecodes so is much faster than Skij or
JScheme, at the cost of being a larger and more complex system.
Michael Travers / mt(at)alum.mit.edu