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:
  1. If it already has a return value V, then V is sent the request R.
  2. 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.