Primary
Evaluation ○|Definition|1st|20251119205401-00-⌔
Evaluation strategy - Wikipedia
Evaluation strategy
In a programming language, an evaluation strategy is a set of rules for evaluating expressions.1 The term is often used to refer to the more specific notion of a parameter-passing strategy2 that defines the kind of value that is passed to the function for each parameter (the binding strategy)3 and whether to evaluate the parameters of a function call, and if so in what order (the evaluation order).4 The notion of reduction strategy is distinct,5 although some authors conflate the two terms and the definition of each term is not widely agreed upon.6 A programming language’s evaluation strategy is part of its high-level semantics. Some languages, such as PureScript, have variants with different evaluation strategies. Some declarative languages, such as Datalog, support multiple evaluation strategies.
Just like in mathematics, evaluation is the process of finding the value corresponding to an expression.78
The calling convention consists of the low-level platform-specific details of parameter passing.
Printed 2026-06-28.
(echo:: @ ᯤ)
Link to original Footnotes
Araki, Shota; Nishizaki, Shin-ya (November 2014). “Call-by-name evaluation of RPC and RMI calculi”. Theory and Practice of Computation. p. 1. doi:10.1142/9789814612883_0001. ISBN 978-981-4612-87-6. Retrieved 21 August 2021. ↩
Turbak, Franklyn; Gifford, David (18 July 2008). Design Concepts in Programming Languages. MIT Press. p. 309. ISBN 978-0-262-30315-6. ↩
Crank, Erik; Felleisen, Matthias (1991). “Parameter-passing and the lambda calculus”. Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL ‘91. p. 2. CiteSeerX 10.1.1.23.4385. doi:10.1145/99583.99616. ISBN 0897914198. S2CID 5782416. ↩
Wilhelm, Reinhard; Seidl, Helmut (10 November 2010). Compiler Design: Virtual Machines. Springer Science & Business Media. p. 61. ISBN 978-3-642-14909-2. ↩
Nita, Stefania Loredana; Mihailescu, Marius (2017). “Introduction”. Practical Concurrent Haskell. p. 3. doi:10.1007/978-1-4842-2781-7_1. ISBN 978-1-4842-2780-0. ↩
Pierce, Benjamin C. (2002). Types and Programming Languages. MIT Press. p. 56. ISBN 0-262-16209-1. ↩
“Evaluate (v.), sense a”. Oxford English Dictionary. 2023. doi:10.1093/OED/3423541985. Mathematics. To work out the ‘value’ of (a quantitative expression); to find a numerical expression for (any quantitative fact or relation). ↩
“Simplify (v.), sense 4.a”. Oxford English Dictionary. 2023. doi:10.1093/OED/1018661347. To express (an equation or other mathematical expression) in a form that is easier to understand, analyse, or work with, e.g. by collecting like terms or substituting variables. ↩
Secondary
• • •