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.