Kawa (Scheme implementation): Difference between revisions
m →Integration with Java: lang=scheme |
JorgePeixoto (talk | contribs) Latest version is 3.1.1 |
||
Line 9: | Line 9: | ||
| developer = The Kawa Community |
| developer = The Kawa Community |
||
| released = {{Start date and age|1998|02|09|df=yes}} |
| released = {{Start date and age|1998|02|09|df=yes}} |
||
| latest release version = 3.1.1 <ref>{{cite web|url=https://www.gnu.org/software/kawa/news.html|title=Kawa: News - Recent Changes|accessdate=2020-02-14|website=gnu.org}}</ref> |
|||
| latest release version = 3.0 |
|||
| latest release date = {{Start date and age| |
| latest release date = {{Start date and age|2020|01|16|df=yes}} (w/[[Scheme (programming language)#R7RS|R7RS]] compatibility) |
||
| typing = |
| typing = |
||
| scope = |
| scope = |
Revision as of 14:08, 14 February 2020
Family | Lisp |
---|---|
Designed by | Per Bothner |
Developer | The Kawa Community |
First appeared | 9 February 1998 |
Stable release | |
Implementation language | Java, Scheme |
Platform | Java virtual machine |
OS | Cross-platform |
License | MIT |
Website | www |
Influenced by | |
Lisp, Scheme |
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: object:field-name
or (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
Kawa can be run normally via the kawa
script:
$ kawa [optional arguments] ...
Alternatively, Kawa can be run 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 CLASSPATH
variable).
See also
External links
1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2(abandoned) | |||||||||||||||
Maclisp | |||||||||||||||
Interlisp | |||||||||||||||
MDL | |||||||||||||||
Lisp Machine Lisp | |||||||||||||||
Scheme | R5RS | R6RS | R7RS small | ||||||||||||
NIL | |||||||||||||||
ZIL (Zork Implementation Language) | |||||||||||||||
Franz Lisp | |||||||||||||||
Common Lisp | ANSI standard | ||||||||||||||
Le Lisp | |||||||||||||||
MIT Scheme | |||||||||||||||
XLISP | |||||||||||||||
T | |||||||||||||||
Chez Scheme | |||||||||||||||
Emacs Lisp | |||||||||||||||
AutoLISP | |||||||||||||||
PicoLisp | |||||||||||||||
Gambit | |||||||||||||||
EuLisp | |||||||||||||||
ISLISP | |||||||||||||||
OpenLisp | |||||||||||||||
PLT Scheme | Racket | ||||||||||||||
newLISP | |||||||||||||||
GNU Guile | |||||||||||||||
Visual LISP | |||||||||||||||
Clojure | |||||||||||||||
Arc | |||||||||||||||
LFE | |||||||||||||||
Hy | |||||||||||||||
Chialisp |
- ^ "Kawa: News - Recent Changes". gnu.org. Retrieved 2020-02-14.