Відкрити головне меню

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

ОсобливостіРедагувати

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

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

Джерела інформаціїРедагувати

  1. «Emacs Lisp uses dynamic scoping because simple implementations of lexical scoping are slow.»[1]; «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]

Див. такожРедагувати

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

ПосиланняРедагувати