Kawa (Scheme implementation)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Developer(s) Per Bothner
Stable release
2.1 / October 26, 2015; 11 months ago (2015-10-26) (w/R7RS compatibility)
Written in Scheme / Java
Operating system Cross-platform
Platform Java Virtual Machine
Type Scheme programming language interpreter/compiler
License MIT License
Website https://www.gnu.org/software/kawa/

Kawa is a language framework written in Java that implements the programming language Scheme, and can be used to implement other languages. 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 Scheme programming language, Java object fields and methods can be accessed using code like this:

(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), as well as 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]