Emacs Lisp ist ein Dialekt der Programmiersprache Lisp, der als Skriptsprache in den Texteditoren GNU Emacs und XEmacs verwendet wird. Sie wird auch von anderen Anwendungen wie Gnus, Zmacs und Gnusmail verwendet.
Emacs Lisp wurde ursprünglich vom GNU Emacs-Autor Richard Stallman in einem Lisp-System implementiert, das er Mitte der 1970er Jahre schrieb und "Stallman Lisp" oder "S-Lisp" nannte. Im Jahr 1981 veröffentlichte Stallman ein Papier, in dem er S-Lisp im Detail beschrieb. Im selben Jahr veröffentlichte er die erste Version von GNU Emacs, die einen Lisp-Interpreter enthielt.
Heute ist Emacs Lisp eine vollwertige Programmiersprache mit einer eigenen Syntax und Semantik. Es ist keine "Skriptsprache" in dem Sinne, dass sie nicht dazu gedacht ist, in andere Anwendungen eingebettet zu werden; vielmehr ist sie eine eigenständige Sprache, die zum Schreiben von Programmen jeder Größe verwendet werden kann.
Emacs Lisp ist eine dynamisch typisierte, garbage-collected Sprache. Sie hat einen Lisp-1-Dialekt mit lexikalischem Scoping. Es ist auch eine homoikonische Sprache, was bedeutet, dass der Code als Datenstrukturen dargestellt wird, die vom Programm selbst manipuliert werden können.
Emacs Lisp eignet sich hervorragend für das Schreiben kleiner Hilfsprogramme oder einmaliger Programme. Es ist auch eine gute Wahl für das Schreiben größerer Programme, obwohl es für diesen Zweck nicht so weit verbreitet ist wie einige andere Sprachen.
Es gibt zwei Hauptimplementierungen von Emacs Lisp: GNU Emacs Lisp und XEmacs Lisp. GNU Emacs Lisp ist die offizielle Implementierung der Sprache, während XEmacs Lisp ein Fork von GNU Emacs Lisp mit einigen sprachlichen Änderungen und Ergänzungen ist.