Kawa (Scheme implementation)
Developer(s) | Per Bothner |
---|---|
Stable release | 1.12
/ May 10, 2012 |
Repository | |
Written in | Scheme / Java |
Operating system | Cross-platform |
Platform | Java Virtual Machine |
Type | Scheme programming language interpreter/compiler |
License | MIT License |
Website | http://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
Besides using the Scheme programming language, you can access Java object fields and methods, 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.
You can access an object's fields with:
object:field-name
or
(invoke object 'field)
You can also invoke static (class) methods with the function "invoke-static".
You can extend Kawa with Java code (creating scheme functions in Java), as well as combine Kawa with other JVM implementations.
How to use
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, use the -C parameter:
java kawa.repl --main -C file.scm
This will produce "file.class", which you can run by typing "java file". You can also create an applet or servlet (to compile a servlet you must also put "servlet-xxx.jar" in the CLASSPATH variable).