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.

Примечания

  1. Per Bothner. Compiling Java with GCJ // Linux Journal. — 2003. — 1 января.
  2. Mensah, 2011.
  3. Для запуска Kawa на Linux используются примерно следующие команды:
    export CLASSPATH=$CLASSPATH:/path/to/kawa/kawa-1.10.jar
    java kawa.repl
  4. Чтобы скомпилировать Scheme файл file.scm в файл класса file.class, нужно использовать параметр -C: java kawa.repl --main -C file.scm
  5. Qexo — The GNU Kawa implementation of XQuery
  6. JEmacs — the Java/Scheme-based Emacs Text Editor

Литература

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.