TL;DR
This paper demonstrates that strong call-by-value evaluation can be a reasonable time model by introducing a new abstract machine with linear overhead and innovative sharing techniques, including useful and implosive sharing.
Contribution
It introduces a novel abstract machine for strong call-by-value evaluation that achieves linear overhead and incorporates a new mix of sharing techniques, including implosive sharing.
Findings
The machine has linear overhead in beta-steps.
It uses a combination of useful and implosive sharing techniques.
Some terms are executed in logarithmic time relative to beta-steps.
Abstract
Whether the number of beta-steps in the lambda-calculus can be taken as a reasonable time cost model (that is, polynomially related to the one of Turing machines) is a delicate problem, which depends on the notion of evaluation strategy. Since the nineties, it is known that weak (that is, out of abstractions) call-by-value evaluation is a reasonable strategy while L\'evy's optimal parallel strategy, which is strong (that is, it reduces everywhere), is not. The strong case turned out to be subtler than the weak one. In 2014 Accattoli and Dal Lago have shown that strong call-by-name is reasonable, by introducing a new form of useful sharing and, later, an abstract machine with an overhead quadratic in the number of beta-steps. Here we show that also strong call-by-value evaluation is reasonable for time, via a new abstract machine realizing useful sharing and having a linear overhead.…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
