ianb@cs.warwick.ac.uk (Ian Bridge) (06/25/91)
I am currently working with an interpreter for a definitive
notation developed at Warwick U. called EDEN. The features of
this notation include :-
* It includes both declarative and procedural constructs.
* Functional dependencies between variables can be
declared by specifying formula variables, of the form :-
x is y + z // where x is re-evaluated if y or z are
This is a one-way constraint which has a similar semantics
to that of the definition of functional dependencies between
cells in a spreadsheet.
* Procedural actions can be attached to groups of variables.
action print_xy x,y { writeln("x:",x,"y:",y); }
// where `print_xy' is invoked whenever the value of
// x or y is updated
This has a similar semantics to that of a dependency rule
in the UNIX `make' utility, although in an interactive
context.
* A syntax similar to that of C.
The EDEN interpreter :-
* Actively maintains dependencies between values of variables
and invokes procedural actions attached to variables.
* Dynamically type checks variables, obviating the need for
variable declarations.
* Facilitates dynamic re-definitions of formula variables.
* Operates interactively to enable variable assignments and
queries.
I am currently engaged in modelling systems of interactive
agents in this environment and would be interested to hear of
any other languages with similar features.