| Future (programming) |
Article Index for Future |
Website Links For Future |
Information AboutFuture (programming) |
|
Carl Hewitt has argued that the term ''future'' is to be preferred over ''promise'' on two grounds. First, promises can be about any time not just the future so the term ''promise'' is more vague than ''future''. Second, a promise is just a linguistic expression whereas a future, as in the commodities market, is an actual claim and proxy for the goods. The future construct was introduced in 1977 in a paper by Henry Baker and Carl Hewitt . The use of futures (promises) can dramatically reduce latency in Distributed Systems . ''E.g.'', it enables pipelining of messages, called promise pipelining [http://c2.com/cgi/wiki?PromisePipelining . IMPLEMENTATIONS The ''future'' construct became better known by its inclusion in programming languages such as MultiLisp and Act1 . The use of logic variables for communication in concurrent logic programming languages is quite similar. These started with "Prolog with Freeze" and "IC Prolog", and became a true concurrency primitive with Concurrent Prolog, Flat Concurrent Prolog, Parlog, Vulcan, Janus , Mozart / Oz , Flow Java, and Alice . The single assignment "I-var" from data flow languages, included in Reppy's " Concurrent ML ", is much like the concurrent logic variable. The pipelining technique (using promises/futures to overcome latency) was invented independently twice in the 1980s. It was invented at Project Xanadu (circa 1989) and by Barbara Liskov in 1988. Languages supporting "promises/futures/concurrent logic variables/I-vars" include: Languages supporting promise pipelining include: REFERENCES
EXTERNAL REFERENCES |
|
|