A ParameterPassing mode where parameters to a function are not evaluated until they are used; and are re-evaluated each time they are used. Compare with LazyEvaluation and StrictEvaluation (but notice difference of opinion on LazyEvaluation). Found in: * Macro systems in many languages * CallByName * Looping constructs in many languages; in the statement while(x) y; the x part is evaluated at least once (and possibly an infinite number of times); the y part is evaluated zero or more times. Care must be taken when expressions containing side effects are passed to functions/macros that have normal order evaluation. C/C++ programmers have long known to be very careful with macros defined by CeePreprocessorStatements. ---- CategoryLanguageFeature