Оглавление [Скрыть]
Общий шепелявый язык CMU
-
История CMUCL
- CMUCL – бесплатная реализация Common Lisp, разработанная в Университете Карнеги-Меллона.
- Работает на большинстве Unix-подобных платформ, включая Linux и BSD, и имеет экспериментальный порт для Windows.
- Steel Bank Common Lisp и Scieneer Common Lisp являются производными от CMUCL.
-
Ранние версии и архитектура
- Самая ранняя реализация появилась в 1980 году как часть Spice Lisp.
- В 1985 году Роб Маклахлан начал переписывать компилятор, который стал компилятором Python.
- Ранние версии не поддерживали архитектуру Intel x86 из-за нехватки регистров.
- CMUCL строго разделяет типы данных с тегами типа и непосредственные типы данных.
-
Техническое обслуживание и развитие
- После отмены проекта CMU техническое обслуживание было передано группе добровольцев.
- К 1996 году группа регулярно выпускала релизы на своей инфраструктуре.
- В 1996 году был завершен перенос на архитектуру Intel x86, сначала на FreeBSD, затем на Linux.
- Проблема нехватки регистров была решена с помощью нового консервативного сборщика мусора.
-
Компилятор и модули выполнения кода
- CMUCL содержит интерпретатор для REPL и быстрой загрузки файлов Lisp.
- Машина для интерпретации компактного байт-кода, который может быть запущен компилятором.
- Компилятор машинного кода “Python” генерирует код, практически не требующий дополнительных затрат по сравнению с кодом на C++.
- Компилятор Python обладает мощными возможностями вывода типов и помогает программисту при написании кода.
-
Особенности
- Поколенческая сборка мусора и возможность многопроцессорной обработки на портах x86.
- Внешний функциональный интерфейс для взаимодействия с кодом на C и системными библиотеками.
- Поддержка межпроцессного взаимодействия и удаленных вызовов процедур.
- Реализация CLOS, объектной системы Common Lisp.
- Графический отладчик и профилировщик кода.
- Интерфейс к оконной системе X11 и сложная библиотека графических виджетов.
- Расширяемые программистом потоки ввода и вывода.
- Hemlock – редактор, подобный Emacs, реализованный в Common Lisp.