ISLISP

Last updated
ISLISP
Paradigms Multi-paradigm: functional, procedural, object-oriented, reflective, meta
Family Lisp
Designed by Many
Developers Many
Implementation language C, C#, Go, Java, JavaScript, Lisp
Platform IA-32, x86-64
OS Windows, macOS, Linux, BSD, AIX, Solaris, Android, QNX
Dialects
dayLISP, Easy-ISLisp, Iris, 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]

Contents

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.

19551960196519701975198019851990199520002005201020152020
 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
  Le Lisp
  MIT Scheme
  T
  Chez Scheme
  Emacs Lisp
  AutoLISP
  PicoLisp
  EuLisp
  ISLISP
  OpenLisp
  PLT Scheme   Racket
  GNU Guile
  Visual LISP
  Clojure
  Arc
  LFE
  Hy

Design goals

ISLISP has these design goals: [6]

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

Implementations

ISLISP implementations have been made for many operating systems including: Windows, most Unix and POSIX based (Linux, macOS, FreeBSD, OpenBSD, NetBSD, Solaris, HP-UX, AIX, Cygwin, QNX), Android, DOS, OS/2, Pocket PC, OpenVMS, and z/OS.

Implementations for hardware computer architectures include: x86, x86-64, IA-64, SPARC, SPARC9, PowerPC, MIPS, Alpha, PA-RISC, ARM, AArch64

ISLISP implementations
NameCreatorComplete ISLispArchitectureWritten in Operating system License Source code available
OpenLisp Eligis [7] Yes interpreter, compiles to C C, Lisp Windows, macOS, Linux, BSD, AIX, Solaris, QNX Proprietary Partial
OKI ISLISP [8] Kyoto University and Oki Electric Industry Co.Yes Bytecode machine, compiles to bytecodeCWindows?No
PRIME-LISPMikhail SemenovYesInterpreter C# Windows Proprietary, Shareware, freely redistributable binariesNo
Iris [9] Masaya Taniguchi [10] NoInterpreter Go anyFree, Mozilla Public License 2.0Yes [11]
Iris web REPL [12] Masaya Taniguchi [13] NoInterpreter, compiles to JavaScript Go, JavaScriptBrowserFree, Mozilla Public License 2.0Yes [14]
Kiss [15] Yuji Minejima [16] No, not yetInterpreterC, LispanyFree, GPL v3+Yes [17]
ISLisproid [18] Hiroshi GomiNoInterpreter Java Android Proprietary No
dayLISP [19] Matthew DensonNoInterpreterJava, LispAnyFree, BSD Yes [20]
Easy-ISLisp [21] Kenichi SasagawaYesInterpreter, compiles to CC, LispLinux,MacOS,OpenBSDFree, BSD Yes [22]

Two older implementations are no longer available:

Related Research Articles

ANSI C, ISO C, and Standard C are successive standards for the C programming language published by the American National Standards Institute (ANSI) and ISO/IEC JTC 1/SC 22/WG 14 of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC). Historically, the names referred specifically to the original and best-supported version of the standard. Software developers writing in C are encouraged to conform to the standards, as doing so helps portability between compilers.

The Common Language Infrastructure (CLI) is an open specification and technical standard originally developed by Microsoft and standardized by ISO/IEC and Ecma International that describes executable code and a runtime environment that allows multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures. This implies it is platform agnostic. The .NET Framework, .NET and Mono are implementations of the CLI. The metadata format is also used to specify the API definitions exposed by the Windows Runtime.

International Organization for Standardization International standards development organization

The International Organization for Standardization is an international standard development organization composed of representatives from the national standards organizations of member countries. Membership requirements are given in Article 3 of the ISO Statutes.

Lisp (programming language) Programming language family

Lisp is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language still in common use. Only Fortran is older, by one year. Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Racket, Common Lisp, Scheme, and Clojure.

Ruby (programming language) General-purpose programming language

Ruby is an interpreted, high-level, general-purpose programming language which supports multiple programming paradigms. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.

The Single UNIX Specification (SUS) is the collective name of a family of standards for computer operating systems, compliance with which is required to qualify for using the "UNIX" trademark. The core specifications of the SUS are developed and maintained by the Austin Group, which is a joint working group of IEEE, ISO JTC 1 SC22 and The Open Group. If an operating system is submitted to The Open Group for certification, and passes conformance tests, then it is deemed to be compliant with a UNIX standard such as UNIX 98 or UNIX 03.

C++ General-purpose programming language

C++ is a general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significantly over time, and modern C++ now has object-oriented, generic, and functional features in addition to facilities for low-level memory manipulation. It is almost always implemented as a compiled language, and many vendors provide C++ compilers, including the Free Software Foundation, LLVM, Microsoft, Intel, Oracle, and IBM, so it is available on many platforms.

Free Pascal Free compiler and IDE for Pascal and ObjectPascal

Free Pascal Compiler (FPC) is a compiler for the closely related programming-language dialects Pascal and Object Pascal. It is free software released under the GNU General Public License, with exception clauses that allow static linking against its runtime libraries and packages for any purpose in combination with any other software license.

In computing, a null pointer or null reference is a value saved for indicating that the pointer or reference does not refer to a valid object. Programs routinely use null pointers to represent conditions such as the end of a list of unknown length or the failure to perform some action; this use of null pointers can be compared to nullable types and to the Nothing value in an option type.

newLISP

newLISP is a scripting language which is a dialect of the Lisp family of programming languages. It was designed and developed by Lutz Mueller. newLISP is free and open-source software released under the GNU General Public License, version 3 or later.

Watcom C/C++

Watcom C/C++ is an integrated development environment (IDE) product from Watcom International Corporation for the C, C++, and Fortran programming languages. Watcom C/C++ was a commercial product until it was discontinued, then released under the Sybase Open Watcom Public License as Open Watcom C/C++. It features tools for developing and debugging code for DOS, OS/2, Windows, Linux operating systems, which are based upon x86, IA-32, x86-64 compatible processors.

Programming languages are used for controlling the behavior of a machine. Like natural languages, programming languages follow the rules for syntax and semantics.

In C and related programming languages, long double refers to a floating-point data type that is often more precise than double precision though the language standard only requires it to be at least as precise as double. As with C's other floating-point types, it may not necessarily map to an IEEE format.

Allegro Common Lisp is a programming language with an integrated development environment (IDE), developed by Franz Inc. It is a dialect of the language Lisp, a commercial software implementation of the language Common Lisp. Allegro CL provides the full American National Standards Institute (ANSI) Common Lisp standard with many extensions, including threads, CLOS streams, CLOS MOP, Unicode, SSL streams, implementations of various Internet protocols, OpenGL interface. The first version of Allegro Common Lisp was finished at the end of 1986, originally called Extended Common Lisp. Allegro CL is available for many operating systems including Microsoft Windows (32/64-bit), and many Unix and Unix-like, 32-bit or 64-bit, including macOS, Linux (32/64-bit), FreeBSD (32-bit), Solaris, UNICOS, and UTS. Internationalization and localization support is based on Unicode. It supports various external text encodings and provides string and character types based on Universal Coded Character Set 2 (UCS-2). Allegro CL can be used with and without its integrated development environment (IDE), which is available for Windows, Linux, and on macOS in version 8.2. The IDE includes development tools including an editor and an interface designer. Allegro CL can be used to deliver applications.

Chez Scheme is a programming language, a dialect and implementation of the language Scheme which is a type of Lisp. It uses an incremental native-code compiler to produce native binary files for the x86, PowerPC, and SPARC processor architectures. It has supported the R6RS standard since version 7.9.1. It is free and open-source software released under an Apache License, version 2.0. It was first released in 1985, by R. Kent Dybvig, originally licensed as proprietary software, and then released as open-source software on GitHub on 2016-05-13 with version 9.4.

Modula-2 is a structured, procedural programming language developed between 1977 and 1985 by Niklaus Wirth at ETH Zurich. It was created as the language for the operating system and application software of the Lilith personal workstation. It was later used for programming outside the context of the Lilith.

.NET Framework Software platform developed by Microsoft

The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

OpenLisp

OpenLisp is a programming language in the Lisp family developed by Christian Jullien from Eligis. It conforms to the international standard for ISLISP published jointly by the International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC), ISO/IEC 13816:1997(E), revised to ISO/IEC 13816:2007(E).

References

  1. "WG16 Mail archive".[ permanent dead link ]
  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. "Iris".
  10. "Masaya Taniguchi". GitHub . Archived from the original on November 21, 2021.
  11. "Iris source code". GitHub . 4 September 2021.
  12. "Iris web REPL".
  13. "Masaya Taniguchi". GitHub . Archived from the original on November 21, 2021.
  14. "Iris source code". GitHub .
  15. "Kiss". 8 April 2017.
  16. "Yuji Minejima".
  17. "Kiss source code". GitHub . 26 September 2021.
  18. "ISLisproid".
  19. "dayLISP".
  20. "dayLISP source code".
  21. "Easy-ISLisp".
  22. "Easy-ISLisp source code". GitHub . 21 November 2021.