ISLISP (или ISLisp) язык программирования из семейства языков LISP, спецификация которого была разработана рабочей группой ISO/IEC JTC 1/SC 22/WG 16Архив рассылки группы WG16 ftp://std.dkuug.dk/ftp.anonymous/jtc1/SC22/wg16/mail/ (обычно называемой просто SC22/WG16 или WG16). Целью разработки было определение компактного языка, который объединял бы в себе общие черты реально используемых в промышленных целях диалектов Лиспа и мог бы помочь преодолеть различия между ними.
Первый вариант был опубликован ISO в 1997 году под названием «ISO/IEC 13816:1997(E)». Обновление выпущено в 2007 году и опубликовано как «ISO/IEC 13816:2007(E)».Programming Language ISLISP: History, http://www.islisp.info/history.html Официальные публикации стандарта проходили через ISO, но доступны черновики спецификаций, находящиеся в общественном достоянии.Programming Language ISLISP: Specification, http://www.islisp.info/specification.html
ISLISP характеризуется как «идеологически совместимый» с Common Lisp, он построен на тех же основных архитектурных принципах (лексическая область видимости, отдельные пространства имён для функций и переменных, макросистема, поддержка ООП), но не является его подмножеством. Спецификация ISLISP приблизительно в десять раз меньше по объёму, чем спецификация Common Lisp.
Принципы и цели
Рабочая группа изучала основные "живые" на момент разработки диалекты Лиспа, в первую очередь Common Lisp, EuLisp, Le Lisp, и Scheme; в стандарт включались только общие для них средства.
Согласно сайту ISLISP.info, ISLISP строился на следующих принципах:
Обеспечить совместимость с существующими диалектами Лиспа, где это возможно. Включить все базовые функциональные возможности. Реализовать объектно-ориентированные средства. Учитывать расширяемость. Считать приоритетными потребности промышленного программирования по отношению к академическим потребностям. Способствовать созданию эффективных реализаций и приложений.
ISLISP, подобно Common Lisp, поддерживает лексическую область видимости (хотя позволяет с помощью специальных средств использовать и динамические переменные), а также реализует отдельные пространства имен для функций и переменных (следовательно, это Lisp-2 ).
Объектная система ISLISP, ILOS, по большей части является подмножеством CLOS.
Реализации
Название Автор Полная реализация ISLisp Архитектура Язык реализации ОС Лицензия Доступность исходных текстов OpenLisp Eligis да интерпретатор, компиляция в C C, Lisp Windows, macOS, Linux, BSD, AIX, Solaris, QNX проприетарная частично OKI ISLISP Kyoto University and Oki Electric Industry Co. да компиляция в байт-код, исполнение байт-кода в виртуальной машине C Windows нет данных нет PRIME-LISP Михаил Семёнов да интерпретатор C# Windows условно-бесплатная (свободно распространяется в бинарном виде) нет Iris TANIGUCHI Masaya нет интерпретатор Go любая Mozilla Public License 2.0 да Iris web REPLTANIGUCHI Masaya нет интерпретатор, компиляция в JavaScript Go, JavaScript браузер Mozilla Public License 2.0 да Kiss Yuji Minejima пока нет интерпретатор C, Lisp any GPL v3+ да ISLisproid GOMI Hiroshi нет интерпретатор Java Android проприетарная нет dayLISP Matthew Denson нет интерпретатор Java, Lisp любая BSD да Easy-ISLisp Kenichi Sasagawa ? интерпретатор, компиляция в C C, Lisp Windows, Linux проприетарная (only for non-commercial use) частично Название Автор Полная реализация ISLisp Архитектура Язык реализации ОС Лицензия Доступность исходных текстов
Две старые реализации, недоступные в настоящее время: TISL, создана Masato Izumi и Takayasu Ito (Tohoku University), интерпретатор и компилятор. G-LISP, создана Josef Jelinek, Java -апплет.
Примечания
Ссылки ISLISP 2007 draft in PDF format ISLISP 2007 draft in HTML format ISLISP page of Kent M Pitman ISLISP page of OKI ISLISP developers ISLISP on Software Preservation Group
Категория:Языки программирования семейства Лиспа