ISLISP
Dialects | |
---|---|
dayLISP, Easy-ISLisp, Iris, Isle ISLISP, ISLisproid, Kiss, OKI ISLISP, OpenLisp, PRIME-LISP | |
Influenced by | |
Common Lisp, EuLisp, Le Lisp, Scheme |
ISLISP (also capitalized as ISLisp) is a programming language in the Lisp family standardized by the International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC) joint working group ISO/IEC JTC 1/SC 22/WG 16[1] (commonly termed simply SC22/WG16 or WG16). The primary output of this working group was an international standard, published by ISO.[2] The standard was updated in 2007 and republished as ISO/IEC 13816:2007(E).[3][4] Although official publication was through ISO, versions of the ISLISP language specification are available that are believed to be in the public domain.[5]
The goal of this
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 | |||||||||||||||
muLisp | |||||||||||||||
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 |
Design goals
ISLISP has these design goals:[6]
- Compatible with extant Lisp dialects where feasible
- Provide basic functionality
- Object-oriented
- Design for extensibility
- Prioritize industrial needs over academic needs
- Promote efficient implementations and applications
ISLISP has separate function and variable namespaces (hence it is a
ISLISP's object system, ILOS, is mostly a subset of the Common Lisp Object System (CLOS).
Major differences from Common Lisp
- There is a global lexical variable. (
defglobal
) - Dynamic variable is explicit. (
dynamic
) - Keywords are not self-evaluating.
- Destructuring is not supported in
defmacro
.
Implementations
ISLISP implementations have been made for many
.Implementations for hardware
Name | Creator | Complete ISLisp | Architecture | Written in | Operating system | License | Source code available |
---|---|---|---|---|---|---|---|
OpenLisp | Eligis[7] | Yes | interpreter, compiles to C | C, Lisp | Solaris, QNX
|
Proprietary | Partial |
OKI ISLISP[8] | Kyoto University and Oki Electric Industry Co. | Yes | Bytecode machine, compiles to bytecode | C | Windows | ? | No |
Prime-Lisp[9] | Mikhail Semenov | Yes | Interpreter | C# | Windows | Proprietary, Shareware, freely redistributable binaries | No |
Iris[10] | Masaya Taniguchi[11] | No | Interpreter | Go | any | Free, Mozilla Public License 2.0 | Yes[12] |
Iris web REPL[13] | Masaya Taniguchi[14] | No | Interpreter, compiles to JavaScript | Go, JavaScript | Browser | Free, Mozilla Public License 2.0 | Yes[15] |
Kiss[16] | Yuji Minejima[17] | No, not yet | Interpreter | C, Lisp | any | Free, GPL v3+ | Yes[18] |
ISLisproid[19] | Hiroshi Gomi | No | Interpreter | Java | Android | Proprietary | No |
dayLISP[20] | Matthew Denson | No | Interpreter | Java, Lisp | Any | Free, BSD | Yes[21] |
Easy-ISLisp[22] | Kenichi Sasagawa | Yes | Interpreter, compiles to C | C, Lisp | Linux, MacOS, OpenBSD | Free, BSD | Yes[23] |
Isle ISLISP | KIM Taegyoon | No | Compiler | Common Lisp | OSes on which Common Lisp operates (including Linux and Windows) | Free, Unlicense | Yes[24] |
islisp-compat[25] | Derek Newhall | Yes | Package on top of Common Lisp | Common Lisp | OSes on which Common Lisp operates (including Linux and Windows) | Free, CDDL[26] | Yes |
Two older implementations are no longer available:
- TISL, by Masato Izumi and Takayasu Ito (Tohoku University), was an interpreter and compiler.[27]
- G-LISP, by Josef Jelinek, was a Java applet.
References
- ^ "WG16 Mail archive".[permanent dead link ]
- ^ "ISO/IEC 13816:1997(E)". International Organization for Standardization. Retrieved 2018-11-10.
- ^ "ISO/IEC 13816:2007(E)". International Organization for Standardization. Retrieved 2018-11-10.
- ^ "Programming Language ISLISP: History".
- ^ "Programming Language ISLISP: Specification". Archived from the original on 2016-01-22. Retrieved 2011-03-20.
- ^ "ISLISP.info".
- ^ "Eligis".
- ^ "OKI ISLISP".
- ^ "Prime-Lisp".
- ^ "Iris".
- ^ "Masaya Taniguchi". GitHub. Archived from the original on November 21, 2021.
- ^ "Iris source code". GitHub. 4 September 2021.
- ^ "Iris web REPL".
- ^ "Masaya Taniguchi". GitHub. Archived from the original on November 21, 2021.
- ^ "Iris source code". GitHub.
- ^ "Kiss". 8 April 2017.
- ^ "Yuji Minejima".
- ^ "Kiss source code". GitHub. 26 September 2021.
- ^ "ISLisproid".
- ^ "dayLISP".
- ^ "dayLISP source code".
- ^ "Easy-ISLisp".
- ^ "Easy-ISLisp source code". GitHub. 21 November 2021.
- ^ "Isle ISLISP source code". GitHub. 15 October 2023.
- ^ "islisp-compat". GitHub. 20 November 2024. Retrieved 5 February 2025.
- ^ "islisp-compat LICENSE.txt". GitHub. Retrieved 5 February 2025.
- ^ "TISL: An Experimental Interpreter and Compiler for ISLisp". 28 October 1998. Retrieved 6 February 2025.