CSci 658: Software Language Engineering
Fall Semester 2013
Lecture Notes


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 © 2013, H. Conrad Cunningham
Last modified: Tue Sep 10 07:54:08 CDT 2013