| |
Unix Programming - Applying Minilanguages - Case Study: Emacs Lisp
Case Study: Emacs Lisp
Rather than merely being run as a slave process to accomplish
specific tasks, a special-purpose interpreted language can become the
core of an entire architecture; we'll consider the advantages and
disadvantages of this approach in Chapter13. troff requests were an early example;
today, the Emacs editor is one of the
best-known and most powerful modern ones. It's built around a dialect
of Lisp with
primitives for both describing actions on editing buffers and
controlling slave processes.
The fact that Emacs is built around a powerful language for
describing editing actions or front ends for other programs means that
it can be used for many other things besides ordinary editing. We'll
examine the applications of Emacs's task-specific intelligence for
day-to-day program development (compilation, debugging, version
control) in Chapter15.
Emacs ‘modes’
are user-defined libraries — programs written in Emacs Lisp that
specialize the editor for a particular job — usually, but not
necessarily, one related to editing.
Thus there are specialized modes that know the syntax of a large
number of programming languages, and of markup languages like
SGML, XML, and HTML. But
many people also use Emacs modes to send
and receive email (these use Unix system mail utilities as slaves) or
Usenet news. Emacs can browse the web, or act as a front-end for
various chat programs. There is also a calendaring package, Emacs's
own calculator program, and even a fairly wide selection of games
written as Emacs Lisp modes (including a descendant of the famous
ELIZA program that simulates a Rogersian psychiatrist).[93]
[an error occurred while processing this directive]
|
|