WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
CMU Common Lisp
Тип Компилятор и runtime
Автор Университет Карнеги — Меллон
Разработчик Various
Операционная система Unix-подобные операционные системы, существует Windows-порт
Первый выпуск 1980
Последняя версия 21c (октябрь 2017[1])
Лицензия Общественное достояние
Сайт 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.

Примечания

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии