Emacs Lisp

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

Emacs Lisp
Парадигма Функційне програмування, Метапрограмування і Рефлексія
Дата появи 1985
Творці Річард Столмен і Guy L. Steeled
Розробник проєкт GNU
Останній реліз
Система типізації динамічна типізація і строга типізаціяd
Під впливом від Common Lisp і Maclispd
Ліцензія GNU General Public License, version 3.0d
Звичайні розширення файлів .el[1] або .elc[1]
Вебсайт gnu.org/software/emacs
 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.»; «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.»

Див. також

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

Посилання


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.