CMU Common Lisp

CMU Common Lisp
Тип Компилятор и runtime
Автор Университет Карнеги — Меллон
Разработчик Various
Операционные системы Unix-подобные операционные системы, существует Windows-порт
Первый выпуск 1980
Последняя версия 21d (8 декабря 2018)
Репозиторий gitlab.common-lisp.net/c…
Лицензия Общественное достояние
Сайт cons.org/cmucl/

CMU Common Lisp (CMUCL) — свободная реализация языка программирования Common Lisp для UNIX-подобных ОС, в том числе Linux и FreeBSD, первоначально разработанная в Университете Карнеги-Меллона. Является предком свободной Steel Bank Common Lisp и коммерческой Scieneer Common Lisp.

История

История системы началась ещё до появления Common Lisp. Первоначально она была частью Spice Lisp, созданного в 1980 году в Университете Карнеги-Меллона для 16-разрядной рабочей станции PERQ, архитектура которой предусматривала поддержку языков высокого уровня путём программирования аппаратного ядра на микрокоде. В 1985 году был создан компилятор «Python» а CMUCL был перенесён на рабочие станции IBM PC RT, MIPS и SPARC под управлением UNIX. Ранние выпуски CMUCL не поддерживали Intel x86 из-за несовместимости ядра с данной архитектурой (реализация критически зависела от наличия достаточно большого массива регистров, которого нет в процессорах семейства x86).

После того, как университет отказался от данного проекта в пользу Dylan, для которого были использованы и наработки CMUCL, сопровождение системы было продолжено сообществом.

К 1996 году группой сопровождения был налажен регулярный выпуск обновлений системы, тогда же она была портирована на x86, первоначально для FreeBSD, позже — под Linux. Проблему с архитектурной несовместимостью решили созданием нового сборщика мусора.

На текущий момент система находится в общественном достоянии, её сопровождение продолжается. Последний стабильный релиз (21c) выпущен в октябре 2017 года.

Компилятор и исполняющие модули

CMUCL содержит интерпретатор исходного кода, интерпретатор байт-кода и компилятор.

  • Компилятор в машинный код целевой платформы CMUCL имеет имя «Python» (не следует путать с языком программирования Python). По утверждению авторов, при соответствующем кодировании (написании программы с учётом требований производительности и использовании ряда формально необязательных деклараций) дополнительные накладные расходы при исполнении откомпилированной CMUCL программы практически не превышают таковые для языков типа C++.
  • Интерпретатор предназначен в основном для интерактивной разработки, но может использоваться и просто для быстрой загрузки и исполнения лисповского кода в отсутствие жёстких требований по быстродействию.
  • Виртуальная машина для исполнения программ, предварительно преобразованных компилятором в компактный байт-код. В настоящее время эта возможность используется редко, она была популярна на ранних этапах существования системы, так как позволяла быстрее запускать загружаемый через медленное Интернет-соединение код.

Основные возможности

  • Эффективная сборка мусора и поддержка многопроцессорности на платформе x86.
  • Интерфейс с внешним кодом на Си, возможность прямого обращения к системным библиотекам на большинстве платформ, прямой доступ к системным вызовам в UNIX.
  • Поддержка межпроцессного взаимодействия и удалённого вызова процедур.
  • Реализация объектной системы CLOS.
  • Отладчик с графическим интерфейсом, профайлер.
  • Интерфейс с X11 Window System (CLX) с собственной библиотекой графических виджетов (Garnet).
  • Программно-расширяемые потоки ввода/вывода.
  • Текстовый редактор Hemlock (типа Emacs), написанный на Common Lisp.

Примечания

Ссылки

  • Домашняя страница (англ.)
Перейти к шаблону «Common Lisp»
Реализации
Программное обеспечение
Библиотеки
  • CLSQL[англ.]
  • CL-HTTP[англ.]
  • CL-PPCRE
  • CLX[англ.]
  • Ironclad
  • SymbolicWeb
  • UnCommon Web
  • Weblocks
  • Hunchentoot
  • AllegroCache
  • ASDF[англ.]
  • CLiki[англ.]
  • CLIM[англ.]
Приложения
  • Clfswm
  • Common Music
  • Common Lisp Music[англ.]
  • Common Music Notation[англ.]
  • ICAD
  • InspireData
  • PrimeTrader
  • Mirai[англ.]
  • Maxima
  • OpenMusic
  • PWGL
  • Stumpwm
  • SiteGrinder
  • OASIS
  • AutoPrice
Среды разработки
Публикации
  • Common Lisp the Language[англ.]
  • Paradigms of AI Programming[англ.]
  • The Art of the Metaobject Protocol[англ.]
  • On Lisp[англ.]
  • Practical Common Lisp[англ.]
  • Object-Oriented Programming in Common Lisp[англ.]
Design committee
  • X3J13[англ.]
  • Гай Стил[англ.]
Другое
Перейти к шаблону «Лисп»
Характеристики
Объектные системы systems
Реализации
Стандарты
Common
Lisp
Scheme
ISLISP
Нестандартные
Лого
Операционная система
  • Common Lisp Interface Manager, McCLIM
  • Genera
  • Scsh
  • Аппаратное обеспечение
    Сообщество
    Стандарты
    Образование
    Книги
    • Common Lisp the Language
    • How to Design Programs (HTDP)
    • On Lisp
    Куррикулум
    • ProgramByDesign
    Разработчики
    Люди
    • Категория Категория
    • Категория Категория
    • Список Список