Kawa (Scheme implementation)
|Designed by||Per Bothner|
|Developer||The Kawa Community|
|First appeared||9 February 1998|
3.0 / 2 August 2017R7RS compatibility)(w/
|Implementation language||Java, Scheme|
|Platform||Java virtual machine|
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
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-name). 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 you would normally run the
$ 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
- Scheme (programming language)
- Java (programming language)
- List of JVM languages
- List of open-source programming languages