Content deleted Content added
m remove {{stub}} |
cleanup, added Oz |
||
Line 1:
In computer programming, a '''promise''' (also known as a '''future''' in some languages) is a placeholder for a result that is not yet known, usually because a computation has not yet finished or a message from a remote party has not yet arrived. The use of promises can dramatically reduce latency in distributed systems because it enables pipelining of messages, called '''promise pipelining''' [http://www.erights.org/elib/distrib/pipeline.html] [http://c2.com/cgi/wiki?PromisePipelining].
== Known implementations ==
This [[concurrent programming]] technique of
This pipelining technique (of 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 containing "promises/futures/concurrent logic variables/I-vars" include [[Alice programming language|Alice]] and [[MultiLisp programming language|MultiLisp]].▼
▲Languages containing "promises/futures/concurrent logic variables/I-vars" include
* [[Alice programming language|Alice]]
* [[Oz programming language|Oz]]
* [[MultiLisp programming language|MultiLisp]]
Languages containing promise pipelining include:
* [[Joule programming language|Joule]]
* [[E programming language|E]]
==External references==
* [http://c2.com/cgi/wiki?PromisePipelining PromisePipelining] on the [http://c2.com/cgi/wiki?FrontPage C2 wiki]
[[Category:Software design patterns]]
|