Jump to content

CMU Common Lisp

(Перенаправлено с CMUCL )
КМУКЛ
Оригинальный автор(ы) Университет Карнеги-Меллон
Разработчик(и) Различный
Первоначальный выпуск Начало 1980 года ; 44 года назад ( 1980 )
Стабильная версия
21е [1] / 14 мая 2023 г .; 14 месяцев назад ( 14.05.2023 )
Репозиторий
Операционная система Несколько POSIX -совместимых операционных систем
Платформа Кросс-платформенный
Доступно в Общий Лисп
Тип Компилятор и среда выполнения
Лицензия Общественное достояние
Веб-сайт cmucl .org

CMUCL — это бесплатная реализация Common Lisp , первоначально разработанная в Университете Карнеги-Меллон .

CMUCL работает на большинстве Unix-подобных платформ, включая Linux и BSD ; существует экспериментальный порт для Windows также . Steel Bank Common Lisp является производным от CMUCL. Scieneer Common Lisp был коммерческой производной от CMUCL.

Самая ранняя реализация предшествовала Common Lisp и была частью Spice Lisp примерно в 1980 году. В 1985 году Роб Маклахлан начал переписывать компилятор так, чтобы он стал компилятором Python, а CMUCL был портирован на рабочие станции Unix, такие как IBM PC RT, MIPS и SPARC. . Ранние выпуски CMUCL не поддерживали архитектуру Intel x86 из-за отсутствия регистров. CMUCL строго разделяет типы данных с тегами типа и непосредственные типы данных, и сборщик мусора будет полагаться на знание того, что одна половина регистров ЦП может содержать только тегированные типы, а другая половина - только нетегированные типы. Это не оставило достаточного количества регистров для серверной части Python.

После того, как CMU отменил проект (в пользу реализации Dylan с использованием некоторой базы компилятора CMUCL), обслуживание взяла на себя группа добровольцев. К 1996 году эта группа уже регулярно выпускала релизы на собственной инфраструктуре.

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

Компилятор и другие блоки исполнения кода

[ редактировать ]
  • CMUCL имеет интерпретатор, который в основном используется для REPL , но может использоваться для более быстрой загрузки файлов Lisp, не требующих компиляции.
  • Машина для интерпретации компактного байт-кода (который может быть создан компилятором). Сейчас это используется редко, но было популярно в ранних выпусках CMUCL, поскольку размеры изображений были резко уменьшены в то время, когда пропускная способность загрузки в Интернете была низкой.
  • собственного кода Компилятор под названием «Python» (не путать с языком программирования Python ). Если исходный код Common Lisp написан с соответствующими объявлениями и организован с учетом скорости, компилятор Python генерирует код, практически свободный от накладных расходов по сравнению с кодом, скомпилированным из таких языков, как C++. Некоторые недостатки, такие как интерфейсы вызова функций и отсутствие массивов без указателей пользовательских типов данных, продиктованы стандартом Common Lisp и их все еще необходимо обойти (например, путем встраивания большего количества элементов и использования макросов для создания конструкций, которые выглядят как пользовательские). определенные структуры, но фактически получают доступ к полям в заранее выделенных специализированных массивах). Компилятор Python также имеет мощные функции вывода типов , помогающие программисту писать код без накладных расходов, либо автоматически выявляя типы, либо выдавая подсказки об упущенных возможностях оптимизации.

См. также

[ редактировать ]
  1. ^ «Главная · Wiki · cmucl / cmucl · GitLab» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c91d9b6f8e20c84e088da4aef26add1e__1689927180
URL1:https://arc.ask3.ru/arc/aa/c9/1e/c91d9b6f8e20c84e088da4aef26add1e.html
Заголовок, (Title) документа по адресу, URL1:
CMU Common Lisp - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)