Kawa (Scheme implementation)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Kawa
Kawa-logo.svg
Designed by Per Bothner
Developer The Kawa Community
First appeared 9 February 1998; 19 years ago (1998-02-09)
Stable release
2.4 / 30 April 2017; 59 days ago (2017-04-30) (w/R7RS compatibility)
Implementation language Java, Scheme
Platform Java virtual machine
OS Cross-platform
License MIT
Website www.gnu.org/software/kawa

Kawa is a language framework written in the programming language Java that implements the programming language Scheme, a dialect of Lisp, and can be used to implement other languages to run on the Java virtual machine (JVM). It is a part of the GNU Project.

The name Kawa comes from the Polish word for coffee; a play on words, since Java is another familiar name for coffee.

Integration with Java[edit]

Besides using the language Scheme, Java object fields and methods can be accessed using code such as:

(invoke object 'method argument ...)

This will invoke a Java method, and does the same thing as object.method(argument, ...) in Java.

An object's fields can be accessed with:

object:field-name
or
(invoke object 'field)

Static (class) methods can be invoked with the function invoke-static.

Kawa can be extended with Java code (by creating scheme functions in Java), and combined with other JVM implementations.

How to use[edit]

To run Kawa on GNU/Linux:

 $ export CLASSPATH=$CLASSPATH:/path/to/kawa/kawa-1.10.jar
 $ java kawa.repl

To compile a Scheme file to a class file, the -C parameter is used:

$ java kawa.repl --main -C file.scm

This will produce file.class, which can be run by typing java file. It is also possible to create an applet or servlet (to compile a servlet, servlet-xxx.jar must be in the CLASSPATH variable).

See also[edit]

External links[edit]