Content deleted Content added
No edit summary |
No edit summary |
||
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 [http://www.erights.org/elib/distrib/pipeline.html
This [[concurrent programming]] technique of promises/futures was invented by the MIT Actors group in the 1970s. It became more well known by its inclusion in [[MultiLisp programming language|MultiLisp]]. 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.
|