EuLisp
[I used to point directly to
someone else's EuLisp page, but it moved, and I had trouble
getting a new URL that worked. Eventually, I found
one, but by then this page already existed.]
The language
EuLisp is a programming language in the Lisp
family. It is similar in scope to Common Lisp but is organized
differently and has (we would argue) a
cleaner design. EuLisp can be characterized as follows:
- A definition in levels.
Level-0 is a kernel, not much larger than Scheme.
- Modules based on (non-first-class) lexical environments.
- Lexically scoped, with dynamic binding also available.
- A single name space for function and variable names (like Scheme).
- Light-weight processes.
- A fully integrated object system
and meta-object protocol.
- An object-oriented condition system.
Definition
The EuLisp definition is available in several forms from the
University of Bath ftp server
[README].
Implementations
The Eulisp Object System (TELOS) is the part of Eulisp that explicitly
supports object-oriented programming. The Greek word "telos" has a
number of meanings and appears in English
chiefly in the words "teleology" and "teleological". "TELOS" should
also remind you of "CLOS": the Common Lisp Object System; and there
are indeed some similarities, as well as differences.
EuLisp was designed by a group of European industrial and academic
Lisp users and implementors. Though this was, in a sense, "design
by committee", the committee was fairly small and well aware of the
dangers involved. You'll have to judge for yourself, of course, but
we would claim that EuLisp has a reasonably clean and well-integrated
design, with little that is the result of political compromise.
Some people who have been members of the Eulisp group, at one time or
another, have Web pages that I know about. Here they are, in alphabetical
order:
Jeff Dalton