CSci 450-01: Organization of Programming Languages
CSci 503-01: Fundamental Concepts in Languages
Fall 2014


Note: This set of notes should be expanded to talk about the substitution model for execution.

Evaluation Concepts and Terminology

Here are a few related concepts:

In general, call-by-name parameter passing is inefficient. However, a referentially transparent language like Haskell can replace call-by-name parameter passing with the equivalent, but more efficient, call-by-need method.

In the call-by-need method, the unevaluated argument expression is passed to the function as in call-by-name. The first reference to the corresponding parameter causes the expression to be evaluated; subsequent references just use the value computed by the first reference. Thus the expression is only evaluated when needed and then only once.


Copyright © 2014, H. Conrad Cunningham
Last modified: Sun Nov 9 21:13:02 CST 2014