Abstract
Call-by-value and call-by-need λ-calculi are defined using the distinguished syntactic category of values. In theoretical studies, values are variables and abstractions. In more practical works, values are usually defined simply as abstractions. This paper shows that practical values lead to a more efficient process of substitution—for both call-by-value and call-by-need—once the usual hypotheses for implementations hold (terms are closed, reduction does not go under abstraction, and substitution is done in micro steps, replacing one variable occurrence at a time). Namely, the number of substitution steps becomes linear in the number of β-redexes, while theoretical values only provide a quadratic bound. We complete the picture by showing that the same quadratic / linear bounds also hold for theoretical / practical versions of call-by-name.
| Original language | English |
|---|---|
| Pages (from-to) | 224-242 |
| Number of pages | 19 |
| Journal | Information and Computation |
| Volume | 255 |
| DOIs | |
| Publication status | Published - 1 Aug 2017 |
Keywords
- Cost models
- Explicit substitutions
- Implementations of functional programming languages
- λ-Calculus
Fingerprint
Dive into the research topics of 'On the value of variables'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver