- ...applications.
- The author is aware of two general
extension environments: Bob Glickstein's ELI---The Embedded Lisp
Interpreter from Carnegie-Mellon University, and Oliver Laumann's
ELK---The Extensible Lisp Kernel
from Technical University of Berlin,
which is based on Scheme. At the time of writing this paper,
nothing seems to have been published about these
systems.
- ...methods.
- On purpose, we do not mention the around methods,
because they rely on an imperative combination with before, primary,
and after methods in standard method combination.
This is analogous to the method combination in Smalltalk, which
is explicitly programmed from case to case, by sending messages to
super.
- ...executed.
- It is
worth comparing our approach to the approach used in Pan,
which we described in section
2 of this paper. In Pan, hook definition and hook execution are
separated into two constructs, which are called define-hook and
perform-hook respectively.
- ...procedure
- In Lisps in which
procedures are not first class objects, one may prefer to
use procedure names in hook-attach and hook-detach.
- ...applications
- The hook combinator mechanism is inspired by
the simple built-in method combination mechanism in CLOS [6].
- ...definition.
- It would be
possible to integrate the hook documentation clause as well as the
hook combinator clause into the hook
construct. Following this idea, a hook construct would consist
of a name, some actual parameters, a default form, a hook combinator, and
a hook documentation string. However, all these pieces of
information make a typical hook construct far too big. This is a pragmatic
problem that should not be underestimated. We have chosen to split
the construct into several dependent constructs. Another
solution would be to separate the hook definition from
the execution of the hook, as it is done in Pan, see section 2.
A third solution
would be to use a programming environment with program presentation
facilities that allow for abstract presentation[15]---in
this case selective presentation---of lengthy constructs.
- ...expression.
- This may for instance
be done via an inspection hook in the read function.
- ...emacs
- The hooks in
the group emacs are the ``native hooks'' of Emacs, such
as the hooks associated with major modes (see section 2).
Such hooks are treated as a special case in the tools which
support the notion of hooks, as defined in this paper. The advantage
of this is that we are able to give the same support to Emacs hooks
with respect to reporting and experimental attaching as we do to our
own hooks.
- ...profile.
- The tools get
the information about the parameter profile from the hook
documentation. In order for this to work, the style of the documentation
is assumed to follow a standard pattern. This is made easy by
providing editing operations, which defines a template of
the hook-documentation construct, given a hook construct.
Kurt Noermark
Wed Mar 6 09:44:24 MET 1996