SLIME
SLIME - Superior Lisp Interaction Mode for Emacs (англ.) — интерактивный Emacs для Лиспа.
Является расширение редактора Emacs для лисп-разработки на различных платформах.
SLIME имеет клиент-серверную архитектуру. EMACS-часть SLIME связывает редактор с внешними лисп-процессами, работающими на SLIME-сервере. SLIME состоит из двух частей общающихся между собой s-выражениями через сокеты по протоколу. Такая архитектура обусловлена тем, что использование стандартных потоков ввода/вывода для взаимодействия между lisp-процессом и Emacs не может обеспечить необходимый уровень сервиса.
- EMACS Lisp "фpонтальная часть" обеспечивающая некоторую функциональность EMACS редактора - SLIME компонент. ELisp-кода, обеспечивающее непосредственный функционал IDE на стороне Emacs
- Серверная "обеспечивающая часть" общающаяся с лисп-реализацией. Это осуществляется черз стандартный набор определенных интерфейсов (SWANK). Lisp-side части (известной как SWANK), которая является сервером, работающим в рамках запущенного lisp-процесса, который предоставляет доступ к "внутренностям" lisp и взаимодействует с elisp-частью по сокетному соединению
Система представляет собой цельный кусок кода, который не опирается ни на что, кроме конкретных реализаций, и не предоставляет миру ничего, кроме собственно самой IDE.
Связующим звеном между двумя этими частями, естественным образом, является протокол взаимодействия. Наличие данного протокола дало возможность для разработки SWANK-сервера также и на Scheme, а теперь и на Clojure (см. swank-clojure). Подобная схема выглядит просто замечательно: с одной стороны возможны различные реализации swank для разных диалектов lisp, с другой стороны возможны различные клиентские части, не только для Emacs, но и например для Eclipse (см. cusp), да и заметно упрощается (особенно после появления cl-gtk2) разработка полноценной среды разработки на самом Common Lisp.
ВозможностиПравить
- Вычислением кодов, компиляция, макрорасширения.
- On-line документация (команды describe, apropos, hyperspec)
- Нахождение определений (типа Emacs вызовов Meta-Point, M-.)
- Автоматическое завершение имен символов и пакетов.
- Автоматические макро отступы на основе &body.
- Перекресные ссылки (WHO-CALLS - кто вызывал, etc).
- SLDB: Лисп-отладчик с Emacs-интерфейсом.
- REPL: The Read-Eval-Print Loop ("top-level") режим работы в т.н. цикле "чтение-вычисление-печать", как в терминале реализации лиспа.
- Inspector: интерактивное исследование в Emacs-окне (буфере).
ИспользованиеПравить
Квалифицированные пользователи сами собирать среду Лисп-систему + EMACS + SLIME. Начинающий может использовать готовую сборку, т.н. lispbox например реализация Closure Common Lisp (CCP). Lispbox project
См. такжеПравить
ИнтернетПравить
- Страница редактора (на англ. яз.)
- Ролик иллюстрирующий работу SLIME в Linux [1]
- Блог Москвитина Андрея [2]
slime - что-то противное, заискивание подлый человек.