Emacs Lisp
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 |
Особливості
ред.В Емакс Ліспі використовуються динамічні, а не статичні (лексичні) області видимості. Якщо змінну задекларовано в області видимості функції, вона автоматично стає доступною всім підпрограмам, викликаним із цієї функції. Такий підхід було обрано з метою оптимізації; в той час лексичні діапазони видимості були незвичними з невідомою швидкодією[2]. Динамічні області видимості мали також запропонувати більше гнучкості та можливостей для налаштувань. Однак, динамічні області видимості мають декілька недоліків. По-перше, вони можуть призводити до дефектів у великих програмах, через небажану взаємодію між змінними різних функцій. По-друге, доступ до змінних в динамічній області видимості, зазвичай, повільніший ніж у лексичних.
У версії 24.1, нарешті, було додано опціональну лексичну область видимості[недоступне посилання], для ввімкнення якої необхідно присвоїти змінній lexical-binding
значення t
.
Інтерпретатор Емакс Лісп не підтримує оптимізацію хвостової рекурсії.
Джерела інформації
ред.- ↑ а б https://www.gnu.org/software/emacs/manual/html_node/emacs/Lisp-Libraries.html
- ↑ «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 — програма на Емакс Лісп для полегшення редагування статей Вікіпедії.
Посилання
ред.- ЕмаксВікі [Архівовано 6 грудня 2012 у Wayback Machine.](англ.)
- Introduction to Emacs Lisp Programming [Архівовано 3 березня 2012 у WebCite](англ.)
- Emacs Lisp Reference Manual [Архівовано 2 лютого 2007 у Wayback Machine.](англ.)
Це незавершена стаття про мови програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |