Interested Article - ISLISP

ISLISP (или ISLisp ) язык программирования из семейства языков LISP , спецификация которого была разработана рабочей группой ISO/IEC JTC 1/SC 22/WG 16 (обычно называемой просто SC22/WG16 или WG16 ). Целью разработки было определение компактного языка, который объединял бы в себе общие черты реально используемых в промышленных целях диалектов Лиспа и мог бы помочь преодолеть различия между ними.

Первый вариант был опубликован ISO в 1997 году под названием « ». Обновление выпущено в 2007 году и опубликовано как « ». Официальные публикации стандарта проходили через ISO, но доступны черновики спецификаций, находящиеся в общественном достоянии .

ISLISP характеризуется как «идеологически совместимый» с Common Lisp , он построен на тех же основных архитектурных принципах (лексическая область видимости, отдельные пространства имён для функций и переменных, макросистема, поддержка ООП), но не является его подмножеством. Спецификация ISLISP приблизительно в десять раз меньше по объёму, чем спецификация Common Lisp.

Принципы и цели

Рабочая группа изучала основные "живые" на момент разработки диалекты Лиспа, в первую очередь Common Lisp , EuLisp , , и ; в стандарт включались только общие для них средства.

Согласно , ISLISP строился на следующих принципах:

  • Обеспечить совместимость с существующими диалектами Лиспа, где это возможно.
  • Включить все базовые функциональные возможности.
  • Реализовать объектно-ориентированные средства.
  • Учитывать расширяемость.
  • Считать приоритетными потребности промышленного программирования по отношению к академическим потребностям.
  • Способствовать созданию эффективных реализаций и приложений.

ISLISP, подобно Common Lisp, поддерживает лексическую область видимости (хотя позволяет с помощью специальных средств использовать и динамические переменные), а также реализует отдельные пространства имен для функций и переменных (следовательно, это Lisp-2 ).

Объектная система ISLISP, ILOS, по большей части является подмножеством CLOS .

Реализации

Название Автор Полная реализация ISLisp Архитектура Язык реализации ОС Лицензия Доступность исходных текстов
OpenLisp да интерпретатор, компиляция в C C, Lisp Windows, macOS, Linux, BSD, AIX, Solaris, QNX проприетарная частично
Kyoto University and Oki Electric Industry Co. да компиляция в байт-код, исполнение байт-кода в виртуальной машине C Windows нет данных нет
PRIME-LISP Михаил Семёнов да интерпретатор C# Windows условно-бесплатная (свободно распространяется в бинарном виде) нет
(недоступная ссылка) нет интерпретатор Go любая Mozilla Public License 2.0
(недоступная ссылка) нет интерпретатор, компиляция в JavaScript Go, JavaScript браузер Mozilla Public License 2.0
пока нет интерпретатор C, Lisp any GPL v3+
GOMI Hiroshi нет интерпретатор Java Android проприетарная нет
Matthew Denson нет интерпретатор Java, Lisp любая BSD
Kenichi Sasagawa ? интерпретатор, компиляция в C C, Lisp Windows, Linux проприетарная (only for non-commercial use) частично
Название Автор Полная реализация ISLisp Архитектура Язык реализации ОС Лицензия Доступность исходных текстов

Две старые реализации, недоступные в настоящее время:

  • , создана Masato Izumi и Takayasu Ito (Tohoku University), интерпретатор и компилятор.
  • G-LISP, создана Josef Jelinek, Java -апплет.

Примечания

  1. Архив рассылки группы WG16 (недоступная ссылка)
  2. Programming Language ISLISP: History, от 17 августа 2018 на Wayback Machine
  3. Programming Language ISLISP: Specification, от 22 января 2016 на Wayback Machine

Ссылки

Источник —

Same as ISLISP