David Hopwood wrote:
In some other languages with dataflow variables, they have to be declared.
For example in E (www.erights.org), "def x" declares a dataflow variable,
while "var x" declares a mutable variable. The latter is equivalent to a
variable associated with a first-class mutable "slot" or cell; E's kernel
language is similar to Oz in that respect.

There is a slight confusion between dataflow variables and futures here! A future is the result of a concurrent computation. Dataflow means that a thread automatically suspends when it needs data that is not available yet.

The language E has futures (called "promises"), but there is no dataflow at all in E! Thread suspension is simply forbidden in E. When you create a promise in E, you have to explicitly create something like a "listener", which creates a thread when the promise is resolved, i.e., the result is known. Dataflow makes all this machinery dynamic and implicit.

Cheers,
raph

_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to