Kawa

KawaとはJavaで書かれたフレームワークであり、Schemeというプログラミング言語を実装し他の言語も実装することも出来る。GNUプロジェクトの一部である。
名はポーランド語でコーヒーのことを「」と呼ぶことに由来する。Javaの名もコーヒーに由来している事に関連する。
Javaとの統合.
Scheme以外でも以下のコードでJavaのオブジェクトフィールドやメソッドにアクセスすることができる。
 (invoke object 'method argument ...)
これはJavaメソッドを起動するものでJavaにおけるobject.method(argument, ...)と同じ動作をする。
また以下の入力でオブジェクトのフィールドにアクセスすることができる。
 object:field-name
もしくは
 (invoke object 'field)
"invoke-static"というファンクションでスタティック（クラス）メソッドを起動することもできる。
Kawaと他のJava仮想マシンインプリメンテーションを組み合わせるなどでKawaはJavaコード（Javaにおいてschemeファンクションを作成）を使って拡張することも可能である。
使用法.
GNU/LinuxにてKawaを実行させるには以下のように入力する
 export CLASSPATH=$CLASSPATH:/path/to/kawa/kawa.jar
 java kawa.repl
SchemeのファイルをJavaクラスファイルにコンパイルする時は-Cパラメータを使用する。
 java kawa.repl --main -C file.scm
これによって"java file"をタイピングすることで実行できる"file.class"を生成する。またアプレットやサーブレット（サーブレットをコンパイルするときはCLASSPATHを宣言した上で"servlet-xxx.jar"を実行しなければならない）。