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.

Timeline of Lisp dialectsvte
19581960196519701975198019851990199520002005201020152020
LISP 1, 1.5, LISP 2(abandoned)
Maclisp
Interlisp
MDL
Lisp Machine Lisp
SchemeR5RSR6RSR7RS small
NIL
ZIL (Zork Implementation Language)
Franz Lisp
muLisp
Common LispANSI standard
Le Lisp
MIT Scheme
XLISP
T
Chez Scheme
Emacs Lisp
AutoLISP
PicoLisp
Gambit
EuLisp
ISLISP
OpenLisp
PLT SchemeRacket
newLISP
GNU Guile
Visual LISP
Clojure
Arc
LFE
Hy

Design 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).

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
OpenLispEligisYesinterpreter, compiles to CC, LispWindows, macOS, Linux, BSD, AIX, Solaris, QNXProprietaryPartial
OKI ISLISPKyoto University and Oki Electric Industry Co.YesBytecode machine, compiles to bytecodeCWindows?No
Prime-LispMikhail SemenovYesInterpreterC#WindowsProprietary, Shareware, freely redistributable binariesNo
IrisMasaya TaniguchiNoInterpreterGoanyFree, Mozilla Public License 2.0Yes
Iris web REPLMasaya TaniguchiNoInterpreter, compiles to JavaScriptGo, JavaScriptBrowserFree, Mozilla Public License 2.0Yes
KissYuji MinejimaNo, not yetInterpreterC, LispanyFree, GPL v3+Yes
ISLisproidHiroshi GomiNoInterpreterJavaAndroidProprietaryNo
dayLISPMatthew DensonNoInterpreterJava, LispAnyFree, BSDYes
Easy-ISLispKenichi SasagawaYesInterpreter, compiles to CC, LispLinux, MacOS, OpenBSDFree, BSDYes
Isle ISLISPKIM TaegyoonNoCompilerCommon LispOSes on which Common Lisp operates (including Linux and Windows)Free, UnlicenseYes
islisp-compatDerek NewhallYesPackage on top of Common LispCommon LispOSes on which Common Lisp operates (including Linux and Windows)Free, CDDLYes

Two older implementations are no longer available:

  • , by Masato Izumi and Takayasu Ito (Tohoku University), was an interpreter and compiler.
  • G-LISP, by Josef Jelinek, was a Java applet.

External links