Emacs Lisp (Емакс Лісп, ELisp) — діалект мови програмування Лісп, який використовується в текстових редакторах GNU Emacs та XEmacs для реалізації більшої частини функцій редагування. Як правило, програми на ELisp пишуться користувачами цих текстових редакторів для розширення їхніх функціональних можливостей.

Emacs Lisp
Парадигма функційне програмування, Метапрограмування і Рефлексія
Дата появи 1985
Творці Річард Столмен і Guy L. Steeled
Розробник проєкт GNU
Останній реліз
Система типізації динамічна типізація[d] і строга типізація
Під впливом від Common Lisp і Maclispd
Ліцензія GNU GPL 3
Звичайні розширення файлів .el[1] або .elc[1]
Вебсайт gnu.org/software/emacs
CMNS: Emacs Lisp у Вікісховищі

Особливості ред.

В Емакс Ліспі використовуються динамічні, а не статичні (лексичні) області видимості. Якщо змінну задекларовано в області видимості функції, вона автоматично стає доступною всім підпрограмам, викликаним із цієї функції. Такий підхід було обрано з метою оптимізації; в той час лексичні діапазони видимості були незвичними з невідомою швидкодією[2]. Динамічні області видимості мали також запропонувати більше гнучкості та можливостей для налаштувань. Однак, динамічні області видимості мають декілька недоліків. По-перше, вони можуть призводити до дефектів у великих програмах, через небажану взаємодію між змінними різних функцій. По-друге, доступ до змінних в динамічній області видимості, зазвичай, повільніший ніж у лексичних.

У версії 24.1, нарешті, було додано опціональну лексичну область видимості[недоступне посилання], для ввімкнення якої необхідно присвоїти змінній lexical-binding значення t.

Інтерпретатор Емакс Лісп не підтримує оптимізацію хвостової рекурсії.

Джерела інформації ред.

  1. а б https://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Libraries.html
  2. «Emacs Lisp uses dynamic scoping because simple implementations of lexical scoping are slow.»[1] [Архівовано 22 жовтня 2007 у Wayback Machine.]; «I asked RMS when he was implementing emacs lisp why it was dynamically scoped and his exact reply was that lexical scope was too inefficient.»[2] [Архівовано 13 листопада 2007 у Wayback Machine.]

Див. також ред.

  • wikipedia-mode — програма на Емакс Лісп для полегшення редагування статей Вікіпедії.

Посилання ред.