WG211/M10Cook
Enso by William Cook
Enso is a new programming environment
based on integrated executable specification languages.
An executable specification language (ESL) allows programmers
to specify what should be computed while
relying on the language implementation to determine
exactly how the computation should be performed.
Examples of ESLs include grammars, spreadsheets,
attribute grammars, database queries,
access control policies, and makefiles.
In its goals, Enso is closely related to
domain-specific language (DSL) workbenches and
model-driven development (MDD) systems. Enso differs
from existing systems in several ways.
Enso focuses on language interpreters
rather than language embedding or transformation/compilation.
These interpreters are examples of generic operations,
which are operations that are guided by an ESL.
To integrate multiple ESLs and implement cross-cutting aspects,
Enso uses interpreter wrapping and composition.
Enso supports both textual and graphical presentations.
Enso is implemented using itself with a tight bootstrap process
and dynamic typing. Enso will ship with a collection of
extensible languages for data modeling,
web programming, GUI development, access control, database access,
software evolution, among others.