Kawa
Kawa — реализация языка Scheme, диалекта языка Лисп, обеспечивающая тесную интеграцию с java-окружением[1][2].
Kawa | |
---|---|
Тип | Интерпретатор/компилятор языка программирования Scheme |
Разработчик | Per Bothner |
Написана на | Scheme / Java |
Операционная система | Cross-platform |
Первый выпуск | 9 февраля 1998 |
Аппаратная платформа | Java Virtual Machine |
Последняя версия | 3.0 (2 октября 2017) |
Лицензия | MIT License |
Сайт | gnu.org/software/kawa/ |
Включает в себя как интерпретатор[3], так и компилятор в код виртуальной машины Java (JVM)[4].
Кроме того Kawa представляет собой фреймворк, для реализации высокоуровневых динамических языков. Так, с его помощью, реализованы XQuery (Qexo[5])[2] и Emacs Lisp (JEmacs[6])[1].
Интеграция с Java
Одна из особенностей диалекта Scheme, реализованного в Kawa — простота доступа к Java объектам.
Для вызова метода объекта используется код следующего вида:
(invoke object 'method argument ...)
Это выполнит вызов метода объекта, т.е. произойдет действие аналогичное object.method(argument, …) в Java.
Для доступа к полям объекта:
object:field-name
или
(invoke object 'field)
Статические методы класса вызываются с помощью функции «invoke-static».
Kawa позволяет создавать лисп-функции на языке Java.
Примечания
- Per Bothner. Compiling Java with GCJ // Linux Journal. — 2003. — 1 января.
- Mensah, 2011.
- Для запуска Kawa на Linux используются примерно следующие команды:
export CLASSPATH=$CLASSPATH:/path/to/kawa/kawa-1.10.jar java kawa.repl
- Чтобы скомпилировать Scheme файл file.scm в файл класса file.class, нужно использовать параметр
-C
:java kawa.repl --main -C file.scm
- Qexo — The GNU Kawa implementation of XQuery
- JEmacs — the Java/Scheme-based Emacs Text Editor
Литература
- Kuassi Mensah. 5.2.3. Proof of Concept #3: Running Kawa (Scheme) in the Database // Oracle Database Programming using Java and Web Services. — Digital Press, 2011. — 1121 с. — ISBN 9780080525112.