ISLISP
ParadigmsMulti-paradigm: functional, procedural, object-oriented, reflective, meta
FamilyLisp
DesignersMany
DevelopersMany
Programming languageC, C#, Go, Java, JavaScript, Lisp
PlatformIA-32, x86-64
Operating systemWindows, macOS, Linux, BSD, AIX, Solaris, Android, QNX
DialectsdayLISP, Easy-ISLisp, Iris, Isle ISLISP, ISLisproid, Kiss, OKI ISLISP, OpenLisp, PRIME-LISP
Influenced byCommon 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 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.

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 Lisp-2).

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 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

ISLISP implementations
NameCreatorComplete ISLispArchitectureWritten inOperating systemLicenseSource code available
OpenLispEligis[7]interpreter, compiles to CC, LispWindows, macOS, Linux, BSD, AIX, Solaris, QNX
OKI ISLISP[8]Kyoto University and Oki Electric Industry Co.Bytecode machine, compiles to bytecodeCWindows
Prime-Lisp[9]Mikhail SemenovInterpreterC#Windows, Shareware, freely redistributable binaries
Iris[10]Masaya Taniguchi[11]InterpreterGoany, Mozilla Public License 2.0[12]
Iris web REPL[13]Masaya Taniguchi[14]Interpreter, compiles to JavaScriptGo, JavaScriptBrowser, Mozilla Public License 2.0[15]
Kiss[16]Yuji Minejima[17], not yetInterpreterC, Lispany, GPL v3+[18]
ISLisproid[19]Hiroshi GomiInterpreterJavaAndroid
dayLISP[20]Matthew DensonInterpreterJava, LispAny, BSD[21]
Easy-ISLisp[22]Kenichi SasagawaInterpreter, compiles to CC, LispLinux, MacOS, OpenBSD, BSD[23]
Isle ISLISPKIM TaegyoonCompilerCommon LispOSes on which Common Lisp operates (including Linux and Windows), Unlicense[24]
islisp-compat[25]Derek NewhallPackage on top of Common LispCommon LispOSes on which Common Lisp operates (including Linux and Windows), CDDL[26]

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

  1. ^ "WG16 Mail archive"
  2. ^ "ISO/IEC 13816:1997(E)". International Organization for Standardization. Retrieved 2018-11-10.
  3. ^ "ISO/IEC 13816:2007(E)". International Organization for Standardization. Retrieved 2018-11-10.
  4. ^ "Programming Language ISLISP: History"
  5. ^ "Programming Language ISLISP: Specification". Archived from the original on 2016-01-22. Retrieved 2011-03-20.
  6. ^ "ISLISP.info"
  7. ^ "Eligis"
  8. ^ "OKI ISLISP"
  9. ^ "Prime-Lisp"
  10. ^ "Iris"
  11. ^ "Masaya Taniguchi". GitHub. Archived from the original on November 21, 2021.
  12. ^ "Iris source code". GitHub. 4 September 2021.
  13. ^ "Iris web REPL"
  14. ^ "Masaya Taniguchi". GitHub. Archived from the original on November 21, 2021.
  15. ^ "Iris source code". GitHub
  16. ^ "Kiss". 8 April 2017.
  17. ^ "Yuji Minejima"
  18. ^ "Kiss source code". GitHub. 26 September 2021.
  19. ^ "ISLisproid"
  20. ^ "dayLISP"
  21. ^ "dayLISP source code"
  22. ^ "Easy-ISLisp". Archived from the original on 2017-02-02. Retrieved 2017-01-30.
  23. ^ "Easy-ISLisp source code". GitHub. 21 November 2021.
  24. ^ "Isle ISLISP source code". GitHub. 15 October 2023.
  25. ^ "islisp-compat". GitHub. 20 November 2024. Retrieved 5 February 2025.
  26. ^ "islisp-compat LICENSE.txt". GitHub. Retrieved 5 February 2025.
  27. ^ "TISL: An Experimental Interpreter and Compiler for ISLisp". 28 October 1998. Retrieved 6 February 2025.