Constant time factors do matter
STOC '93 Proceedings of the twenty-fifth annual ACM symposium on Theory of computing
Self-applicable online partial evaluation of the pure lambda calculus
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Optimality and inefficiency: what isn't a cost model of the lambda calculus?
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Linear Time Hierarchies for a Functional Language Machine Model
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Decidable Call by Need Computations in term Rewriting (Extended Abstract)
CADE-14 Proceedings of the 14th International Conference on Automated Deduction
Hi-index | 0.00 |
We show that linear time self-interpretation of the pure untyped lambda calculus is possible. The present paper shows this result for reduction to weak head normal form under call-by-name, call-by-value and call-by-need. We use operational semantics to define each reduction strategy. For each of these we show a simulation lemma that states that each inference step in the evaluation of a term by the operational semantics is simulated by a sequence of steps in evaluation of the self-interpreter applied to the term. By assigning costs to the inference rules in the operational semantics, we can compare the cost of normal evaluation and self-interpretation. Three different cost-measures are used: number of beta-reductions, cost of a substitution-based implementation and cost of an environment-based implementation. For call-by-need we use a non-deterministic semantics, which simplifies the proof considerably.