ELAN - Related Systems
ELAN has similarities with other rule-based systems like ASF+SDF,
and Maude. Compared
to them, ELAN has some positive aspects:
On the other hand, ELAN has also a few weaknesses with respect to these
other systems. First of all, the use of an exchange format for ELAN is
quite new, and the REF format should only be considered as a first attempt.
On this point, there is much more expertise in ASF+SDF with the AsFix format
and the toolBus architecture ASF2 for the interconnection of AsFix-based
tools. Since the ASF+SDF system has been designed as a meta-environment
for prototyping programming languages, a formalism for the syntax definition
has been carefully worked out. The ELAN system is comparable to the ASF
part, but does not incorporate the facilities to specify user-defined lexical
ELAN was the first programming language based on rewriting logic integrating
a notion of strategy relevant to express non-deterministic computations.
More recently, analogous notions have been proposed for Maude and ASF+SDF.
A fast ELAN compiler is available since a couple of years and the actual
version, written in Java, encompasses an improved garbage collector and
handles specifications involving AC-symbols. Due to the promising results
obtained with compilation techniques for rewriting, the development of
compilers for rule-based languages has attracted considerable interest
in the ASF+SDF and CafeObj communities. A common exchange format, like
REF, might help in the development of a language-independent compiler for
The ELAN system provides a powerful parser and original pre-processing
facilities that allow writing modular and parametric specifications in
a user-friendly syntax. The preprocessor is very useful for writing specifications
in a concise and generic way.
An exchange format is also a possible solution to deal with reflection
facilities which are already fully integrated into Maude . Moreover, Maude
allows several possible equational axioms on user-defined function symbols
like associativity, commutativity, identity, idempotency,... and their
combinations, whilst ELAN only handles associativity-commutativity (possibly
a combination of different AC-symbols).
Behavioural specifications with hidden sorts and states, order-sorted
sorts, and object orientation, provided in CafeObj, have not been integrated
in ELAN. All these points provide potential further improvements of ELAN.