CBN

from The Free On-line Dictionary of Computing (8 July 2008)
call-by-name
CBN

   <reduction> (CBN) (Normal order reduction, leftmost, outermost
   reduction).  An {argument} passing convention (first provided
   by {ALGOL 60}?)  where argument expressions are passed
   unevaluated.  This is usually implemented by passing a pointer
   to a {thunk} - some code which will return the value of the
   argument and an environment giving the values of its {free
   variables}.

   This {evaluation strategy} is guaranteed to reach a {normal
   form} if one exists.

   When used to implement {functional programming} languages,
   call-by-name is usually combined with {graph reduction} to
   avoid repeated evaluation of the same expression.  This is
   then known as {call-by-need}.

   The opposite of call-by-name is {call-by-value} where
   arguments are evaluated before they are passed to a function.
   This is more efficient but is less likely to terminate in the
   presence of infinite data structures and {recursive}
   functions.

   Arguments to {macros} are usually passed using call-by-name.

   (2006-05-27)
    

[email protected]