The Kawa language framework

Kawa is:

  • A framework written in Java for implementing high-level and dynamic languages, compiling them into Java bytecodes.

  • An implementation of Scheme, which is in the Lisp family of programming languages. Kawa is a featureful dialect in its own right, and additionally provides very useful integration with Java. It can be used as a “scripting language”, but includes a compiler and all the benefits of a “real” programming language, including optional static typing.

  • Implementations of other programming languages, including XQuery (Qexo) and Emacs Lisp (JEmacs).

This documents version 1.9.1, updated 23 January 2007. See the summary of recent changes.

For lots of Scheme resources, see, including an online copy of the R5RS standard. A nice quick introduction to Scheme can be found in Greg Badros's lecture notes. A more in-depth tutorial which also discusses Scheme implementation is Paul Wilson's "An Introduction to Scheme and its Implementation".

For a technical overview of Kawa, see these Javadoc generated documentation of the Kawa classes is also available. The packages gnu.bytecode, gnu.math, gnu.lists, gnu.xml, gnu.expr, gnu.mapping, and gnu.text, are used by Kawa, and distributed with it, but may be independently useful.

For copyright information on the software and documentation, see Chapter 5, License.

The author of Kawa is Per Bothner . Thanks to Brainfood and Merced Systems for support in developing Kawa. Kawa is a re-write of Kawa 0.2, which was written by R. Alexander Milowski .

This package has nothing to do with the defunct Kawa commercial Java IDE.