Samiksha Jaiswal (Editor)

Kawa (Scheme implementation)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Designed by
  
Per Bothner

Implementation language
  
Java, Scheme

Developer
  
The Kawa Community

Platform
  
Java virtual machine

Kawa (Scheme implementation)

First appeared
  
February 9, 1998; 19 years ago (1998-02-09)

Stable release
  
2.3 / January 15, 2017; 36 days ago (2017-01-15) (w/R7RS compatibility)

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.

Contents

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

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

To run Kawa on GNU/Linux:

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).

References

Kawa (Scheme implementation) Wikipedia