[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.]
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.
The EuLisp definition is available in several forms from the
University of Bath ftp server
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