Jump to content

новыйЛИСП

новыйЛИСП
Новый LISP в виде стрекозы логотип
Парадигма Мультипарадигмальность
Семья Лисп
Разработано Лутц Мюллер
Разработчик Лутц Мюллер
Впервые появился 1991 год ; 33 года назад ( 1991 )
Стабильная версия
10.7.5 / 12 мая 2019 г .; 5 лет назад ( 12.05.2019 ) [1]
Предварительный выпуск
10.7.4 / 10 сентября 2018 г .; 5 лет назад ( 10.09.2018 ) [1]
Объем Динамический
Платформа ИА-32 , x86-64
ТЫ Кроссплатформенность : Unix , Unix-подобный , Windows.
Лицензия GPLv3+
Веб-сайт www .newlisp .org
Под влиянием
C , Common Lisp , Perl , Схема

newLISP язык сценариев , который является диалектом семейства Lisp языков программирования . Его спроектировал и разработал Лутц Мюллер. [2] Из-за небольших требований к ресурсам newLISP отлично подходит для приложений встраиваемых систем. Большинство функций, которые вам когда-либо понадобятся, уже встроены. Сюда входят сетевые функции, поддержка распределенной и многоядерной обработки, а также байесовская статистика. newLISP — это бесплатное программное обеспечение с открытым исходным кодом, выпущенное под лицензией GNU General Public License версии 3 или новее.

История [ править ]

На дизайн newLISP влияют два основных диалекта Lisp , Common Lisp и Scheme , а также другие языки, такие Pascal и C. как [ нужна ссылка ] newLISP возник в 1991 году и первоначально был разработан на рабочей станции Sun-4 . [3] Позже он перешел на Windows 3.0 , где версия 1.3 была выпущена на CompuServe примерно в 1993 году, а затем стала доступна как приложение с графическим интерфейсом пользователя (GUI) Windows и DOS консольное приложение (оба 16-битные ). В 1995 году с выходом Windows 95 newLISP перешёл на 32-битную версию .

В апреле 1999 года newLISP был портирован на Linux ; некоторые из его основных алгоритмов были переписаны , а весь код, специфичный для Windows, удален. newLISP был выпущен как проект программного обеспечения с открытым исходным кодом под лицензией GPL , а разработка для Windows прекратилась после версии 6.0.25. В первой половине 2001 года newLISP был перенесен обратно в Windows на платформу Cygwin без графических возможностей. Во второй половине 2001 года был выпущен кроссплатформенный интерфейс Tcl / Tk под названием newLISP-tk версии 6.3.0. В 2006 году 64-битная в версии 9.0 для целочисленной арифметики и некоторых операций с файлами была введена точность.

С момента выпуска версии 6.5 в середине 2002 года разработка велась очень активно, и было добавлено множество новых функций. [4]

1958 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
ЛИСП 1, 1.5, ЛИСП 2 (заброшенный)
 Маклисп
 Интерлисп
 леев
 Лисп-машина Лисп
 Схема Р5РС Р6РС R7RS маленький
 НОЛЬ
 ЗИЛ (язык реализации Zork)
 Франц Лисп
 Общий Лисп стандарт ANSI
 Лисп
 Схема СО
 XLISP
 Т
 На схеме
 Эмакс Лисп
 АвтоЛИСП
 ПикоЛисп
 Гамбит
 EuLisp
 ИСЛИСП
 ОпенЛисп
 Схема PLT  Ракетка
 новыйЛИСП
 GNU Коварство
 Визуальный ЛИСП
 Кложур
 Дуга
 ЛФЭ
 Он
 Хиалисп

Философия [ править ]

newLISP пытается предоставить быструю, мощную, кроссплатформенную , полнофункциональную скриптовую версию языка Lisp, используя при этом лишь скромные системные ресурсы, такие как хранилище данных (например, дисковое пространство) и память . [5] [6]

Он предоставляет такие функции Lisp, как списки, обработку символов, отображение функций, анонимные функции (лямбда-выражения), s-выражения (исключая неправильные списки) и макросы. Он также предоставляет функции, ожидаемые от современного языка сценариев, включая поддержку регулярных выражений , XML , Unicode ( UTF-8 ), работу в сети через протокол управления передачей (TCP), Интернет-протокол (IP) и протокол пользовательских дейтаграмм (UDP), матрицу . и обработка массивов , высшая математика, статистика и байесовский статистический анализ, математические финансы и распределенные вычисления.

newLISP работает в операционных системах Berkeley Software Distribution (BSD), Linux , macOS , Solaris и Windows . [1] Он поддерживает MYSQL , SQLite и ODBC доступ к базам данных , общий интерфейс шлюза (CGI), простой протокол передачи почты (SMTP), протокол почтового отделения (POP) 3, протокол передачи файлов (FTP) и вызов удаленных процедур XML ( XML-RPC ). Он может работать в режиме сервера как демон .

Языковые особенности [ править ]

Контексты [ править ]

newLISP поддерживает пространства имен , называемые контекстами , которые можно присваивать переменным и передавать функциям , но которые связаны с глобально уникальными символами, что ограничивает их использование в качестве первоклассных граждан (объектов). стиль программирования , основанный на прототипах объектно-ориентированный В newLISP возможен , с использованием контекстов в качестве прототипов для создания объектов . Переменные внутри контекстов не мешают одноименным переменным в других контекстах, но внутри контекста переменные ведут себя согласно правилам динамической области видимости .

Обзор [ править ]

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

Управление памятью [ править ]

newLISP использует метод автоматического управления памятью, отличный от традиционных схем сборки мусора , называемый управлением памятью только по одной ссылке (ORO). На каждую переменную ссылается только ее контекст, а на каждый контекст ссылаются глобально.

Совместное использование подобъектов между объектами , циклическими структурами или несколькими переменными, указывающими на один и тот же объект, не поддерживается в newLISP. Объекты копируются при сохранении в структурах данных или передаче функциям, за исключением некоторых встроенных функций. Исключением являются символы и контексты, которые передаются совместно, а не копируются, и поэтому могут использоваться для косвенного обращения. Символам и контекстам присваиваются глобальные имена, и они удаляются явно; удаление символа или контекста сканирует все остальные объекты и заменяет ссылки на них на nil.

Параметры графического интерфейса [ править ]

(GUI) newLISP графического пользовательского интерфейса Сервер Java, (TCP/IP) на основе (newLISP-GS) — это сервер набора протоколов Интернета обеспечивающий графический интерфейс программирования. Среда разработки на основе newLISP-GS включена в бинарные дистрибутивы newLISP, а также GTK-сервера , OpenGL и Tcl / Tk доступны программные интерфейсы на основе .

Автономные двоичные файлы [ править ]

Любая новая версия LISP позволяет создавать исполняемые файлы, портативные приложения для развертывания, которые являются автономными и не требуют установки.

Взаимодействие с общими библиотеками [ править ]

newLISP имеет функцию импорта, которая позволяет импортировать функции из библиотеки динамической компоновки (DLL) в Windows API Win32 или из общей библиотеки в Linux или Unix .

Фреймворки [ править ]

Веб-фреймворки, доступные для newLISP, включают Dragonfly. [7] и Ракеты. [8]

Ссылки [ править ]

  1. ^ Jump up to: Перейти обратно: а б с «новыйЛИСП» . Проверено 20 ноября 2018 г.
  2. ^ Уоллинг, Роб. «Интервью с Лутцем Мюллером, создателем newLISP» . Программное обеспечениеbyrob.com . Архивировано из оригинала 31 октября 2007 г. Проверено 20 ноября 2018 г.
  3. ^ Мюллер, Лутц. «newLISP — язык сценариев LISP» . Дон Лусио . Проверено 20 ноября 2018 г.
  4. ^ Кобаяши, Сигэру. "kosh04/newlisp" . Гитхаб . Проверено 20 ноября 2018 г.
  5. ^ «Категория:новыйLISP» . Розеттский кодекс . Проверено 20 ноября 2018 г.
  6. ^ Лазар, Александру (5 января 2009 г.). «Взгляд на newLISP» . ОСНовости . Проверено 20 ноября 2018 г.
  7. ^ Слепак, Грег; Хильдманн, Марк. «Веб-фреймворк Dragonfly» . AppTruck . Проверено 20 ноября 2018 г.
  8. ^ Реймер, Джереми. «Блог newLISP on Rockets 2.0» . Человек-ракета . Проверено 20 ноября 2018 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1297f047bd3f78dcc4b3347564fd7b41__1703800800
URL1:https://arc.ask3.ru/arc/aa/12/41/1297f047bd3f78dcc4b3347564fd7b41.html
Заголовок, (Title) документа по адресу, URL1:
newLISP - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)