ISLISP
Programming language in the Lisp family
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 (commonly termed simply SC22/WG16 or WG16). The primary output of this working group was an international standard, published by ISO. The standard was updated in 2007 and republished as ISO/IEC 13816:2007(E). Although official publication was through ISO, versions of the ISLISP language specification are available that are believed to be in the public domain.
The goal of this standards effort was to define a small, core language to help bridge the gap between differing dialects of Lisp. It attempted to accomplish this goal by studying primarily Common Lisp, EuLisp, Le Lisp, and Scheme and standardizing only those features shared between them.
| 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 | |||||||||||||||
01Design goals
ISLISP has these design goals:
- 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 Lisp-2).
ISLISP's object system, ILOS, is mostly a subset of the Common Lisp Object System (CLOS).
02Major differences from Common Lisp
- There is a global lexical variable defining operator defglobal.
- References to dynamic variables must be made explicitly using the dynamic operator.
- Keywords are not self-evaluating.
- Destructuring is not supported in defmacro.
03Implementations
ISLISP implementations have been made for many operating systems including Windows, most Unix and POSIX based, Android, MS-DOS, and OS/2.
Implementations for hardware computer architectures include: x86, x86-64, IA-64, SPARC, SPARC9, PowerPC, MIPS, Alpha, PA-RISC, ARM, AArch64
| Name | Creator | Complete ISLisp | Architecture | Written in | Operating system | License | Source code available |
|---|---|---|---|---|---|---|---|
| OpenLisp | Eligis | Yes | interpreter, compiles to C | C, Lisp | Windows, macOS, Linux, BSD, AIX, Solaris, QNX | Proprietary | Partial |
| OKI ISLISP | Kyoto University and Oki Electric Industry Co. | Yes | Bytecode machine, compiles to bytecode | C | Windows | ? | No |
| Prime-Lisp | Mikhail Semenov | Yes | Interpreter | C# | Windows | Proprietary, Shareware, freely redistributable binaries | No |
| Iris | Masaya Taniguchi | No | Interpreter | Go | any | Open source, Mozilla Public License 2.0 | Yes |
| Iris web REPL | Masaya Taniguchi | No | Interpreter, compiles to JavaScript | Go, JavaScript | Browser | Open source, Mozilla Public License 2.0 | Yes |
| Kiss | Yuji Minejima | No, not yet | Interpreter | C, Lisp | any | Open source, GPL v3+ | Yes |
| ISLisproid | Hiroshi Gomi | No | Interpreter | Java | Android | Proprietary | No |
| dayLISP | Matthew Denson | No | Interpreter | Java, Lisp | Any | Open source, BSD | Yes |
| Easy-ISLisp | Kenichi Sasagawa | Yes | Interpreter, compiles to C | C, Lisp | Linux, MacOS, OpenBSD | Open source, BSD | Yes |
| Isle ISLISP | KIM Taegyoon | No | Compiler | Common Lisp | OSes on which Common Lisp operates (including Linux and Windows) | Open source, Unlicense | Yes |
| islisp-compat | Derek Newhall | Yes | Package on top of Common Lisp | Common Lisp | OSes on which Common Lisp operates (including Linux and Windows) | Open source, CDDL | Yes |
Two older implementations are no longer available:
- TISL, by Masato Izumi and Takayasu Ito (Tohoku University), was an interpreter and compiler.
- G-LISP, by Josef Jelinek, was a Java applet.
Sources and credits
This article is adapted from the Wikipedia article “ISLISP”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.