Delay (programming)
From Wikipedia, the free encyclopedia
In computer science, Delayed evaluation is used in some programming languages to delay the evaluation on an expression until its value is needed.
[edit] Definition
The denotational semantics of programming languages can be used to provide a definition of futures: An expression of the form delay <Expression> is defined by how it responds to an Eval message with environment E and customer C as follows: The delay expression sends C a newly created actor D which is a proxy for the value of the expression <Expression> that has a body <Expression> and an environment E that behaves as follows:
-
- When D receives a request R, then it checks to see if it has already received a return value from evaluating <Expression> proceeding as follows:
-
- If it already has a return value V, then V is sent the request R.
- If it does not already have a return value then it sends <Expression> an Eval message and stores the returned value in itself, then the returned value is sent the request R.
[edit] See also
[edit] References
- Daniel Friedman and David Wise. "Cons should not evaluate its arguments." S. Michaelson and R. Milner, editors, Automata, Languages and Programming, Edinburgh University Press, Edinburgh. 1976.
- Henry Lieberman. Thinking About Lots of Things at Once without Getting Confused: Parallelism in Act 1 MIT AI memo 626. May 1981.
- Henry Lieberman. A Preview of Act 1 MIT AI memo 625. June 1981.