Next: Simplicity
Up: Introduction
Previous: Introduction
Contents
Simplicity, expressiveness, and performance
Maude's language design can be understood as an effort to simultaneously
maximize three dimensions:
- Simplicity: programs should be as simple as possible
and have clear meaning.
- Expressiveness: a very wide range of applications
should be naturally expressible:
from sequential, deterministic systems to highly concurrent
nondeterministic ones; from small applications to large
systems; and from concrete implementations to abstract
specifications, all the way to logical frameworks,
in which not just applications, but entire formalisms,
other languages, and other logics can be naturally expressed.
- Performance: concrete implementations should yield system
performance competive with other efficient programming languages.
Although simplicity and performance are natural allies, maximizing
expressiveness is perhaps the key point in Maude's language design.
Languages are after all representational devices, and their
merits should be judged on the degree to which problems and applications can
be represented and reasoned about generally, naturally, and easily. Of course,
domain-specific languages also have an important role to play in
certain application areas, and can offer a useful ``economy of
representation'' for a given area. In this regard, Maude should be viewed as
a high-performance metalanguage, through which many different
domain-specific languages can be developed.
Subsections
Next: Simplicity
Up: Introduction
Previous: Introduction
Contents
The Maude Team