Kawa (Scheme implementation)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Designed by Per Bothner
Developer The Kawa Community
First appeared 9 February 1998; 19 years ago (1998-02-09)
Stable release
3.0 / 2 August 2017; 4 months ago (2017-08-02) (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:

(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 you would normally run the kawa script:

$ kawa optional-arguments ...

Alternatively, you can run Kawa by hand:

 $ java -jar /path/to/kawa/kawa.jar optional-arguments ...

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]