Kawa (Scheme implementation)
![]() | |
Family | Lisp |
---|---|
Designed by | Per Bothner |
Developer | The Kawa Community |
First appeared | 10 June 1996[1] |
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.
Kawa is notable as one of the few programming languages with support for units of measure in the form of quantities.
Integration with Java
Besides using the language Scheme, Java object fields and methods can be accessed using code such as: <syntaxhighlight lang="scheme" class="" style="" inline="1">(invoke object 'method argument ...)</syntaxhighlight>. This will invoke a Java method, and does the same thing as <syntaxhighlight lang="java" class="" style="" inline="1">object.method(argument, ...)</syntaxhighlight> in Java. An object's fields can be accessed with: <syntaxhighlight lang="text" class="" style="" inline="1">object:field-name</syntaxhighlight> or <syntaxhighlight lang="scheme" class="" style="" inline="1">(invoke object 'field-name)</syntaxhighlight>. Static (class) methods can be invoked with the function <syntaxhighlight lang="text" class="" style="" inline="1">invoke-static</syntaxhighlight>. Kawa can be extended with Java code (by creating scheme functions in Java), and combined with other JVM implementations.
See also
Lua error in mw.title.lua at line 346: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
References
- ^ "Change log". Retrieved 2022-04-04.
- ^ "Kawa: News – Recent Changes". gnu.org. Retrieved 2020-02-14.
External links
- No URL found. Please specify a URL here or add one to Wikidata.
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 |
- Pages with script errors
- Official website missing URL
- GNU Project Lisp programming language implementations
- Java platform software
- JVM programming languages
- Scheme (programming language) implementations
- Scheme (programming language) interpreters
- Programming languages supporting units of measure
- Scripting languages
- Software using the MIT license