Let Over Lambda - 50 Years of Lisp / Let Over Lambda - 50 лет Lisp-у: Приложение C - Реализации

Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

C.1 CMUCL/SBCL

Charlz_Klug 01.01.16 в 20:42

0

История системы CMUCL/SBCL предшествует COMMON LISP-у 1. SBCL - это родственный форк CMUCL. По моему мнению, CMUCL - это лучшая лисп среда из ныне существующих, на втором месте располагается SBCL. CMUCL и SBCL оба предоставляют исключительно продуктивные среды разработки. Обе реализации включают в себя удивительный оптимизирующий компилятор в машинный код Python 2. После довольно простого процесса декларирования COMMON LISP кода выполняется компилирование Python-ом, производительность которого может соперничать или превосходить компиляторы для других языков, особенно при использовании на больших или сложных приложениях. Самая большая разница между CMUCL и SBCL заключается в том, что SBCL использует Python всюду, а CMUCL предоставляет несколько компиляторов и интерпретаторов, каждый со своими сильными и слабыми сторонами.

Charlz_Klug 01.01.16 в 21:01

0

1 Раньше CMUCL назывался SPICE Lisp.

Charlz_Klug 01.01.16 в 21:02

0

2 Имя предшествует Python-у, скриптовому языку.

Charlz_Klug 01.01.16 в 21:02

0

Большинство примеров в этой книге исполнялось в CMUCL, хотя иногда использовался дизассемблер SBCL (по причине генерации читабельного вывода). CMUCL менее раздражает излишними предупреждениями и обладает более удобным REPL-ом, но SBCL даёт более ясные замечания и лучше подходит для задач связанных с Юникодом. В архитектуре SBCL выполнены некоторые решения, с которыми я не согласен, в частности нарушена CMUCL-овское высокоуровневое свойство setq, используются менее очевидные имена для системных символов и бессмысленное копирование юниксовского getopt(3).

Charlz_Klug 01.01.16 в 21:16

0

CMUCL и SBCL позволяют насладиться большим количеством библиотек и ярким он-лайн сообществом. Для меня очень странно слышать людей, утверждающих что доступность библиотек является проблемой для лиспа. Я считаю что ситуация с библиотеками прямо противоположна. Библиотеки в COMMON LISP-е обычно лучше поддерживаются и лучшего качества чем в остальных языках. Интерфейс сторонних функций (foreign function interface - FFI) CMUCL/SBCL также замечателен - более гибкий, стабильный и эффективный чем то, что я встречал в любом другом языке. Библиотеки никогда не были для меня серьёзной проблемой при разработке чего-либо на COMMON LISP.

Charlz_Klug 02.01.16 в 09:21

0

CMUCL и SBCL позволяют насладиться большим количеством библиотек и ярким он-лайн сообществом. Для меня очень странно слышать людей, утверждающих что доступность библиотек является проблемой для лиспа. Я нахожу ситуацию с библиотеками прямо противоположной. Библиотеки в COMMON LISP-е обычно лучше поддерживаются и лучшего качества чем в остальных языках. Интерфейс сторонних функций (foreign function interface - FFI) CMUCL/SBCL также замечателен - более гибкий, стабильный и эффективный чем то, что я встречал в любом другом языке. Библиотеки никогда не были для меня серьёзной проблемой при разработке чего-либо на COMMON LISP.

Charlz_Klug 18.01.16 в 21:08

0

C.2 CLISP

Charlz_Klug 02.01.16 в 21:11

0

CLISP - другая замечательная COMMON LISP среда. Она гораздо переносимей чем CMUCL/SBCL и может запускаться почти везде, где можно применить компилятор C. Поскольку CLISP компилируется не в машинный-код, а в формат байт-кода, то он часто медленней чем CMUCL/SBCL, иногда из-за этого CLISP не используют в разворачивании. Но иногда разворачивание в CLISP - наиболее разумный выбор если вам требуется переносимость. Также CLISP примечателен быстрой работой с большими целыми числами.

Charlz_Klug 02.01.16 в 21:22

0

C.3 Другие

Charlz_Klug 02.01.16 в 21:23

0

ECL - реализация COMMON LISP написанная на C и предназначенная для встраивания. Эта реализация следует за CLISP-ом и является достаточно полной для использования. ECL может быть хорошей средой для разворачивания в машинах с чрезвычайно ограниченной памятью. Благодаря библиотеке GMP она также обладает хорошей производительностью при работе с большими целыми числами.

Charlz_Klug 02.01.16 в 21:32

0

GCL - это реализация COMMON LISP использующая компилятор GNU C для компилирования лиспа в машинный код, где C играет роль промежуточного звена. GCL испытала влияние Kyoto CL [KYOTO-CL-REPORT]. В целом не так хороша как CMUCL/SBCL или CLISP, но, ещё можно обратить внимание.

Charlz_Klug 02.01.16 в 21:38

0

Armed Bear - реализация COMMON LISP, запускающаяся поверх Виртуальной Машины Java. Может быть полезной для интеграции с существующими Java приложениями.

Charlz_Klug 03.01.16 в 10:32

0

Виртуальная машина Parrot Perl имеет COMMON LISP фронтенд за которым я наблюдаю.

Charlz_Klug 03.01.16 в 10:37

0

Clozure CL (в прошлом OpenMCL) - хорошая реализация COMMON LISP с открытым исходным кодом, до тех пор, пока она не запускается на проприетарной операционной системе.

Charlz_Klug 03.01.16 в 10:42

0

Кроме того, есть много проприетарных реализаций COMMON LISP-а. Некоторые из них высокого качества, но все они страдают от критического дефекта - не-технические барьеры, не дающие вам познавать и создавать новое. Принимая в учёт качество и количество лиспов с открытым исходным кодом, сегодня нет никакой надобности запирать себя в дорогих реализациях без исходных кодов или даже в ещё более ограниченных пробных версиях.

Charlz_Klug 03.01.16 в 10:50

0

Сегодня, с замечательными реализациями COMMON LISP-а с открытыми исходными кодами , в сочетании с такими превосходными операционными системами как OpenBSD и GNU/Linux мы входим в золотой век вычислений. Сегодня ничто не останавливает программиста кроме барьеров его собственного интеллекта и креативности.

Charlz_Klug 03.01.16 в 10:56

0
Минутку...